★★★★★
#출시·운영·디버그 · claude-code
CLAUDE.md 갱신 — 새 함정 알게 됐을 때
상황: 개발 중 새로운 버그/함정을 발견했는데 다음 번에 또 빠뜨릴 것 같아.
#문서화#CLAUDE.md#체크리스트
상황: 개발 중 새로운 버그/함정을 발견했는데 다음 번에 또 빠뜨릴 것 같아.
**CLAUDE.md는 살아있는 문서** — 매번 갱신해야 함.
갱신 구조:
1. **프로젝트 CLAUDE.md** (`.claude/CLAUDE.md`):
- 프로젝트 고유 설정 (Firebase ID, AdMob ID, Kakao Key)
- 빌드 명령어 (flavor, dart-define)
- 팀 내 컨벤션 (패키지 구조, 상태관리)
- **반복 실수** (이 프로젝트만의 함정)
2. **글로벌 CLAUDE.md** (`~/.claude/CLAUDE.md`):
- 모든 프로젝트 공통 함정 (글로벌 #1~#21)
- 환경 정보 (Flutter 버전, 경로)
- docs/ 문서 인덱스
3. **문서 구조**:
```markdown
# [프로젝트명]
## 프로젝트 개요
## 앱 식별자
## Firebase
## AdMob / 결제 / 로그인
## 이 프로젝트 고유 패키지
## 빌드 설정 + 명령어
## 반복 실수 (프로젝트별)
## Firestore 컬렉션 (있으면)
## Store Metadata (출시 후)
```
4. **갱신 시점**:
- 새 패키지 추가 (pubspec.yaml)
- 빌드 명령어 변경 (flavor, dart-define)
- 심사 거절 (메타데이터 갱신)
- 버그 해결 (반복 실수에 추가)
5. **예시 — Kakao 앱 키 충돌 발견**:
```markdown
## 반복 실수
| # | 증상 | 해결 |
|---|------|------|
| 1 | Kakao 로그인 후 엉뚱한 앱 열림 | iOS URL scheme kakao{appKey}가 중복. 앱별 신규 Native App Key 생성 (공유 금지) |
```
검증: 문서 작성 직후 다른 프로젝트 개발할 때 참고 가능한지 확인
쓰는 법 — 위 칸에 본인 값을 채우면 아래 프롬프트에 바로 반영돼요. 복사 버튼을 누르면 채워진 그대로 클립보드에 담기니까, claude-code(또는 본인이 쓰는 AI)에 붙여넣기만 하면 됩니다. 변수가 없으면 그냥 복사해서 쓰세요.

