CLAUDE.md (컨텍스트 파일)

갱신 2026-08-03

한눈에 요약

이 파일이 왜 필요한가

AI에게 같은 프로젝트 사정을 매번 설명하는 건 사람이나 AI나 낭비다. 그래서 나온 게 이 파일이다.

CLAUDE.md(Codex 등에서는 AGENTS.md)는 Claude Code가 프로젝트에서 지켜야 할 규칙과 맥락을 적어 두는 메모리 파일이다 8. 하네스 엔지니어링의 가장 기본이 되는 구성 요소이며 5, 컨텍스트 엔지니어링의 첫걸음으로 평가된다 8.

작동 원리

여기서 헷갈리기 쉬운 대목이 하나 있다. 이 파일은 강제가 아니라 맥락이다.

공식 문서상 CLAUDE.md는 시스템 프롬프트가 아니라 사용자 메시지로 전달된다. Claude가 읽고 따르려 하지만, 모호하거나 서로 충돌하는 지시는 100% 준수가 보장되지 않는다 8. 실무상 약 80% 정도만 따른다고 알려져 있다 17.

그래서 반드시 지켜야 하는 규칙이라면 이 파일에 적는 것만으로는 부족하다. 아래 쪽이 그 역할을 맡는다.

핵심 모순 ① — "지워라" vs "품질 2~3배"

이 위키의 핵심 긴장 중 하나다. 두 주장을 모두 보존한다 (어느 쪽도 삭제하지 않음).

입장 A — "지워라" 입장 B — "품질 2~3배"
주장 잘못 쓴 컨텍스트 파일은 없느니만 못하다 가장 효과가 큰 지렛대다
근거 AI가 자동 생성한 파일로 성공률이 오히려 하락 검증 규칙을 넣으면 결과 품질 2~3배
비용 추론 비용 20%↑ 한 번 잘 써두면 계속 재사용
출처 6 8 19

입장 A — "CLAUDE.md를 (잘못 쓰면) 지워라"

다만 같은 논문에서 사람이 직접 작성한 컨텍스트 파일은 유의미한 성공률 상승(평균 약 19% 증가)을 보였다 6. 문제는 파일의 존재가 아니라 누가 어떻게 썼느냐였다.

입장 B — "CLAUDE.md만으로 코딩 품질이 3배(2~3배) 달라진다"

화해 — 결국 "어떻게 쓰느냐"의 문제

두 입장은 충돌이 아니다. 각자 다른 CLAUDE.md를 두고 말하고 있을 뿐이다.

쓸까 말까부터 어떻게 쓸까까지 순서대로 정리한 실무 절차는 CLAUDE.md 결정 가이드에 따로 있다.

좋은 CLAUDE.md 작성 원칙

오토 메모리 (자동 메모리, /memory)

CLAUDE.md를 사람이 적는 규칙집이라고 하면, 오토 메모리는 Claude가 스스로 적는 업무 일지다.

둘을 어떻게 나눠 쓸지도 정리되어 있다. 개인 메모리는 오토 메모리(memory.md)에, 팀이 공유할 지식은 명시적으로 CLAUDE.md에 쓰는 게 권장 분담이다 7.

모듈식 분리 — Lazy Loading과 .claude/rules

프로젝트가 커지면 규칙이 쌓인다. 그러면 지금 필요한 규칙이 무관한 규칙들 사이에 묻힌다. 한 모노레포(여러 프로젝트를 저장소 하나에 모아 둔 구조)에서는 CLAUDE.md가 47,000단어까지 불어난 사례도 있다 10.

해결책은 하나로 모인다. 필요한 규칙만 필요한 시점에 불러오는 것이다.

참조(import)와 Lazy Loading

CLAUDE.md에는 규칙과 참조만 두고, 상세 내용은 별도 마크다운 파일로 뺀다. API 스펙 50개나 DB 스키마 같은 것들이다. @ 기호로 기존 문서를 참조해 두면 Claude가 필요할 때만 그 파일을 읽어 컨텍스트 윈도우(한 번에 볼 수 있는 분량)를 아낀다 7 8.

.claude/rules + 프론트매터 조건부 로딩

.claude/rules/ 하위에 주제별 파일을 두는 방식이다. 각 파일 맨 위 프론트매터(---로 감싼 설정 영역)에 적용 패턴을 지정한다. 예를 들어 src/api/**/*.ts라고 적으면 그 경로를 작업할 때만 규칙이 자동으로 로드된다. 테스트 파일엔 테스트 규칙만, API 파일엔 API 규칙만 들어가게 되는 셈이다 10.

실제로 쓰는 오픈소스도 있다. trigger.dev는 DB 세이프티 규칙에, CockroachDB는 Go 파일 개인정보 마스킹 규칙에 이 방식을 쓴다 10.

폴더별 CLAUDE.md

하위·상위 디렉터리에 별도 CLAUDE.md를 두는 방법이다. apps/api/CLAUDE.md, web/CLAUDE.md 식으로 두면 해당 폴더를 작업할 때 그 폴더의 파일만 읽힌다. 루트 파일이 비대해지는 걸 막아 준다 7 10.

쉽게 말하면 핵심은 파일을 쪼개는 것 자체가 아니다. 불필요한 규칙이 Claude의 주의를 뺏지 않도록 "필요한 시점에만 불러오게" 설계하는 것이다 10.

함께 읽기