Ad Space (horizontal)
Advanced

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 경험을 누릴 수 있도록 하세요.

Ad Space (rectangle)
#Claude Code #CLAUDE.md #configuration #best practices #project management