2026-05-10 21:15:13 +09:00
|
|
|
# 00_PROMPTS — Claude Code 실행 프롬프트 모음
|
|
|
|
|
|
|
|
|
|
## 사전 준비
|
|
|
|
|
|
|
|
|
|
### 1) Agent Teams 활성화 (`~/.claude/settings.json`)
|
|
|
|
|
```json
|
|
|
|
|
{
|
|
|
|
|
"env": {
|
|
|
|
|
"CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 2) Git Worktree 격리 (선택)
|
|
|
|
|
```bash
|
|
|
|
|
git init ga-commission-system && cd ga-commission-system
|
|
|
|
|
git commit --allow-empty -m "init"
|
|
|
|
|
git worktree add ../ga-wt-common -b feat/common
|
|
|
|
|
git worktree add ../ga-wt-core -b feat/core
|
|
|
|
|
git worktree add ../ga-wt-batch -b feat/batch
|
|
|
|
|
git worktree add ../ga-wt-api -b feat/api
|
|
|
|
|
git worktree add ../ga-wt-front -b feat/frontend
|
|
|
|
|
git worktree add ../ga-wt-infra -b feat/infra
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3) 본 docs/ 폴더의 모든 파일을 프로젝트 루트에 배치
|
|
|
|
|
- `docs/01_DB_SCHEMA.md` ~ `docs/08_DBA_SPEC.md` (8 spec)
|
|
|
|
|
- `docs/00_PROMPTS.md` (this file)
|
|
|
|
|
|
|
|
|
|
> 각 프롬프트 안에 "docs/0N_*.md 읽어줘" 지시가 들어 있어, Claude Code 가
|
|
|
|
|
> 자동으로 해당 spec 을 읽고 그대로 구현합니다.
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 프롬프트 1: 리더 단독 — 프로젝트 뼈대 + DB
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
GA(법인보험대리점) 수수료 정산 솔루션 프로젝트를 만들어줘.
|
|
|
|
|
|
|
|
|
|
docs/01_DB_SCHEMA.md 를 읽고 그대로 구현해줘.
|
|
|
|
|
|
|
|
|
|
핵심 요약:
|
|
|
|
|
- Java 17 + Spring Boot 3.2 + MyBatis 3 (JPA 아님!) + PageHelper
|
|
|
|
|
- PostgreSQL + Redis + Flyway
|
|
|
|
|
- React 18 + Vite + Ant Design 5 + AG Grid Community
|
|
|
|
|
- Gradle 멀티모듈: ga-common / ga-core / ga-batch / ga-api / ga-admin / ga-frontend
|
|
|
|
|
|
|
|
|
|
작업:
|
|
|
|
|
1. settings.gradle / build.gradle / 모듈별 build.gradle
|
|
|
|
|
2. application.yml (mybatis-config 포함, mapUnderscoreToCamelCase=true)
|
|
|
|
|
3. Flyway V1~V17 SQL 전부 작성 (docs/01 의 스키마/초기데이터/인덱스/파티션/뷰/관리자/테스트데이터)
|
|
|
|
|
4. 모듈별 빈 패키지 + 진입점 (GaApiApplication 등)
|
|
|
|
|
|
|
|
|
|
완료 후 ./gradlew build 가 통과해야 함.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 프롬프트 2: 리더 단독 — ga-common 공통 프레임워크
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docs/02_COMMON_SPEC.md 를 읽고 ga-common 모듈을 그대로 구현해줘.
|
|
|
|
|
|
|
|
|
|
핵심:
|
|
|
|
|
- 신입 개발자가 학습하기 쉬운 단순/명시적 코드 우선
|
|
|
|
|
- 패키지 구조: model / exception / util / annotation / aop / auth / security /
|
|
|
|
|
config / mybatis / grid / code / menu / excel / file / system / notification
|
|
|
|
|
- 모든 Controller 가 ApiResponse<T> 형태로 응답
|
|
|
|
|
- 검색 파라미터는 SearchParam 상속, 페이징은 PageHelper + PageResponse.of()
|
|
|
|
|
- @RequirePermission / @DataChangeLog / @ExcelColumn / @Mask 어노테이션 + AOP
|
|
|
|
|
- JWT (HS256) + BCrypt + AES-256 CBC 암호화 (EncryptTypeHandler)
|
|
|
|
|
- Excel SXSSF + xlsx-streamer 으로 100만건/70만건 처리
|
|
|
|
|
- 공통코드 Redis 캐시 (@Cacheable)
|
|
|
|
|
- 메뉴 트리 빌더 + 권한 체커
|
|
|
|
|
- ga-frontend 의 공통 컴포넌트 (CodeSelect / CodeBadge / SearchForm /
|
|
|
|
|
DataTable / DataGrid / PermissionButton / ExcelExportButton 등) 도 함께 작성
|
|
|
|
|
|
|
|
|
|
완료 후 ./gradlew :ga-common:build 통과 + 다른 팀원이 ga-common 만 의존하면 즉시 시작 가능해야 함.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 프롬프트 3: Agent Teams 5명 병렬 스폰
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
GA 수수료 정산 솔루션의 뼈대 + ga-common 이 완성됐어.
|
|
|
|
|
Agent Teams 5명을 병렬로 스폰해줘.
|
|
|
|
|
|
|
|
|
|
각 팀원은 자기 담당 docs 파일을 읽고 그대로 구현한다:
|
|
|
|
|
|
|
|
|
|
1) core-architect → docs/03_CORE_SPEC.md → ga-core (VO/Mapper/XML)
|
|
|
|
|
2) batch-engineer → docs/04_BATCH_SPEC.md → ga-batch (8 Step)
|
|
|
|
|
3) api-developer → docs/05_API_SPEC.md → ga-api (Controller/Service)
|
2026-05-10 21:21:13 +09:00
|
|
|
4) frontend-developer → docs/06_FRONTEND_SPEC.md
|
|
|
|
|
+ docs/09_UI_DESIGN.md → ga-frontend (13 화면 + 디자인 시스템)
|
2026-05-10 21:15:13 +09:00
|
|
|
5) dba-architect → docs/08_DBA_SPEC.md → V13~V15 + 인덱스/파티션/뷰
|
|
|
|
|
|
|
|
|
|
의존성:
|
|
|
|
|
- core-architect 가 가장 먼저 (다른 팀원이 VO/Mapper 사용)
|
|
|
|
|
- batch / api / frontend 는 core 완료 후 병렬 시작
|
|
|
|
|
- dba 는 core 의 Mapper XML 검증 후 인덱스/파티셔닝 적용
|
|
|
|
|
|
|
|
|
|
각 팀원 작업 규칙:
|
|
|
|
|
- 담당 모듈만 수정 (다른 팀 코드 건드리지 말기)
|
|
|
|
|
- ga-common 의 표준 패턴(ApiResponse, PageResponse, SearchParam, @RequirePermission,
|
|
|
|
|
@DataChangeLog) 을 반드시 따른다
|
|
|
|
|
- Mapper XML 은 SELECT * 금지 (필드 명시), 목록은 XxxResp 에 매핑
|
|
|
|
|
- 신입이 복붙 후 수정만으로 새 화면 만들 수 있도록 동일 패턴 유지
|
|
|
|
|
- 완료 시 리더에게 "[팀명] 완료" 메시지
|
|
|
|
|
|
|
|
|
|
팀을 만들고 작업을 시작해줘.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 프롬프트 4: 리더 단독 — 인프라 + 통합 검증
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
모든 팀원 작업 완료. docs/07_INFRA_SPEC.md 를 읽고 마지막 작업을 해줘.
|
|
|
|
|
|
|
|
|
|
작업:
|
|
|
|
|
1. docker-compose.yml: postgres / redis / api / batch / frontend
|
|
|
|
|
2. Dockerfile: 멀티스테이지 (Gradle 빌드 → JRE 17 실행)
|
|
|
|
|
3. nginx.conf: React SPA + /api → backend:8080 프록시
|
|
|
|
|
4. README.md: 시나리오 A(운영 DB) / B(로컬) / C(Docker) 3 가지 실행 가이드
|
|
|
|
|
5. DEVELOPER_GUIDE.md: 신입 개발자 온보딩 (새 화면 만들기 step-by-step)
|
|
|
|
|
|
|
|
|
|
통합 검증:
|
|
|
|
|
- ./gradlew clean build 성공
|
|
|
|
|
- cd ga-frontend && npm install && npm run build 성공
|
|
|
|
|
- docker-compose up -d --build 전체 기동 후 http://localhost:3000 로그인 동작
|
|
|
|
|
- Flyway V1~V17 자동 적용 확인
|
|
|
|
|
- 단위 테스트 ./gradlew test 통과
|
|
|
|
|
|
|
|
|
|
문제 있으면 수정 후 v1.0.0-alpha 태그.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 프롬프트 5: 리더 단독 — 단위 테스트 (선택)
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
docs/02_COMMON_SPEC.md / 04_BATCH_SPEC.md 를 참고해 단위 테스트를 추가해줘.
|
|
|
|
|
|
|
|
|
|
대상:
|
|
|
|
|
- ga-common 유틸: MoneyUtilTest / DateUtilTest / MaskUtilTest / EncryptUtilTest
|
|
|
|
|
- ga-common 서비스: CommonCodeServiceTest / MenuTreeBuilderTest / PermissionCheckerTest
|
|
|
|
|
- ga-batch 핵심 로직: CommissionCalculatorTest / MappingEngineTest
|
|
|
|
|
|
|
|
|
|
규칙:
|
|
|
|
|
- JUnit 5 + Mockito + AssertJ (spring-boot-starter-test 에 포함)
|
|
|
|
|
- @Cacheable / @CacheEvict 는 단위 테스트에서 동작 안 함 → 비즈니스 로직만 검증
|
|
|
|
|
- Mockito strict stubbing 위반 주의 (@BeforeEach 의 stub 은 모든 테스트가 사용해야 함)
|
|
|
|
|
- 모든 테스트 통과 후 커밋
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 프롬프트 6: 리더 단독 — 운영 DB 배포 (선택)
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
운영 DB(192.168.0.60:55432/trading_ai/ga) 에 V1~V17 마이그레이션 + 테스트 데이터를 적용해줘.
|
|
|
|
|
|
|
|
|
|
방법:
|
|
|
|
|
- Python + pg8000 으로 migrate.py 작성 (저장소 외부에 둔다)
|
|
|
|
|
- ga 스키마 존재 여부 확인 후 idempotent guard
|
|
|
|
|
- application-trading_ai.yml 프로파일 추가 (currentSchema=ga)
|
|
|
|
|
- 실행: ./gradlew :ga-api:bootRun --args='--spring.profiles.active=trading_ai'
|
|
|
|
|
|
|
|
|
|
확인:
|
|
|
|
|
- /api/health 200
|
|
|
|
|
- /login admin / admin1234! 로 토큰 발급
|
|
|
|
|
- 메뉴 트리 / 공통코드 / 설계사 50명 / 계약 200건 조회 OK
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 비용 절약 팁
|
|
|
|
|
- 리더: Opus / 팀원: Sonnet (하이브리드 모델)
|
|
|
|
|
- 5명이 적정. 그 이상은 조율 오버헤드 증가
|
|
|
|
|
- 작업 범위 명확 + 서로 독립적일수록 효과적
|
|
|
|
|
- `--dangerously-skip-permissions` 사용 시 모든 팀원 동일 권한
|