Claude Code 세팅 최적화 가이드 — CLAUDE.md와 Memory를 전문가처럼 관리하는 법
실제로 CLAUDE.md를 107줄에서 29줄로 줄이고, 중복을 제거하고, 최신 베스트 프랙티스를 적용한 전체 과정. 재사용 가능한 최적화 프롬프트 포함.
왜 최적화가 필요한가
Claude Code를 쓰다 보면 CLAUDE.md와 메모리 파일이 점점 비대해진다. 새 규칙을 추가하고, 피드백을 저장하고, 프로젝트 정보를 쌓다 보면 어느새 같은 내용이 3곳에 중복되어 있고, 더 이상 쓰지 않는 규칙이 매 세션마다 토큰을 잡아먹고 있다.
문제는 이게 눈에 안 보인다는 것이다. Claude가 알아서 잘 하는 것 같으니까. 하지만 실제로는:
- 중복된 지시가 서로 충돌하면 Claude가 임의로 하나를 선택한다
- 긴 CLAUDE.md는 중요한 규칙의 준수율을 떨어뜨린다 (공식 문서 확인)
- 매 세션 불필요한 토큰을 소비하면 실제 작업에 쓸 컨텍스트가 줄어든다
나는 오늘 Claude와 함께 전체 세팅을 감사하고 최적화했다. 결과적으로 CLAUDE.md 사용자 영역이 107줄에서 29줄로 72% 감소했고, 토큰도 매 세션 약 950개를 절약하게 되었다.
최적화 프롬프트 — 이것만 복붙하면 된다
다음 프롬프트를 Claude Code에 붙여넣으면, 오늘 내가 한 전체 과정을 재현할 수 있다.
내 Claude Code 세팅을 전면 감사하고 최적화해줘. 아래 단계를 순서대로 진행해.
## 1단계: 현황 파악
- ~/.claude/CLAUDE.md 전체 읽기
- ~/.claude/projects/*/memory/ 디렉토리의 모든 .md 파일 읽기
- .claude/rules/ 디렉토리 확인
- settings.json 확인
## 2단계: 중복 감사
- CLAUDE.md와 Memory 파일 간 중복 내용 식별
- CLAUDE.md 내부에서 OMC 자동관리 영역과 사용자 영역 간 중복 식별
- MEMORY.md 인덱스에 직접 들어있는 긴 내용 (별도 파일로 분리 필요한 것) 식별
## 3단계: 최신 베스트 프랙티스 대조
- 공식 문서 기준으로 안티패턴 체크:
- "obvious instructions" (Claude가 이미 하는 것을 다시 지시)
- 과도한 강조 ("CRITICAL", "YOU MUST")
- 매 세션 로드할 필요 없는 규칙 (→ .claude/rules/로 이동)
- advisory로 둘 것 vs hook으로 강제할 것 구분
- CLAUDE.md 200줄 미만 권고 준수 여부
- MEMORY.md 200줄/25KB 한도 내 여부
## 4단계: 내 역할에 맞는 최적화
- 나는 [여기에 역할 입력: 예) CEO/CTO, 주니어 개발자, 데이터 사이언티스트 등]
- 내 역할에 불필요한 지시사항 식별 (예: 코딩 안 하는 사람에게 코딩 규칙)
- 범용 사고 원칙은 살리되, 도메인 특화 언어는 내 맥락으로 번역
## 5단계: 실행
- 중복 제거
- 불필요 항목 삭제 또는 .claude/rules/로 이동
- MEMORY.md에서 긴 블록은 별도 파일로 분리
- stale 항목 (완료된 마이그레이션, 오래된 날짜 기록 등) 정리
각 단계마다 발견한 문제와 조치를 보고해줘.
실제로 무엇이 바뀌었나
Before → After 비교
CLAUDE.md 사용자 영역:
| Before (107줄) | After (29줄) | 변경 |
|---|---|---|
| HWP 스킬 트리거 테이블 8줄 | 0줄 | .claude/rules/hwp.md로 이동 |
| Context Window Protection 25줄 | 2줄 | 메모리 파일 참조 |
| Communication Style 6줄 | - | First Principles에 통합 |
| Coding Guidelines 35줄 | - | CEO 맥락으로 번역 후 3줄로 압축 |
| Workflow Orchestration 16줄 | 0줄 | OMC 자동관리와 중복 → 삭제 |
| Task Management 6줄 | 0줄 | 코딩 워크플로우 → 삭제 |
| First Principles | 18줄 (신규) | 제1원칙 사고 체계 추가 |
MEMORY.md:
| Before | After | 변경 |
|---|---|---|
| 블로그 상세정보 7줄 직접 기재 | 1줄 링크 | project_blog.md로 분리 |
| WIM Tech Blog Rules 4줄 직접 기재 | 1줄 링크 | project_wim_tech_blog.md로 분리 |
| Communication Preferences에 중복 3줄 | 1줄 | First Principles 중복 제거 |
| Workflow Convention 2줄 | 0줄 | OMC와 중복 → 삭제 |
| stale 항목 (패스워드 락 날짜 등) | 0줄 | 더 이상 필요 없는 기록 삭제 |
신규 파일 구조
~/.claude/
├── CLAUDE.md # 전역 지침 (OMC 181줄 + 사용자 29줄)
├── rules/
│ └── hwp.md # HWP 파일 작업 시에만 로드
└── projects/C--Users-junwo/memory/
├── MEMORY.md # 인덱스 (간결한 1줄 링크)
├── project_blog.md # 블로그 상세 (신규 분리)
├── project_wim_tech_blog.md # 기술블로그 규칙 (신규 분리)
├── feedback_first_principles.md
├── feedback_context_management.md
└── ... (기타 메모리 파일)
핵심 원칙 5가지
이 과정에서 발견한, Claude Code 세팅 관리의 핵심 원칙:
1. CLAUDE.md는 행동 지침, Memory는 사실 기록
같은 내용이라도 놓는 위치에 따라 Claude가 다르게 해석한다.
- CLAUDE.md: “전제를 자동 수용하지 마라” → 행동 명령으로 작동
- Memory: “사용자는 제1원칙 사고를 선호함” → 참고 정보로 작동
행동을 바꾸고 싶으면 CLAUDE.md, 나에 대한 정보를 기억시키고 싶으면 Memory.
2. 중복은 시한폭탄이다
같은 규칙이 CLAUDE.md와 Memory에 둘 다 있으면, 하나만 업데이트했을 때 두 지시가 충돌한다. Claude는 이 경우 우선순위에 따라 하나를 선택하는데, 그 선택이 항상 의도한 것은 아니다.
하나의 진실 원천(Single Source of Truth) 원칙: 모든 규칙은 한 곳에만 존재해야 한다.
3. “Claude가 이미 하는 것”은 적지 마라
Claude 4.x 모델의 시스템 프롬프트에는 이미 포함된 규칙들이 있다:
- “요청한 것만 변경하라”
- “가정을 명시하라”
- “범위를 넘지 마라”
이걸 CLAUDE.md에 다시 적으면 토큰 낭비 + 모델이 과도하게 신중해지는 부작용이 생긴다. 제거 테스트: “이 줄을 지우면 Claude가 실수할까?” — 아니라면 지워라.
4. 매 세션 필요 없는 것은 rules/로
.claude/rules/ 디렉토리의 파일은 paths 프론트매터로 특정 파일 작업 시에만 로드된다. HWP 규칙, 특정 프레임워크 규칙, 데이터베이스 규칙 등은 여기에 넣으면 평소에는 토큰 0, 필요할 때만 로드된다.
5. 정기적으로 감사하라
CLAUDE.md와 메모리는 시간이 지나면 반드시 비대해진다. 한 달에 한 번, 위의 최적화 프롬프트를 돌려서:
- stale 항목 정리
- 새로 생긴 중복 제거
- 최신 기능(rules/, hooks 등) 활용 여부 확인
마무리
Claude Code 세팅 최적화는 코드 리팩토링과 같다. 처음 만들 때는 필요한 것을 넣고, 쓰다 보면 비대해지고, 주기적으로 정리해야 한다.
차이점은, 이 정리를 Claude 자신에게 시킬 수 있다는 것이다. 위의 프롬프트 하나로 Claude가 자기 설정을 스스로 감사하고 최적화한다. 메타적이지만, 이것이야말로 AI 도구를 제대로 쓰는 방법이다.
도구를 쓰는 것과 도구를 관리하는 것은 다른 차원의 능력이다.
← All posts