본문으로 건너뛰기
블로그로
공개 가이드튜토리얼

CLAUDE.md 작성법: 프로젝트 규칙을 한 페이지로

CLAUDE.md는 세션마다 읽히는 규칙 파일입니다. 어디에 두고, /init으로 시작해, 200줄 아래로 유지하며, 구체적으로 쓰는 법을 공식 문서 기준으로 정리했습니다.

공식 출처 4건 · 본문 하단 확인 섹션과 동일

CLAUDE.md는 Claude Code가 세션을 시작할 때마다 읽는 프로젝트 규칙 파일입니다. 2026년 9월 11일 기준 공식 메모리 문서는 "다시 설명해야 할 것을 적어 두는 자리"라고 정의합니다. 빌드 명령, 폴더 구조, "항상 X를 하라"는 규칙처럼 매 세션에 필요한 사실만 넣고, 200줄 아래로 유지하는 것이 핵심입니다.

왜 한 페이지인가

Claude Code의 대화는 세션마다 새로 시작됩니다. 지난 세션에서 "테스트는 npm test로 돌려"라고 말했어도 다음 세션의 Claude는 모릅니다. CLAUDE.md는 그 간극을 메우는 문서이고, 세션이 열릴 때 컨텍스트 창에 그대로 실립니다. 그래서 길수록 토큰을 먹고, 공식 문서 표현대로 "긴 파일은 준수율을 떨어뜨립니다."

문서가 제안하는 추가 시점은 네 가지입니다.

  • Claude가 같은 실수를 두 번째 했을 때
  • 코드 리뷰에서 "이 코드베이스에선 원래 이렇게 한다"가 나왔을 때
  • 지난 세션에 쳤던 정정을 이번 세션에 또 치고 있을 때
  • 새 팀원에게도 똑같이 설명해야 할 내용일 때

어디에 두는가

범위위치용도공유 대상
조직 정책macOS /Library/Application Support/ClaudeCode/CLAUDE.md회사 표준·보안 규정기기의 모든 사용자
개인 전체~/.claude/CLAUDE.md내 코딩 취향, 도구 단축나(모든 프로젝트)
프로젝트./CLAUDE.md 또는 ./.claude/CLAUDE.md아키텍처·컨벤션·워크플로팀(버전 관리)
프로젝트 개인./CLAUDE.local.md내 샌드박스 URL, 테스트 데이터나(이 프로젝트) — .gitignore에 추가

현재 디렉터리와 그 위 디렉터리의 파일이 모두 로드되고, 하위 디렉터리의 CLAUDE.md는 Claude가 그 폴더의 파일을 읽을 때 따라 들어옵니다. 로드됐는지 확인하려면 세션에서 /context를 치고 Memory files 목록을 봅니다.

시작은 /init

빈 파일에서 시작하지 않아도 됩니다. /init을 실행하면 Claude가 코드베이스를 분석해 빌드 명령·테스트 방법·컨벤션이 담긴 초안을 만듭니다. 이미 파일이 있으면 덮어쓰지 않고 개선안을 제안합니다. 초안이 나오면 Claude가 스스로 알아낼 수 없는 것만 덧붙입니다. 예를 들어 "결제 코드는 반드시 plan 모드로 먼저 계획한다" 같은 팀 규칙입니다.

잘 읽히는 지시문 세 가지 원칙

공식 문서의 예를 그대로 옮기면 이렇습니다.

모호함구체적
"코드 포맷을 잘 맞춰라""2칸 들여쓰기를 쓴다"
"변경은 테스트해라""커밋 전에 npm test를 실행한다"
"파일을 정리해라""API 핸들러는 src/api/handlers/에 둔다"
  1. 구체성: 검증 가능한 문장으로 씁니다.
  2. 구조: 마크다운 헤더와 불릿으로 묶습니다. Claude도 사람처럼 구조를 훑습니다.
  3. 일관성: 두 규칙이 충돌하면 Claude가 임의로 하나를 고를 수 있습니다. 상위 폴더 CLAUDE.md, 하위 폴더 파일, .claude/rules/까지 주기적으로 모순을 정리합니다.

비개발자를 위한 최소 템플릿

강의나 블로그 초안, 자동화 스크립트처럼 코드가 많지 않은 프로젝트라면 이 정도로 충분합니다.

# 이 프로젝트

- 목적: 주간 뉴스레터 초안을 만드는 폴더
- 글은 `drafts/`에, 완성본은 `published/`에 둔다
- 문체: 존댓말, 한 문장 30자 안팎, 영어 약어는 처음 나올 때 풀어 쓴다
- 외부 사실은 반드시 출처 URL을 같은 줄에 적는다

# 하지 말 것

- `published/` 안의 파일은 수정하지 않는다
- 이메일·전화번호 같은 개인정보를 예시로 만들지 않는다

파일이 커지기 시작하면 세 가지로 나눕니다. 특정 폴더에만 해당하는 규칙은 .claude/rules/ 아래 파일로 옮기고 paths 프런트매터로 범위를 제한합니다. 여러 단계 절차는 스킬로 뺍니다. 다른 문서를 그대로 끌어오고 싶으면 @docs/git-instructions.md처럼 @경로 임포트를 씁니다. 단, 임포트한 파일도 세션 시작 시 함께 로드되므로 컨텍스트 절약 효과는 없습니다.

자주 하는 실수

  • AGENTS.md만 있고 CLAUDE.md가 없다. Claude Code는 CLAUDE.md만 읽습니다. @AGENTS.md 한 줄짜리 CLAUDE.md를 만들어 두 도구가 같은 규칙을 보게 합니다.
  • 지켜지지 않는 규칙을 계속 늘린다. CLAUDE.md는 안내이지 강제가 아닙니다. "커밋 전 반드시 lint"처럼 특정 시점에 꼭 실행돼야 하는 것은 으로 옮깁니다.
  • HTML 주석에 메모를 남기며 토큰을 걱정한다. <!-- --> 블록 주석은 컨텍스트에 들어가기 전에 제거됩니다. 유지보수 메모는 마음껏 남겨도 됩니다.
  • /compact 뒤에 규칙이 사라진 것 같다. 프로젝트 루트 CLAUDE.md는 압축 후 다시 읽힙니다. 사라진 것은 대화 중에만 말했던 지시입니다. 그런 지시는 파일로 옮깁니다.

자동 메모리와의 차이

같은 문서는 auto memory도 설명합니다. Claude가 사용자의 정정과 선호를 스스로 ~/.claude/projects/<project>/memory/에 적어 두는 기능이고 기본값이 켜져 있습니다. CLAUDE.md는 사람이 쓰는 규칙, auto memory는 Claude가 쓰는 학습 노트입니다. "항상 pnpm을 써"처럼 기억하라고 말하면 auto memory로 가고, 규칙 파일에 넣고 싶으면 "CLAUDE.md에 추가해"라고 말하거나 /memory로 직접 엽니다.

다음 단계

출처와 확인 (2026-09-11)