-
Notifications
You must be signed in to change notification settings - Fork 0
06 Local Development
hywznn edited this page Jul 21, 2026
·
4 revisions
현재 저장소는 Spring Boot 초기 골격 단계입니다. 이 페이지는 현재 가능한 실행 방법과 #3 개발 기반 완료 후의 M3 목표 개발환경을 구분합니다.
- Git
- Java 17
- 인터넷 연결: 첫 Gradle 의존성 다운로드에 필요
git clone https://github.com/fowoco/server.git
cd server현재 gradlew 실행 권한이 없으므로 #3이 완료되기 전에는 다음처럼 실행합니다.
bash gradlew test#3 완료 후 표준 명령은 다음과 같습니다.
./gradlew clean testbash gradlew bootRun현재 local 프로필은 인메모리 H2를 사용합니다.
curl http://localhost:8080/health예상 응답:
OK
#3과 #9 완료 후에는 다음 흐름을 표준으로 사용합니다.
-
.env.example을 참고해 개인 환경변수를 설정합니다. - Docker Compose로 PostgreSQL을 실행합니다.
- Flyway가 빈 DB에 migration을 적용합니다.
- local Provider를 Fake 또는 LM Studio로 선택합니다.
-
./gradlew bootRun으로 Backend를 실행합니다. - Swagger와 Health/Readiness를 확인합니다.
예정 명령 예시:
docker compose up -d postgres
./gradlew bootRun
./gradlew test실제 Compose 서비스명과 환경변수는 구현 PR의 README를 기준으로 갱신합니다.
| Provider | 사용 환경 | 주의 |
|---|---|---|
| fake | 단위·통합 테스트 | 외부 네트워크 없이 결정적 결과 |
| lmstudio | 개발 실험 | 최종 데모에 사용하지 않음 |
| external | staging·demo | API Key를 환경변수/Secret으로 관리 |
설정 개념 예시:
fowoco:
ai:
provider: fake
agent-version: task-agent-v1
prompt-version: task-analysis-v1
context-pack-version: context-v0.2
workflow-catalog-version: workflow-v1실제 Provider 이름과 모델명은 #8 구현에서 확정합니다.
| 테스트 | 목적 | 외부 의존성 |
|---|---|---|
| 단위 테스트 | 상태 전이·검증 규칙 | 없음 |
| Repository 테스트 | JPA 쿼리·사업장 격리 | Testcontainers PostgreSQL |
| API 통합 테스트 | 인증·권한·HTTP 계약 | Fake AI + PostgreSQL |
| Provider 계약 테스트 | 외부 LLM JSON 계약 | 별도 수동/Smoke 환경 |
| E2E | 대표 사용자 흐름 | 배포 환경 |
일반 PR의 CI는 외부 유료 LLM을 호출하지 않습니다.
git switch main
git pull --ff-only
git switch -c feat/3-foundation권장 브랜치 이름:
feat/4-auth-multitenancy
feat/6-task-workflow
fix/7-expired-worker-link
docs/wiki-local-development
한 PR은 가능하면 한 Issue를 해결합니다. PR 본문에 Closes #번호를 넣고 해당 Issue의 완료 조건을 체크합니다.
다음 파일과 값을 커밋하지 않습니다.
.env- LLM API Key
- JWT Secret
- DB 비밀번호
- Worker Link 토큰
- 실제 근로자 개인정보가 든 Seed·로그·스크린샷
실수로 커밋했다면 파일만 지우고 끝내지 말고 즉시 Key를 폐기·재발급하고 팀에 알립니다.
#3 완료 전에는 bash gradlew ...을 사용합니다. 근본 해결은 Git 실행 비트 반영입니다.
java -versionJava 17이 선택됐는지 확인합니다.
- PostgreSQL 컨테이너 상태
- DATABASE_URL 또는 host/port
- 사용자와 DB 이름
- Flyway migration 로그
- prod/local 프로필 혼용 여부
- 현재 Provider 설정
- Base URL과 모델명
- Timeout과 Rate Limit
- API Key 존재 여부만 확인하고 값은 출력하지 않기
- AiInvocation의 request_id와 오류 유형