CLAUDE.md 작성 완벽 가이드: 프로젝트 설정 베스트 프랙티스
효과적인 CLAUDE.md 파일 작성법을 상세히 소개합니다. 기술 스택, 컨벤션, 프로젝트 구조를 Claude Code에 전달하여 출력 품질을 극대화하세요.
CLAUDE.md란?
CLAUDE.md는 Claude Code가 프로젝트를 이해할 수 있도록 도와주는 컨텍스트 파일입니다. 프로젝트 루트에 배치하면 Claude Code가 매 세션 시작 시 자동으로 읽습니다. 잘 작성된 CLAUDE.md는 Claude Code의 응답 품질을 획기적으로 향상시킵니다.
파일 위치와 우선순위
여러 위치에 CLAUDE.md 파일을 배치할 수 있으며, 모두 로드됩니다:
~/.claude/CLAUDE.md # 전역 설정 (모든 프로젝트 공유)
./CLAUDE.md # 프로젝트 루트 (팀 공유)
./CLAUDE.local.md # 로컬 설정 (.gitignore에 추가)
./src/CLAUDE.md # 하위 디렉토리 수준 설정
- 전역: 개인 코딩 스타일 선호도
- 프로젝트 루트: 팀이 공유하는 규칙과 기술 스택
- 로컬: Git에 커밋하지 않는 개인 설정
- 하위 디렉토리: 특정 모듈에 대한 추가 컨텍스트
시작 템플릿
실용적인 CLAUDE.md 템플릿입니다:
# 프로젝트 개요
이커머스 백엔드 API. 주문 관리, 재고 관리, 사용자 인증을 담당.
## 기술 스택
- 언어: TypeScript 5.x
- 런타임: Node.js 22
- 프레임워크: Fastify
- DB: PostgreSQL 16 + Prisma ORM
- 테스트: Vitest
- CI: GitHub Actions
## 디렉토리 구조
src/
routes/ # API 라우트 정의
services/ # 비즈니스 로직
repositories/ # 데이터 접근 계층
middleware/ # 인증, 로깅, 에러 처리
utils/ # 유틸리티 함수
types/ # 타입 정의
## 코딩 컨벤션
- 화살표 함수 사용
- 에러 처리는 반드시 try-catch + 커스텀 에러 클래스 사용
- 네이밍: camelCase (변수/함수), PascalCase (타입/클래스)
- 파일명: kebab-case
- 상대 경로 대신 `@/` 경로 별칭 사용
## 자주 쓰는 명령어
- 테스트 실행: `npm test`
- 타입 체크: `npx tsc --noEmit`
- 린트: `npm run lint`
- DB 마이그레이션: `npx prisma migrate dev`
- 개발 서버: `npm run dev`
## 중요 규칙
- prisma/schema.prisma 수정 후 반드시 마이그레이션 생성
- 모든 API 엔드포인트에 Zod 유효성 검사 스키마 필수
- 새로운 라우트는 routes/index.ts에 등록
효과적인 CLAUDE.md 작성 팁
1. 간결하게 유지하기
CLAUDE.md는 컨텍스트 윈도우 토큰을 소비합니다. 장황한 설명을 피하고 불릿 포인트로 작성하세요.
# 나쁜 예
이 프로젝트는 TypeScript를 사용합니다. TypeScript는
Microsoft가 개발한 JavaScript에 타입을 추가한 언어로...
# 좋은 예
- 언어: TypeScript 5.x (strict 모드)
2. 하지 말아야 할 것을 문서화하기
안티패턴을 명시적으로 나열하는 것은 놀라울 정도로 효과적입니다.
## 금지 사항
- `any` 타입 사용 금지
- 디폴트 익스포트 금지 (네임드 익스포트만 사용)
- 디버깅용 console.log 금지 (logger 사용)
- 기존 테스트 삭제 또는 스킵 금지
3. 워크플로 정의하기
작업을 어떤 순서로 처리해야 하는지 Claude Code에 안내하세요.
## 새 기능 추가 절차
1. `src/types/`에 타입 정의 생성
2. `src/repositories/`에 데이터 접근 계층 구현
3. `src/services/`에 비즈니스 로직 구현
4. `src/routes/`에 엔드포인트 정의
5. 각 계층별 단위 테스트 작성
6. `npm test`로 모든 테스트 통과 확인
4. 암묵적 지식 기록하기
다른 곳에 기록되지 않은 중요한 정보를 문서화하세요.
## 프로젝트 특이사항
- `user_id`는 UUID v7 사용 (시간순 정렬 가능)
- 모든 가격 계산은 `Decimal.js` 사용 필수 (부동소수점 오류 방지)
- 환경 변수는 `src/config.ts`에서 일괄 관리 — process.env 직접 접근 금지
팀에서 활용하기
.gitignore 설정
개인 설정을 버전 관리에서 제외합니다:
# .gitignore
CLAUDE.local.md
코드 리뷰에 포함하기
CLAUDE.md를 중요한 프로젝트 문서로 취급하세요. PR 리뷰에 포함시키고 팀 전체가 함께 관리하세요.
CLAUDE.md 업데이트 시점
- 새로운 라이브러리를 추가할 때
- 코딩 컨벤션을 변경할 때
- 디렉토리 구조를 재편할 때
- Claude Code가 같은 실수를 반복하는 것을 발견했을 때
결론
CLAUDE.md를 통해 Claude Code를 프로젝트 전문가로 만들 수 있습니다. /init으로 기본 골격을 생성한 후 작업하면서 점차 다듬어 나가세요. 팀과 공유하여 모든 구성원이 최적화된 Claude Code 경험을 누릴 수 있도록 하세요.
무료 PDF: 5분 완성 Claude Code 치트시트
이메일 주소만 등록하시면 A4 한 장짜리 치트시트 PDF를 즉시 보내드립니다.
개인정보는 엄격하게 관리하며 스팸은 보내지 않습니다.
이 글을 작성한 사람
Masa
Claude Code를 적극 활용하는 엔지니어. 10개 언어, 2,000페이지 이상의 테크 미디어 claudecode-lab.com을 운영 중.
관련 글
Claude Code/Codex 안전 Agent Harness 설계: 권한, 검증, 롤백
Claude Code와 Codex를 안전하게 운영하기 위한 Agent Harness를 권한 정책, 실행 계획, 검증, 복구 계층으로 설계합니다.
Claude Code 서브에이전트 활용 패턴 10선
Claude Code의 서브에이전트 기능을 활용하는 10가지 실전 패턴. 병렬 처리, 전문화, 컨텍스트 분리로 개발 속도를 두 배로 만드는 방법.
Claude Code Agent SDK 입문 ― 자율 에이전트를 빠르게 구축하는 방법
Claude Code Agent SDK로 자율형 AI 에이전트를 구축하는 방법을 해설합니다. 설정부터 도구 정의, 멀티스텝 실행까지 실전 코드와 함께 소개합니다.