레퍼런스
CLAUDE.md: 어디에 두고 어떻게 쓰는가
CLAUDE.md는 Claude Code가 세션 시작마다 읽는 지시 파일입니다. 위치는 넷이고 넓은 순서대로 관리 정책(IT가 배포하며 개별 설정으로 제외 불가), 사용자 `~/.claude/CLAUDE.md`, 프로젝트 `./CLAUDE.md` 또는 `./.claude/CLAUDE.md`, 로컬 `./CLAUDE.local.md`입니다. 이들은 서로 덮어쓰지 않고 전부 이어붙여 컨텍스트에 들어가며, 파일시스템 루트에서 작업 디렉터리 방향으로 배치됩니다. 권장 크기는 파일당 200줄 미만이고, 4 MiB를 넘는 파일은 통째로 건너뜁니다.
어디에 두면 누구에게 적용되나
| 범위 | 위치 | 공유 대상 |
|---|---|---|
| 관리 정책 | macOS: /Library/Application Support/ClaudeCode/CLAUDE.md · Linux와 WSL: /etc/claude-code/CLAUDE.md · Windows: C:\Program Files\ClaudeCode\CLAUDE.md | 조직 내 모든 사용자, 개별 설정으로 제외 불가 |
| 사용자 | ~/.claude/CLAUDE.md | 본인만(모든 프로젝트) |
| 프로젝트 | ./CLAUDE.md 또는 ./.claude/CLAUDE.md | 팀 전체(버전 관리 경유) |
| 로컬 | ./CLAUDE.local.md | 본인만(이 프로젝트). .gitignore에 추가 |
작업 디렉터리와 그 상위 디렉터리의 CLAUDE.md·CLAUDE.local.md는 시작 시 로드됩니다. 하위 디렉터리의 것은 시작 시가 아니라 Claude가 그 디렉터리의 파일을 읽는 시점에 로드됩니다. 대규모 모노레포에서 다른 팀의 CLAUDE.md까지 딸려 온다면 설정 `claudeMdExcludes`에 글롭을 적어 제외할 수 있습니다.
무엇을 쓰고 무엇을 쓰지 않는가
공식이 제시한 기준은 명확합니다. "언젠가 또 설명하게 될 내용"을 쓰라는 것입니다. 구체적인 신호는 같은 실수를 두 번째로 했을 때, 코드 리뷰가 Claude가 알았어야 할 점을 지적했을 때, 지난 세션에 쳤던 정정을 또 쳤을 때, 새 팀원에게도 같은 설명이 필요할 때입니다.
- 쓸 것: 빌드·테스트 명령, 폴더 구조, 명명 규칙, "항상 X 한다" 유형의 규칙.
- 쓰지 않을 것: 여러 단계로 된 절차, 코드베이스의 일부에만 적용되는 이야기. 전자는 스킬로, 후자는 `.claude/rules/`의 경로 한정 규칙으로 옮깁니다.
- 구체적으로: "코드를 정리한다"가 아니라 "들여쓰기는 공백 2칸". "테스트한다"가 아니라 "커밋 전에 `npm test` 실행".
- 모순 없이: 두 파일이 반대되는 말을 하면 모델이 임의로 하나를 고를 수 있습니다.
@import로 나누기
`@path/to/file` 형식으로 다른 파일을 불러올 수 있습니다. 상대 경로는 작업 디렉터리가 아니라 그 import를 적은 파일 기준으로 해석되고, 불러온 파일이 또 불러올 수 있으며 최대 4단계입니다. 오해하기 쉬운 지점이 있는데, 불러온 파일도 시작 시 컨텍스트로 펼쳐지기 때문에 파일 분리는 정리를 위한 것이지 컨텍스트 절약이 되지는 않습니다.
See @README for project overview and @package.json for available npm commands.
# Additional Instructions
- git workflow @docs/git-instructions.md 이미 AGENTS.md가 있다면
Claude Code가 읽는 것은 CLAUDE.md이지 AGENTS.md가 아닙니다. 다른 에이전트용으로 AGENTS.md를 운영 중인 저장소라면, CLAUDE.md를 만들고 `@AGENTS.md`로 불러오는 것이 공식 권장입니다. 이중 관리를 피하면서 그 아래에 Claude 전용 지시를 덧붙일 수 있습니다. Windows에서는 심볼릭 링크에 관리자 권한이나 개발자 모드가 필요하므로 import 방식이 안전합니다.
@AGENTS.md
## Claude Code
src/billing/ 아래 변경은 플랜 모드로 진행한다. 경로 한정 규칙으로 컨텍스트 아끼기
CLAUDE.md가 길어지면 주제를 `.claude/rules/`로 옮깁니다. YAML 프런트매터에 `paths`를 적은 규칙은 Claude가 해당 패턴에 맞는 파일을 읽을 때만 로드됩니다. `paths`가 없는 규칙은 무조건 로드되며 우선순위는 `.claude/CLAUDE.md`와 같습니다.
---
paths:
- "src/api/**/*.ts"
---
# API 개발 규칙
- 모든 엔드포인트에서 입력 검증을 수행한다
- 오류 응답은 공통 포맷을 따른다 권장값은 파일당 200줄 미만이며, 길수록 컨텍스트를 더 쓰고 준수율이 떨어지기 때문입니다. 하드 상한은 4 MiB로, 이를 넘으면 파일 전체가 읽히지 않습니다. 참고로 "200줄 / 25KB"는 자동 메모리의 MEMORY.md 인덱스 파일에 적용되는 별개의 제한입니다.
자주 묻는 질문
- CLAUDE.md는 어디에 두어야 하나요?
- 팀과 공유할 내용은 프로젝트 루트의 ./CLAUDE.md 또는 ./.claude/CLAUDE.md에 두고 버전 관리에 넣습니다. 개인 취향은 ~/.claude/CLAUDE.md, 이 프로젝트에 한정된 개인 내용은 ./CLAUDE.local.md(.gitignore 대상)에 둡니다. 조직 전체에 강제할 규정은 관리 정책 위치에 배포합니다.
- CLAUDE.md는 얼마나 길어도 되나요?
- 공식은 파일당 200줄 미만을 권장합니다. 길수록 컨텍스트를 더 소비하고 지시 준수율이 떨어지기 때문입니다. 4 MiB를 넘는 파일은 통째로 건너뜁니다. 내용이 늘어나면 .claude/rules/로 나누고 paths 프런트매터로 필요할 때만 로드시키세요.
- CLAUDE.md에 쓴 규칙이 지켜지지 않습니다.
- 먼저 `/context`의 Memory files에 그 파일이 나오는지 확인하세요. 없으면 로드되지 않은 것입니다. 로드됐다면, 공식이 CLAUDE.md는 사용자 메시지로 전달되며 엄격한 준수를 보장하지 않는다고 명시하고 있습니다. 반드시 실행되어야 하는 처리는 훅으로 옮기세요.
- AGENTS.md와 CLAUDE.md를 둘 다 관리해야 하나요?
- 내용을 이중으로 관리할 필요는 없습니다. Claude Code는 CLAUDE.md만 읽으므로, CLAUDE.md에 `@AGENTS.md` 한 줄을 넣어 불러오면 됩니다. 세션 시작 시 내용이 펼쳐지고, 그 아래에 Claude 전용 지시를 덧붙일 수 있습니다.
출처
- Claude Code 공식 문서 — CLAUDE.md와 메모리 — 최종 확인: 2026-09-05