모든 긴 Claude Code 세션은 똑같은 방식으로 끝납니다. 몇 시간의 작업이 사라지고 처음부터 다시 시작하게 되죠.
해결책은 더 똑똑한 모델이 아닙니다. Claude Code 팀이 내부적으로 사용하지만 가이드를 작성하지 않은 시스템이 바로 그것입니다.
대부분의 개발자는 이 시스템을 갖고 있지 않으며, 존재 자체를 모릅니다.
전체 시스템을 공개합니다 👇
🧠본격적으로 들어가기 전에, 저는 AI와 바이브 코딩에 관한 일일 노트를 텔레그램 채널에서 공유합니다:https://t.me/zodchixquant

컨텍스트 엔지니어링의 진짜 의미
Claude 는 매 세션마다 수천 줄을 읽습니다. 대부분은 노이즈이고, 중요한 5% 는 2시간이 지나면 묻혀버립니다.
바로 그때 Claude 가 함수를 invent 하고 작성하지 않은 버그를 수정하기 시작합니다. 해결책은 더 큰 모델이 아니라, 세션에 무엇이 들어오는지 제어하는 것입니다.
다음은 Claude Code 팀이 자체 모노레포에서 사용하는 6 가지 패턴입니다.

패턴 1: 계층형 CLAUDE.md (1-3 단계)
하나의 CLAUDE.md 로는 충분하지 않습니다. Claude Code 팀은 각각 다른 범위를 담당하는 세 가지 레이어를 운영합니다.
1 단계: 프로젝트 전체 규칙이 담긴 루트 CLAUDE.md
저장소 루트에 CLAUDE.md 를 넣으세요. 100 줄 미만으로 유지하세요. Claude 가 모든 프롬프트에서 묻는 네 가지 질문에 답해야 합니다:
1# 프로젝트: [이름]23## 스택4- 런타임: Node 22, TypeScript 5.55- 프레임워크: Next.js 15, React 196- 데이터베이스: Postgres 16, Drizzle ORM7- 테스팅: Vitest, Playwright89## 컨벤션10- 임포트: `@/` 경로만 사용 (절대 경로)11- 컴포넌트: 케밥 케이스 파일, PascalCase 내보내기12- 테스트: `[파일명].test.ts` 형태로 같은 위치에13- 커밋: 컨벤셔널 커밋, co-author 푸터 없음1415## 건드리지 말 것16- `infra/terraform/` (운영팀 관리)17- `migrations/` (자동 생성, 수동 편집 금지)18- `vendor/` (커밋된 의존성)1920## 기본값21- 작업 완료 선언 전 `npm test` 실행22- 모든 수정마다 `tsc --noEmit` 으로 타입 체크23- 저장 시 Prettier 로 포맷팅
2 단계: 모듈별 컨텍스트를 위한 하위 디렉토리 CLAUDE.md
규칙이 달라지는 모든 폴더에 CLAUDE.md 를 추가하세요. Claude 는 해당 폴더에서 작업할 때 루트 파일 위에 가장 가까운 CLAUDE.md 를 읽습니다.
예시, src/auth/CLAUDE.md:
1# 인증 모듈23이 모듈은 세션 관리와 OAuth 흐름을 담당합니다.45## 규칙6- 토큰을 절대 로깅하지 않음 (축약된 형태도 금지)7- 모든 세션 읽기는 `getSession()` 을 통해서만, raw 쿠키 사용 금지8- 새 제공자 추가는 머지 전 보안 검토 필요910## 먼저 읽을 파일11- `session.ts` (계약 확인)12- `providers/index.ts` (레지스트리 패턴 확인)
3 단계: ~/.claude/CLAUDE.md 에 개인 CLAUDE.md
이것은 글로벌 환경설정 레이어입니다. 저장소 외부에 위치하며 모든 곳에 적용됩니다.
1## 내 환경설정2- 여러 파일을 수정하기 전에 무엇을 하려는지 먼저 설명할 것3- 요청이 무언가를 망가뜨릴 것 같으면 반박할 것4- 상속보다 합성 선호5- macOS 에서 zsh 사용
세 레이어가 쌓입니다: 글로벌 환경설정 + 프로젝트 규칙 + 모듈 규칙. Claude 는 컨텍스트에 다시 업로드하지 않고 모든 프롬프트에서 세 가지를 모두 읽습니다.
패턴 2: 정밀 파일 참조 (4-5 단계)
기본값인 "Claude 가 알아서 중요한 파일을 찾도록" 하는 방식은 컨텍스트를 사용하는 가장 느리고 가장 어리석은 방법입니다.
4 단계:@file 자동완성 참조
프롬프트에 @ 를 입력하면 Claude 가 퍼지 파일 선택기를 엽니다. 파일을 설명하는 데 긴 문장을 쓰는 대신 이것을 사용하세요.
나쁜 예: "사용자 인증 코드와 세션 헬퍼를 봐줘"
좋은 예: "다음 파일을 보고 토큰 갱신을 수정해줘
@src/auth /session.ts 와
@src/auth /providers/google.ts"
정밀 참조는 정확히 해당 파일만 로드합니다. 설명 방식은 Claude 가 검색하고, 4-5 개의 후보 파일을 읽고, 절반은 틀리게 선택하도록 만듭니다.
5 단계: /focus 로 전체 워크플로우 범위 지정
더 긴 작업의 경우 Claude 의 전체 세션 범위를 특정 폴더로 제한하세요:
1/focus src/auth src/api/auth-routes
이제 모든 검색, grep, 읽기가 이 두 폴더 안에서만 이루어집니다.
집중 작업에서 컨텍스트 사용량을 60-80% 줄여주며, Claude 가 필요하지 않은 관련 파일을 "도움님이" 읽는 것을 막아줍니다.
/focus clear 로 초기화하세요.
패턴 3: 압축-계속 (Compact-and-continue) (6-8 단계)
긴 세션은 컨텍스트 제한에 도달하여 중단됩니다. 비결은 긴 세션을 피하는 것이 아니라, 제어된 압축을 통해 운영하는 것입니다.
6 단계: /stats 로 컨텍스트 사용량 모니터링
주기적으로 /stats 를 실행하세요.
컨텍스트 사용량이 70% 를 넘으면 위험 구역입니다. 85% 를 넘으면 Claude 가 알리지 않고 초기 메시지를 버리기 시작합니다.
7 단계: 보존 지침과 함께 /compact 사용
/compact 만으로는 대화를 요약합니다. 지침을 추가하면 Claude 에게 무엇을 그대로 보존할지 알려줍니다:
1/compact preserve: 현재 작업 계획, 인증 리팩터링에 관한 모든 결정, 3 단계의 실패한 테스트 결과
8 단계: 여러 날에 걸친 세션을 위한 /resume
작업이 여러 날에 걸쳐 있다면 각 세션을 /compact preserve: ... 로 마무리하고 다음 세션을 다음과 같이 시작하세요:
1claude --resume [세션 ID]
또는 가장 최근 세션은 claude --continue 만 입력하세요. 압축된 상태를 유지한 채 정확히 중단한 지점부터 이어집니다.
패턴 4: 계획 우선 읽기 (9-10 단계)
가장 큰 컨텍스트 누수는 Claude 가 파일을 이해하기 전에 수정을 시작하는 것입니다. 계획 모드는 먼저 읽고, 그 다음에 작성하도록 강제합니다.
9 단계: 모든 위험한 작업에서 계획 모드 전환
하나 이상의 파일을 건드리는 작업 전에 Shift+Tab 을 눌러 계획 모드로 전환하세요.
계획 모드에서 Claude 는 읽기만 가능합니다. 무엇을 할 것인지 설명하고, 건드릴 모든 파일을 나열하고, 제안된 변경 사항을 보여줍니다. 승인하기 전까지는 아무것도 실행되지 않습니다.
절감 효과는 실질적입니다: 8 개를 읽고, 3 개를 잘못 수정하고, 되돌리고, 다시 읽고, 다시 수정하는 대신, 한 번 읽고 한 번 수정하면 됩니다.
10 단계: 민감한 경로에 후크로 계획 모드 잠금
위험한 영역에서는 계획 모드를 필수로 만드세요. .claude/settings.json 에서:
1{2 "hooks": {3 "PreToolUse": [4 {5 "matcher": "Edit(src/auth/**)|Edit(migrations/**)",6 "hooks": [7 {8 "type": "command",9 "command": "claude-require-plan-mode"10 }11 ]12 }13 ]14 }15}
src/auth/*\ 또는 migrations/\\* 에서 수정을 시도하면 계획 모드가 필수로 실행됩니다. Claude 는 이를 우회할 수 없습니다.
패턴 5: 서브에이전트 컨텍스트 격리 (11-13 단계)
서브에이전트는 메인 컨텍스트를 작게 유지하는 가장 깔끔한 방법입니다. 각 서브에이전트는 자체 창에서 실행되므로 부모 세션은 노이즈를 볼 수 없습니다.
11 단계: 최소한의 도구 표면으로 서브에이전트 설계
작업에 필요한 도구로만 제한하세요.
코드 리뷰어는 Write 나 Edit 가 필요하지 않습니다.
문서 업데이터는 Bash 가 필요하지 않습니다. 표면이 작을수록 관련 없는 문서와 도구 설명에 컨텍스트가 낭비되지 않습니다.
1---2name: code-reviewer3description: 버그 및 보안 이슈에 대한 코드 변경 검토4tools: Read, Grep, Glob5model: sonnet6---
12 단계: 에이전트가 필요한 파일 참조만 전달
"최근 변경 사항을 검토해줘"라고 말하지 마세요. " @src/auth/session.ts 와 @src/auth/providers/google.ts 를 검토해줘"라고 말하세요.
서브에이전트는 "최근"이 무엇을 의미하는지 추측한 것이 아니라, 정확히 그 파일만 읽습니다.
13 단계: 서브에이전트에 더 저렴한 모델 사용
작업에 따라 에이전트별로 모델을 설정하세요.
리뷰 및 테스트 작업에는 Sonnet, 문서 업데이트와 린트에는 Haiku, 아키텍처나 보안 감사처럼 깊은 추론이 필요한 경우에만 Opus 를 사용하세요.
필요시 전역 설정:
1export CLAUDE_CODE_SUBAGENT_MODEL="claude-sonnet-4-6"
더 저렴한 서브에이전트 = 달러당 더 많은 서브에이전트 호출 = 더 많은 격리 = 더 작은 메인 컨텍스트.
30 분 컨텍스트 엔지니어링 스타터
10 분: 스택, 컨벤션, 건드리지 말아야 할 항목, 기본값을 포함한 간결한 루트 CLAUDE.md 작성.
5 분: 가장 자주 수정하는 2-3 개 모듈에 하위 디렉토리 CLAUDE.md 추가.
5 분: ~/.claude/CLAUDE.md 에 환경설정을 담은 개인 CLAUDE.md 생성.
5 분: 가장 자주 하는 워크플로우를 위해 .claude/skills/ 에 스킬 하나 만들기.
5 분: Shift+Tab 을 근육 기억으로 만들고 모든 다중 파일 작업을 계획 모드로 시작하기.
끝!
다음 세션은 동일한 작업량에 50-70% 적은 컨텍스트를 사용합니다. 5 번째 세션이 되면 패턴이 반사가 되어 더 이상 제한에 도달하지 않게 됩니다.
컨텍스트는 Claude 가 관리해주는 것이 아닙니다. 여러분이 엔지니어링하는 것입니다.
이제 시스템을 갖추셨습니다.
읽어주셔서 감사합니다!
저는 AI, 금융, 바이브 코딩에 관한 일일 노트를 텔레그램 채널에서 공유합니다: https://t.me/zodchixquant






