AI/Dev
바이브코딩 claude.md 가이드
2026년 3월 6일
CLAUDE.md 작성 가이드 및 표준안
CLAUDE.md는 Claude가 프로젝트를 이해하고 일관된 코드를 생성하기 위한 "프로젝트 헌법" 같은 파일이에요. 잘 작성할수록 바이브코딩 품질이 크게 올라갑니다.
📋 표준 구조
markdown
# CLAUDE.md
## 1. 프로젝트 개요
- 서비스 목적과 핵심 가치
- 타겟 사용자
- 현재 개발 단계 (MVP / 베타 / 프로덕션)
## 2. 기술 스택
- **Frontend**: Next.js 14 (App Router), TypeScript, Tailwind CSS, shadcn/ui
- **Backend**: Node.js, Express / Fastify
- **Database**: PostgreSQL + Prisma ORM
- **Auth**: NextAuth.js
- **Infra**: Vercel, AWS S3
- **패키지 매니저**: pnpm
## 3. 프로젝트 구조
\`\`\`
src/
├── app/ # Next.js App Router 페이지
├── components/ # 공통 컴포넌트
│ ├── ui/ # 기본 UI (shadcn)
│ └── features/ # 기능별 컴포넌트
├── lib/ # 유틸리티, 헬퍼
├── hooks/ # 커스텀 훅
├── types/ # TypeScript 타입 정의
└── server/ # 서버 액션, API
\`\`\`
## 4. 코딩 컨벤션
- 언어: TypeScript strict mode 사용
- 컴포넌트: 함수형 컴포넌트만 사용, default export
- 스타일: Tailwind utility class 우선, 인라인 스타일 금지
- 상태관리: useState/useReducer 우선, 전역은 Zustand
- 네이밍: 컴포넌트 PascalCase, 함수/변수 camelCase, 상수 UPPER_SNAKE_CASE
- 파일명: kebab-case.tsx
- 주석: 한국어로 작성
## 5. 핵심 요구사항 / 비즈니스 규칙
- 로그인하지 않은 사용자는 /dashboard 접근 불가
- 결제는 항상 서버 사이드에서 검증
- 사용자 데이터 삭제는 soft delete 방식 사용
- API 응답은 항상 { data, error, message } 형태 통일
## 6. 금지사항 (NEVER DO)
- any 타입 사용 금지
- console.log를 프로덕션 코드에 남기지 않기
- 클라이언트 컴포넌트에서 직접 DB 접근 금지
- 하드코딩된 API URL 금지 (환경변수 사용)
## 7. 선호하는 패턴
- 데이터 페칭: Server Component에서 직접 fetch 우선
- 에러 처리: try-catch + 커스텀 에러 클래스
- 폼: react-hook-form + zod 검증
- API 라우트보다 Server Actions 선호
## 8. 환경변수
- .env.example 파일 참고
- 절대 .env 파일을 코드에 하드코딩하지 말 것
## 9. 현재 TODO / 작업 컨텍스트
- [ ] 현재 작업 중인 기능: 유저 프로필 편집
- [ ] 다음 작업 예정: 알림 시스템
- 최근 변경사항: Prisma → Drizzle ORM 마이그레이션 완료
## 10. 자주 쓰는 명령어
\`\`\`bash
pnpm dev # 개발 서버
pnpm build # 빌드
pnpm db:migrate # DB 마이그레이션
pnpm db:studio # Prisma Studio
\`\`\`
✅ 잘 쓴 CLAUDE.md의 핵심 원칙
구체적으로 쓸수록 좋다 — "React 사용"보다 "React 18, App Router, Server Components 우선"처럼 버전과 방식까지 명시
금지사항을 명확히 — Claude가 나쁜 습관을 반복하지 않도록 NEVER DO 섹션은 필수
현재 컨텍스트 포함 — 지금 어떤 기능을 만들고 있는지 적어두면 Claude가 맥락에 맞는 코드를 생성
패턴 예시 제공 — "이런 방식으로 작성해" 보다 실제 코드 스니펫 한 줄이 훨씬 효과적
주기적으로 업데이트 — 기술 스택이 바뀌면 바로 반영해야 혼선이 없음
💡 팁
- CLAUDE.md는 프로젝트 루트에 위치시키는 게 기본
- 너무 길면 Claude가 중요한 부분을 놓칠 수 있으니 200~400줄 이내가 적당
- 특정 도메인 지식(예: 금융 계산 공식, 특수 비즈니스 로직)도 여기 적어두면 매우 유용
- 여러 사람이 함께 쓴다면 Git으로 관리하고 PR 리뷰 대상에 포함