claude-code는 단순한 자동완성 도구가 아니라 코드베이스를 읽고 수정하는 에이전트이기 때문에, 저장소 구조가 결과 품질에 직접 영향을 준다. 이 문서는 Claude Code가 매 세션마다 프로젝트의 목적, 규칙, 워크플로우를 빠르게 파악하도록 CLAUDE.md, .claude/skills, .claude/rules, 프로젝트 문서를 어떻게 나눠야 하는지 정리한다.
왜 구조가 중요한가
프롬프트를 길게 쓰는 것만으로는 일관성이 생기지 않는다. Claude Code가 엔지니어처럼 움직이려면 최소한 네 가지가 필요하다.
- Why: 이 저장소가 무엇을 하는지
- Map: 코드와 문서가 어디에 있는지
- Rules: 무엇이 허용되고 금지되는지
- Workflow: 작업을 어떤 순서로 끝내는지
이 네 가지를 저장소 구조에 분산해서 넣어두면, 세션이 바뀌어도 같은 기준을 반복해서 적용할 수 있다.
권장 구조
repo/
├── CLAUDE.md
├── docs/
├── .claude/
│ ├── skills/
│ └── rules/
└── src/1. CLAUDE.md는 루트 메모리다
CLAUDE.md에는 매 세션마다 항상 필요한 정보만 넣는다.
- 프로젝트 목적과 핵심 제약
- 자주 쓰는 빌드·테스트 명령
- 중요한 디렉터리 맵
- “항상 지켜야 하는” 규칙
핵심은 짧고 구체적으로 쓰는 것이다. 공식 문서도 CLAUDE.md를 200줄 이하, 충돌 없는 명시적 지침으로 유지하라고 권장한다. 장문의 절차서나 설명을 다 넣으면 오히려 준수율이 떨어진다.
2. .claude/skills는 재사용 가능한 전문가 모드다
한 번 정의해두고 여러 번 재사용할 워크플로우는 스킬(skill)로 빼는 편이 낫다.
- 코드 리뷰 체크리스트
- 릴리스 노트 생성
- 특정 프레임워크 전용 수정 절차
- 외부 API 연동이나 배포 자동화
즉, “매번 설명하기 귀찮은 절차”를 캡슐화하는 장소다.
3. .claude/rules는 잊으면 안 되는 가드레일이다
파일 유형이나 하위 디렉터리별로 적용되는 제약은 rules가 더 적합하다.
api/아래에서는 인증 미들웨어 강제infra/아래에서는 파괴적 명령 금지frontend/아래에서는 디자인 시스템 준수
루트 CLAUDE.md에 모든 예외 규칙을 몰아넣기보다, 필요한 위치에서만 로드되게 분리하는 편이 정확하다.
4. docs/는 점진적 컨텍스트 저장소다
아키텍처 문서, ADR, 도메인 설명, 운영 런북은 CLAUDE.md가 아니라 문서 폴더에 두는 편이 낫다. Claude Code는 필요할 때 문서를 읽어오면 되므로, 상시 컨텍스트를 소모하지 않으면서도 깊은 배경지식을 제공할 수 있다.
위험 구간에는 로컬 CLAUDE를 둔다
데이터베이스 마이그레이션, 결제, 배포 스크립트처럼 실수 비용이 큰 경로에는 하위 디렉터리용 CLAUDE.md를 따로 두는 방식이 유효하다. 예를 들어 infra/CLAUDE.md에 “프로덕션 삭제 명령 금지”, “Terraform plan 먼저 실행” 같은 지침을 둘 수 있다.
실전 운영 원칙
- 루트
CLAUDE.md는 짧게 유지한다. - 절차는 스킬로, 범위 제한 규칙은 rules로 보낸다.
- 문서는
docs/에 두고 필요할 때만 읽게 한다. - 같은 규칙이 여러 파일에 중복되지 않게 정리한다.
흔한 실패 패턴
CLAUDE.md를 팀 철학 문서처럼 길게 쓰는 경우- 스킬로 분리해야 할 절차를 전부 루트 파일에 넣는 경우
- 규칙 충돌을 방치해 세션마다 결과가 달라지는 경우
- 위험 구간에 경로별 지침이 없어 파괴적 작업을 일반 코드 수정처럼 다루는 경우
관련 문서
- claude-code — Claude Code 개요
- claude-code-routines — 반복 작업 자동화
- claude-code-tips-session-management — 긴 세션의 품질 관리
- agent-skills — 스킬 시스템 개요
- awesome-agent-skills — 스킬 큐레이션 저장소
참고 자료
- How to Structure a Claude Code Project that Thinks Like an Engineer — Analytics Vidhya (2026-04-19)
- How Claude remembers your project — Claude Code Docs