바이브코딩 품질을 결정하는 CLAUDE.md 작성법 완전 가이드
CLAUDE.md는 프로젝트의 설명서입니다. 새 팀원이 입사했을 때 주는 온보딩 문서와 같습니다. Claude Code는 작업을 시작할 때 이 파일을 가장 먼저 읽고, 여기에 적힌 규칙을 따릅니다.
CLAUDE.md 없이 바이브코딩하면 매번 같은 설명을 반복해야 합니다. "TypeScript 써줘", "한국어로 주석 달아줘", "테스트도 작성해줘"를 매 대화마다 말해야 하죠. CLAUDE.md에 한 번 적어두면, Claude Code가 항상 이 규칙을 따릅니다.
| 위치 | 적용 범위 | 예시 |
|---|---|---|
프로젝트루트/CLAUDE.md | 이 프로젝트 전체 | 기술 스택, 코딩 규칙 |
~/.claude/CLAUDE.md | 내 모든 프로젝트 | 선호하는 언어, 스타일 |
하위폴더/CLAUDE.md | 해당 폴더만 | 특정 모듈 규칙 |
좋은 CLAUDE.md는 다음 5가지를 포함합니다:
# CLAUDE.md
## 프로젝트 개요
이 프로젝트는 개인 블로그 웹사이트입니다.
Next.js 15 App Router로 구축되어 있고, Vercel에 배포합니다.## 기술 스택
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- DB: Supabase (PostgreSQL)
- 배포: Vercel## 코딩 컨벤션
- 컴포넌트: 함수형 컴포넌트만 사용 (클래스 컴포넌트 금지)
- 파일명: kebab-case (예: user-profile.tsx)
- 주석: 한국어로 작성
- import 순서: React → 라이브러리 → 내부 모듈## 명령어
- 개발 서버: `npm run dev`
- 빌드: `npm run build`
- 테스트: `npm test`
- 린트: `npm run lint`## 금지 사항
- .env 파일을 절대 커밋하지 마세요
- any 타입 사용 금지
- console.log를 프로덕션 코드에 남기지 마세요
- node_modules를 직접 수정하지 마세요# CLAUDE.md
## Overview
Next.js 15 App Router 기반 웹 애플리케이션.
## Tech Stack
- Next.js 15, TypeScript, Tailwind CSS
- Supabase (Auth + DB), Vercel 배포
## Commands
- `npm run dev` — 개발 서버 (localhost:3000)
- `npm run build` — 프로덕션 빌드
- `npm run lint` — ESLint 검사
## Conventions
- Server Components 기본, 'use client'는 필요할 때만
- API 라우트는 app/api/ 하위에 작성
- 환경변수는 .env.local에 관리 (커밋 금지)
- 컴포넌트 파일은 PascalCase, 유틸은 camelCase
## Don'ts
- 'use client'를 남용하지 마세요 (서버 컴포넌트 우선)
- inline style 대신 Tailwind 유틸리티 사용
- any 타입 금지# CLAUDE.md
## Overview
React Native (Expo) 기반 크로스플랫폼 모바일 앱.
## Tech Stack
- Expo SDK 52, TypeScript
- React Navigation, Zustand (상태관리)
- Supabase (Backend)
## Commands
- `npx expo start` — 개발 서버
- `npx expo run:ios` — iOS 빌드
- `npx expo run:android` — Android 빌드
## Conventions
- 화면 컴포넌트: screens/ 폴더
- 공용 컴포넌트: components/ 폴더
- 플랫폼별 코드: Platform.select() 사용
- 스타일: StyleSheet.create() 사용
## Don'ts
- 웹 전용 API (window, document) 사용 금지
- 큰 이미지를 번들에 포함하지 마세요# CLAUDE.md
## Overview
FastAPI 기반 REST API 서버.
## Tech Stack
- Python 3.12, FastAPI, SQLAlchemy
- PostgreSQL, Alembic (마이그레이션)
- Docker 배포
## Commands
- `uvicorn main:app --reload` — 개발 서버
- `alembic upgrade head` — DB 마이그레이션
- `pytest` — 테스트 실행
## Conventions
- 라우트: routers/ 폴더에 도메인별 분리
- Pydantic 스키마: schemas/ 폴더
- 비즈니스 로직: services/ 폴더
- 타입 힌트 필수
## Don'ts
- 라우트 핸들러에 비즈니스 로직을 직접 작성하지 마세요
- 동기 I/O 함수를 async 라우트에서 호출하지 마세요
- SQL을 raw string으로 작성하지 마세요 (SQLAlchemy ORM 사용)# CLAUDE.md
## Overview
생산성 향상을 위한 Chrome 확장 프로그램.
## Tech Stack
- Manifest V3, TypeScript, React
- Chrome Extension APIs
## Structure
- src/popup/ — 팝업 UI
- src/background/ — 서비스 워커
- src/content/ — 콘텐츠 스크립트
- public/manifest.json — 매니페스트
## Commands
- `npm run dev` — 개발 모드 (watch)
- `npm run build` — 프로덕션 빌드 (dist/)
## Don'ts
- Manifest V2 문법 사용 금지 (V3만)
- 불필요한 permissions 추가 금지
- 콘텐츠 스크립트에서 과도한 DOM 조작 금지| # | Bad (모호함) | Good (구체적) |
|---|---|---|
| 1 | "좋은 코드를 작성해라" | "함수는 30줄 이내, 하나의 역할만 수행" |
| 2 | "테스트 작성해" | "새 함수마다 __tests__/에 Jest 테스트 추가, 최소 2개 케이스" |
| 3 | "에러 처리해" | "API 호출은 try-catch로 감싸고, 사용자에게 toast 알림" |
| 4 | "깨끗한 코드" | "미사용 import 제거, console.log 금지, 변수명은 의미 있게" |
| 5 | "보안에 신경써" | "사용자 입력은 반드시 zod로 검증, SQL은 파라미터 바인딩만" |
좋은 규칙은 AI가 판단할 필요 없이 따를 수 있는 것입니다.
# CLAUDE.md
## 프로젝트
월간 구독형 AI 글쓰기 도우미 SaaS. MVP 단계.
## 스택
Next.js 15, TypeScript, Tailwind, Supabase, Stripe
## 핵심 규칙
1. 모든 페이지는 Server Component 기본
2. 클라이언트 상태는 Zustand (Redux 금지)
3. DB 쿼리는 Supabase JS Client만 사용
4. 결제 관련 코드는 반드시 서버 사이드에서 처리
5. 환경변수: NEXT_PUBLIC_ 접두사는 공개해도 되는 값만
6. 커밋 메시지: conventional commits (feat:, fix:, docs:)
## 우선순위
- 일단 동작하게 만들기 > 완벽한 코드
- 사용자 경험 > 개발자 편의
- 단순한 구현 > 확장 가능한 아키텍처 (MVP니까)# CLAUDE.md
## 프로젝트
내 포트폴리오 웹사이트. 나는 디자이너이고 코딩은 처음입니다.
## 요청사항
- 모든 코드에 한국어 주석을 상세하게 달아주세요
- 새로운 개념이 나오면 쉬운 말로 설명해주세요
- 위험한 명령어를 실행하기 전에 먼저 설명해주세요
- 파일을 변경할 때 왜 변경하는지 알려주세요
## 스택 (Claude Code가 알아서 선택해준 것)
- Next.js, Tailwind CSS, Vercel
## 규칙
- 복잡한 코드보다 이해하기 쉬운 코드 우선
- 외부 라이브러리는 최소한만 사용
- 에러가 나면 무엇이 잘못되었는지 쉽게 설명비개발자라면 CLAUDE.md에 **"나는 코딩을 모른다"**를 명시하세요. Claude Code가 더 친절하게 설명하고, 위험한 작업 전에 확인을 요청합니다.
CLAUDE.md 작성법을 익혔다면: