부록 D
5파일 템플릿
SPEC · PLAN · REVIEW · BUILD · CLAUDE.md — 그대로 복사 가능
📑 이 부록에서 다룰 내용
📘 이 부록의 목적 + 사용법
목적: SPEC.md · PLAN.md · REVIEW.md · BUILD.md · CLAUDE.md 5파일을 그대로 복사 + 빈 칸 본인 프로젝트 채움 가능한 템플릿. 새 프로젝트 시작 시 5분 안에 5파일 골격 박힘.
사용법: 새 프로젝트 폴더 만들기 → 5 템플릿 그대로 복사 → 빈 칸 채움 → 5파일+ 사이클 시작.
💻 SPEC.md 템플릿
# [앱 이름] SPEC ## 1. 앱 이름 - [한 줄 정의] - 도메인: [B2C / B2B SaaS / 마켓플레이스 / 교육 / 콘텐츠] ## 2. 해결하는 문제 - [한 문장으로 핵심 문제] - 현재 흐름: [기존 도구·방법] - 우리 흐름: [차별점 1줄] ## 3. 사용자 정의 - 사용자 A (주): [누가·어떤 상황·어떤 맥락] - 사용자 B (부): [해당 시·아니면 X] - 첫 사용자 도달 흐름: [SEO·SNS·외부 링크 중] ## 4. Phase 1 핵심 기능 (최대 3가지) 1. [기능 1] — [한 줄] 2. [기능 2] — [한 줄] 3. [기능 3] — [한 줄, 선택] ## 5. 성공 기준 (반드시 숫자) - Phase 1 종료 (Day 28): [N]명·[N]% 등 - 90일 누적: [N] - 6개월 누적: [N] ## 6. 수익화 (Phase 1 반드시 포함) - 도구: [구독 / 광고 / 인앱결제 / 거래수수료 / 강의·이북] - 단가: [₩N] - 첫 결제 가설: [Day N] - 6개월 매출 가설: [₩N] ## 7. 기술 스택 - 프론트: [Expo·Next.js·React 등] - 백엔드: [Cloudflare Worker·Supabase Edge Function·자체] - DB: [Supabase·D1·Neon·자체 PostgreSQL] - 배포: [Cloudflare Pages·Vercel·VPS] - LLM: [Sonnet·Opus 위주, prompt caching 적용] ## 8. DB 스키마 초안 - 테이블 1: [name] — 컬럼: [...] - 테이블 2: ... - 인덱스·제약: [UNIQUE·FOREIGN KEY] ## ⚖️ § 회색지대 결정 (해당 시) [E1 — 4단계 프레임] [① 영역 식별] - 회색지대 종류: [법적·윤리적·시장적] - 영역 1줄 정의: [...] [② 포함 / 배제] - 포함 5개: - [...] - 명확히 배제 5개: - [...] [③ 표현 정제] - About 페이지: [...] - 약관: [...] - 콘텐츠 정책: [...] [④ 변호 논리] - "[한 줄]" ## 9. 시리즈 본문 (해당 시) - 다른 1탄·2탄·3탄·별책부록 결합: [없음 / 1탄 5확장 적용 / ...] --- [★ 메타 — SPEC v1 작성 시점에 의식] - v1은 일부러 불완전 (외부 검토 + E1 결정 + 사용자 직관 + 두 검토자에서 진화) - v2 — Gemini 1차 검토 후 - v3 — 사용자 직관 추가 후 - v4 — 두 검토자 (Claude 시뮬레이션 + Gemini) 후 - v4 채택 후 PLAN.md 작성 시작 (새 6장)
💻 PLAN.md 템플릿
# [앱 이름] PLAN ## 1. Phase 1 (Day 1~[N]) ### Phase 1 DoD (Definition of Done) 1. [DoD 1 — 숫자 의무] 2. [DoD 2 — 숫자 의무] 3. [DoD 3 — 숫자 의무] ### Day 1~7 — Week 1 - Day 1: [무엇] (예상 [N]시간) - Day 2: ... - Day 7: G1 점검 ### Day 8~14 — Week 2 (G1 게이트) - Day 8~13: ... - ★ Day 14: G1 통과 의식 + REVIEW.md 12 체크 ### Day 15~21 — Week 3 - ... ### Day 22~28 — Week 4 (G2 게이트) - ... - ★ Day 28: G2 통과 의식 + 4주 회고 ## 2. Phase 2 (Day 29~[N]) - 검증·수익화·페르소나 추가 - DoD 5~7 추가 ## 3. Phase 3 (Day [N]+~) - 성장·글로벌·1년+ 운영 - 본인 페이스 영구 흐름 --- ## ★ E2 1인 12개월 페이스 ### 시간 분포 - 시간 / 주: [10·15·20·25h] - 토요일 작업: [금지·선택] - 매일 작업 시간: [09:00~12:00·기타] ### R4 자동 회복 사이클 - 트리거 의식: [하루 X 진행 / 시간 25%+ / 번아웃 전조] - 회복 흐름: [페이스 25% 축소 / 1~2일 휴식 / SPEC 보강] - 1년 트리거 가설: [≤4회] ### 게이트 사이 휴식 - G1 통과 후: 1일 휴식 - G2 통과 후: 1~2일 휴식 - G3 통과 후: 2일 휴식 - ... ### 번아웃 회피 의식 - 매주 일요일 회고 30분 - 매월 1회 자기 평가 (5확장 체크) - 매분기 회고 1시간 --- ## 4. 의존성 ### 외부 의존성 - Anthropic API (rate limit 결합) - Cloudflare·Supabase 무료 한도 - 외부 API ([정부·외부 데이터]) ### 결합 의존성 - [기능 A] → [기능 B] (A 완성 후 B 시작) - ... ## 5. 리스크 (R1~R10) - R1: [리스크 1] — 회피 흐름 - R2: [리스크 2] — ... - R3: ... - R4: 1인 번아웃 — ★ E2 자동 회복 사이클로 회피 - R5~R10: ... --- ## 6. 게이트 종합 표 | 게이트 | Day | 통과 조건 | 휴식 | 다음 흐름 | |------|-----|--------|------|--------| | G1 | 14 | DoD 1·2·3 + REVIEW 12 체크 | 1일 | Phase 1.1 진입 | | G2 | 28 | DoD 4·5·6 + 4주 회고 | 1~2일 | Phase 1.2 진입 | | G3 | 50 | ... | 2일 | Phase 2 진입 | | G4 | 90 | ... | 2~3일 | Phase 2.1 | | G5 FINAL | 180 | 앱스토어·도메인·매출 | 7일 | Phase 3 진입 |
💻 REVIEW.md 템플릿
# [앱 이름] REVIEW ## G1 게이트 — Day [14] ### 12 체크 (PASS / WARN / FAIL) 1. SPEC v[N] 7항목 모두 채워짐 — [O/X] 2. PLAN.md DoD 명시 — [O/X] 3. CLAUDE.md 200줄 이하 — [O/X] 4. ⚖️ E1 회색지대 결정 — [O/X] 5. ★ E2 페이스 의식 — [O/X] 6. ⭐ E3 두 검토자 1차 — [O/X] 7. ⭐ E4 LogOnTable 매일 — [O/X] 8. ⭐ E5 SSOT (해당 시) — [O/X] 9. 자동 일관성 테스트 통과 — [O/X] 10. 보안 점검 (시크릿·API 키) — [O/X] 11. 성능 점검 (latency·DB 쿼리) — [O/X] 12. 첫 사용자 N명 도착 — [O/X] ### 3단계 판정 - 12/12 PASS — READY: YES → Phase 1.1 진입 - 10~11 PASS — READY: PARTIAL → 미해결 영역 1~2일 보강 - 9 이하 PASS — READY: NO → 1주 보강 후 재점검 ### ⭐ E3 두 검토자 — 12건 (4+6+2 패턴) [Claude 시뮬레이션 검토만 발견 4건] 1. ... [Gemini 외부 검토만 발견 6건] 1. ... [둘 다 발견 2건 — 핵심 영역] 1. ... ### G1 결과 - READY: [YES / PARTIAL / NO] - 다음 흐름: [...] - 휴식: [N일] --- ## G2 게이트 — Day [28] ### 12 체크 1. ... ### 3단계 판정 - ... --- ## G3·G4·G5 게이트 — Day [N] [같은 양식] --- ## 종합 — 시리즈 누적 12건 패턴 | 게이트 | Claude 4 | Gemini 6 | 둘 다 2 | 합 | |------|--------|--------|------|---| | G1 | 4 | 6 | 2 | 12 | | G2 | ... | ... | ... | ... |
💻 BUILD.md 템플릿
# [앱 이름] BUILD ## Day 1 — [YYYY-MM-DD] ### 무엇 (5분 양식) - 작업: [무엇 했는지] - 파일: [어떤 파일] - commit: [git hash] ### ⭐ LogOnTable 트레이스 (1~3줄) - 결정: [무엇을] - 후보: [몇 개 후보] - 채택 사유: [왜 이걸] - 영향: [어디에] - 태그: #E[N] #영역 ### 시간 - 작업 시간: [N]시간 - 누적: [N]시간 --- ## Day 2 — [YYYY-MM-DD] [같은 양식] --- ## Day N — [YYYY-MM-DD] [같은 양식] --- ## ★ Week 1 회고 (Day 7) - 시간 합계: [N]시간 (목표 [N]시간) - DoD 진행률: [N]% - 막힘 발생: [N건] - R4 트리거: [N회] - 다음 주 의식: [...] --- ## ★ Phase 1 종료 회고 (Day 28) - 합계 시간: [N] - 합계 commit: [N] - 합계 LogOnTable 트레이스: [N] - 5확장 적용: E1·E2·E3·E4·E5 [O/X] - 첫 사용자: [N]명 - 다음 Phase 진입: [YES/NO]
💻 CLAUDE.md 템플릿
# [앱 이름] # 기술 스택: [요약 1줄] # 상태: Phase [N] 진행 중 / 누적 [N]h / 다음 게이트 G[N] D-[N]일 ## 1. Project Overview - 앱 정의: [한 줄] - 사용자 A: [주 사용자] - 사용자 B: [부 사용자, 해당 시] - 핵심 가치: [E1 회색지대 결정 한 줄] - 답변: 한국어 + 친근한 톤 (~예요·~합니다) ## 2. Tech Stack - 프론트: [Expo·Next.js·NativeWind 등] - 백엔드: Supabase (PostgreSQL + Auth + Storage + Edge Function) - 결제: Stripe (Edge Function에서만) - 배포: [Vercel·EAS Build·Cloudflare] - LLM: Sonnet 4.6 위주, 페르소나 system prompt에 cache_control ## 3. Critical Constraints (어떤 상황에서도 지킨다) - StyleSheet 사용 금지 → NativeWind만 - API 비밀 키를 프론트엔드·.env.local에 직접 박지 X - 요청하지 X 기능 임의 추가 금지 - 요청하지 X 파일 무단 수정 금지 - 작업 전 변경 파일 목록 먼저 답 - ⚖️ E1 회색지대 결정 위반 금지 (E1: [한 줄]) ## 4. Code Style - 컴포넌트 200줄 이하 (초과 시 분리) - 모든 함수에 TypeScript 타입 명시 - 에러 처리 의무 (try/catch·circuit breaker·retry) - 들여쓰기: 2칸 ## 5. Project-Specific Rules ★ (E5 콘텐츠 SSOT — 해당 시) [줍줍·TSV 같은 콘텐츠 시스템이면 7~8 규칙 박음] - [규칙 1: SSOT 인터페이스 위치] - [규칙 2: 페르소나 system prompt 환각 방지] - [규칙 3: 자동 일관성 테스트 의무] - [규칙 4: 닉네임 자동 부여 패턴] - [규칙 5: ⚖️ E1 일관 노출] - [규칙 6: 자동 정지 트리거] - [규칙 7: 환각 방지 명세 — 추정 금지·누락 null] - [규칙 8: 톤 분리 + 사실 일치] ## 6. File Structure src/ app/ 라우팅 components/ UI 컴포넌트 lib/ 유틸 + SSOT 인터페이스 api/ 외부 호출 tests/ unit/ 단위 테스트 e2e/ E2E 테스트 consistency/ 자동 일관성 테스트 (E5) .claude/commands/ 커스텀 슬래시 명령 ## 7. Common Commands - npm test - npm run dev - npm run build - npx supabase db push - /daily-review (커스텀) - /spec-evolve (커스텀) ### MCP 자동화 (자연어) - "[테이블] 마감일 임박 5건 조회" - "현재 변경사항 commit. 메시지: [...]" - "localhost:3000 [페이지] E2E 테스트" ## 8. Forbidden Patterns - /process\.env\.[A-Z_]+/ ← 프론트엔드 코드에 환경변수 직접 사용 금지 - 페르소나 prompt에 "있어야 한다" 같은 환각 유도 표현 금지 - 의미 없는 강조 추임새 — 1탄 v2 § 절대 금지 단어 명세 따름 ## 9. Compliance Checklist (매 작업 전 자동 점검) - [ ] 변경 파일 목록 명시했는가 - [ ] 절대 금지 사항 위반 X (E1 회색지대 포함) - [ ] 200줄 이하 유지 - [ ] 타입 명시·에러 처리 있음 - [ ] 한국어 의식체 통일 ## 10. Current State (Phase 완성마다 갱신) - ✅ Phase 0: 5파일+ 구조 + 첫 commit (Day 0) - ✅ Day 1~3: [완성 기능 1] (~Day 3) - 🚧 현재: Day 4 [작업 중인 기능] - 📅 다음 게이트: G1 (Day [N]) - 📊 누적: [N]h / [예상 총 N]h
Day 0 — 5파일 만들기
💻 Day 0 셋업
# 새 프로젝트 폴더 mkdir my-project && cd my-project git init # 5파일 + 부록 D 템플릿 그대로 복사 cp ~/templates/SPEC.md . cp ~/templates/PLAN.md . cp ~/templates/REVIEW.md . cp ~/templates/BUILD.md . cp ~/templates/CLAUDE.md . # 빈 칸 본인 프로젝트 채움 (약 30분) # - SPEC.md 7항목 + E1 # - PLAN.md Phase 1 + E2 # - REVIEW.md G1 12 체크 양식 # - BUILD.md Day 0 트레이스 박음 # - CLAUDE.md 10 섹션 + E5 # 첫 commit git add . git commit -m "Day 0: 5파일+ 구조 + 부록 D 템플릿 적용"
Day 1~ — 5파일 진화 흐름
💻 5파일 진화 흐름
[Day 1~] 매일 BUILD.md 1~3줄 트레이스 [Week 1] SPEC v1 → Gemini 검토 → SPEC v2 [Week 2] G1 의식 — REVIEW.md 12 체크 [Week 3~4] BUILD 누적 + R4 의식 [Day 28] G2 의식 + 4주 회고 [Phase 2 진입] SPEC v3·v4 진화 + 두 검토자 (E3)
🎉 부록 D 마무리
SPEC · PLAN · REVIEW · BUILD · CLAUDE 5 템플릿이 한 곳에 모였습니다. 새 프로젝트 5분 안에 5파일 골격 박음 + 30분 안에 빈 칸 채웁니다.
다음 부록: 부록 E — 트러블슈팅. 50 흔한 문제 + 증상 + 원인 + 해결.