# 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 형태로 응답 - 검색 파라미터는 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) 4) frontend-developer → docs/06_FRONTEND_SPEC.md + docs/09_UI_DESIGN.md → ga-frontend (13 화면 + 디자인 시스템) 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` 사용 시 모든 팀원 동일 권한