CLAUDE.md — Claude Code의 영구 컨텍스트 파일. 매 대화마다 자동 포함되는 "프로젝트 설명서". 아키텍처, 컨벤션, 명령어, 표준을 매번 재설명할 필요 없음.
"CLAUDE.md files turn Claude Code from a general-purpose assistant into a tool configured specifically for your codebase."
번역: CLAUDE.md는 Claude Code를 "범용 어시스턴트" 에서 "이 코드베이스 전용 도구" 로 변환.
# Project Context
When working with this codebase, prioritize
readability over cleverness. Ask clarifying
questions before making architectural changes.
## About This Project
FastAPI REST API for user authentication and profiles.
Uses SQLAlchemy for database operations and Pydantic
for validation.
## Key Directories
- `app/models/` - database models
- `app/api/` - route handlers
- `app/core/` - configuration and utilities
## Standards
- Type hints required on all functions
- pytest for testing (fixtures in `tests/conftest.py`)
- PEP 8 with 100 character lines
## Common Commands
\`\`\`bash
uvicorn app.main:app --reload # dev server
pytest tests/ -v # run tests
\`\`\`
## Notes
All routes use `/api/v1` prefix. JWT tokens expire
after 24 hours.
1) /init 명령으로 시작
2) # 키로 점진적 추가
3) 다루는 영역:
HumanLayer 블로그가 발견한 디테일 — Claude Code가 system reminder 로 CLAUDE.md 주입:
<system-reminder>
IMPORTANT: this context may or may not be relevant
to your tasks. You should not respond to this
context unless it is highly relevant to your task.
</system-reminder>
이 디자인의 의미:
함의:
1) 200줄 이하 권장 (TurboDocx, Anthropic 공식):
2) Linter 작업은 Claude에게 맡기지 마라 (HumanLayer):
3) Progressive Disclosure:
4) WHY, WHAT, HOW (HumanLayer):
5) Shrivu Shankar의 13KB 한도:
이 글의 가장 중요한 메시지 — CLAUDE.md는 짧을수록 좋다.
직관에 반함:
실제:
이게 AI 컨텍스트 디자인의 일반 원칙 이다 — 양 X, 신호 밀도.
비교 — 인간 온보딩:
CLAUDE.md도 같다. 첫날의 1페이지 같은 자세.
Shrivu Shankar의 인용 가장 흥미롭다 — 회사 monorepo CLAUDE.md를 광고 공간처럼 관리:
"We've even started allocating effectively a max token count for each internal tool's documentation, almost like selling 'ad space' to teams."
"If you can't explain your tool concisely, it's not ready for the CLAUDE.md."
이게 enterprise 차원의 거버넌스다:
이 사고방식이 AI 컨텍스트를 자원으로 관리하는 진지함의 시그널이다. 단순 "문서" 가 아니라 "제품".
TurboDocx 인용:
"When Claude gets something wrong... tell Claude to add the correction to CLAUDE.md itself."
이게 self-improving system 패턴이다:
1. Claude가 실수
2. 사용자가 수정 + "CLAUDE.md에 추가해"
3. Claude가 자기가 사용할 파일 업데이트
4. 다음에 같은 실수 안 함
이 피드백 루프의 의미:
같은 패턴 — Brex의 사례 (#53 글):
이 자기 갱신 시스템이 AI 도구의 진정한 학습 메커니즘이다.
Shrivu Shankar의 표현:
"This file is the agent's 'constitution,' its primary source of truth for how your specific repository works."
이 비유가 정확하다:
| Constitution | CLAUDE.md |
|---|---|
| 국가의 핵심 법 | 프로젝트의 핵심 규칙 |
| 다른 법의 해석 기준 | 다른 코드의 해석 기준 |
| 변경 어려움 | 신중하게 변경 |
| 모든 것의 토대 | 모든 결정의 토대 |
이 비유의 함의 — CLAUDE.md는 일반 문서가 아니다. 진지한 거버넌스 자원.
이 인식 차이:
후자가 "AI가 진짜 회사 인프라" 가 됐을 때의 자세다.
HumanLayer의 가르침:
"Never send an LLM to do a linter's job. LLMs are comparably expensive and incredibly slow compared to traditional linters and formatters."
이 통찰이 깊다:
LLM의 자리:
결정론적 도구의 자리:
섞으면 안 되는 이유:
이게 AI 시대 도구 디자인의 원칙이다 — "각 도구를 자기 자리에". AI에게 모든 것 시키면 비효율 + 비결정성.
좋은 시스템:
Shrivu가 언급:
"Our monorepo's CLAUDE.md is strictly maintained and currently sits at 13KB (I could easily see it growing to 25KB)."
이 수치가 흥미롭다:
25KB ≈ 6,000-7,000 토큰. 매 세션에 항상 로드.
이 비용이 의미하는 것:
이게 "의식적 투자" 가 됐다. 12%를 CLAUDE.md에 투자하면, 나머지 88%가 더 효율적.
비유:
본문이 보여주는 도입 패턴이 우아하다:
1단계: /init
2단계: 사용
# 키3단계: 자연 진화
이 "organic 진화" 패턴이 개발자 친화성의 핵심이다. "먼저 완벽한 문서 작성" 강요 X. 사용하면서 진화.
이게 "developer experience" 의 좋은 예다. 마찰 0으로 시작, 점진적 가치 추가.
이 글은 "설정 파일 가이드" 같지만, 실제로는 AI 시대 코드 거버넌스의 새 원칙이다.
/init + # 워크플로: organic 진화2025년 11월 시점은 "CLAUDE.md를 어떻게 쓸지" 의 베스트 프랙티스가 정착한 시기다. 1년간의 community 실험이 표준화. Anthropic이 그 표준을 공식 글로 정리.
흥미로운 건 "CLAUDE.md를 어떻게 쓰지 말아야 할지" 가 더 중요한 메시지라는 점이다:
이 "안 할 것" 원칙이 "AI 시대 거버넌스 성숙도" 의 시그널이다. 초기엔 "AI에게 모든 것 알려줘야" 라는 강박. 성숙기엔 "필요한 것만, 자율성을 신뢰". CLAUDE.md 관리가 그 변화를 압축한다.