Claude Code의 컨텍스트 엔지니어링 마스터하기: Anthropic 엔지니어들이 사용하는 5가지 패턴과 13단계

@zodchiii
영어1개월 전 · 2026년 6월 06일
104K
202
20
15
443

TL;DR

계층화된 CLAUDE.md 파일, 정밀한 파일 참조, 서브 에이전트 격리를 활용하여 Claude Code 세션을 최적화하고 컨텍스트 사용량을 최대 70%까지 줄이는 방법을 알아보세요.

모든 긴 Claude Code 세션은 똑같은 방식으로 끝납니다. 몇 시간의 작업이 사라지고 처음부터 다시 시작하게 되죠.

해결책은 더 똑똑한 모델이 아닙니다. Claude Code 팀이 내부적으로 사용하지만 가이드를 작성하지 않은 시스템이 바로 그것입니다.

대부분의 개발자는 이 시스템을 갖고 있지 않으며, 존재 자체를 모릅니다.

전체 시스템을 공개합니다 👇

🧠본격적으로 들어가기 전에, 저는 AI와 바이브 코딩에 관한 일일 노트를 텔레그램 채널에서 공유합니다:https://t.me/zodchixquant

darkzodchi - inline image

컨텍스트 엔지니어링의 진짜 의미

Claude 는 매 세션마다 수천 줄을 읽습니다. 대부분은 노이즈이고, 중요한 5% 는 2시간이 지나면 묻혀버립니다.

바로 그때 Claude 가 함수를 invent 하고 작성하지 않은 버그를 수정하기 시작합니다. 해결책은 더 큰 모델이 아니라, 세션에 무엇이 들어오는지 제어하는 것입니다.

다음은 Claude Code 팀이 자체 모노레포에서 사용하는 6 가지 패턴입니다.

darkzodchi - inline image

패턴 1: 계층형 CLAUDE.md (1-3 단계)

하나의 CLAUDE.md 로는 충분하지 않습니다. Claude Code 팀은 각각 다른 범위를 담당하는 세 가지 레이어를 운영합니다.

1 단계: 프로젝트 전체 규칙이 담긴 루트 CLAUDE.md

저장소 루트에 CLAUDE.md 를 넣으세요. 100 줄 미만으로 유지하세요. Claude 가 모든 프롬프트에서 묻는 네 가지 질문에 답해야 합니다:

markdown
1# 프로젝트: [이름]
2
3## 스택
4- 런타임: Node 22, TypeScript 5.5
5- 프레임워크: Next.js 15, React 19
6- 데이터베이스: Postgres 16, Drizzle ORM
7- 테스팅: Vitest, Playwright
8
9## 컨벤션
10- 임포트: `@/` 경로만 사용 (절대 경로)
11- 컴포넌트: 케밥 케이스 파일, PascalCase 내보내기
12- 테스트: `[파일명].test.ts` 형태로 같은 위치에
13- 커밋: 컨벤셔널 커밋, co-author 푸터 없음
14
15## 건드리지 말 것
16- `infra/terraform/` (운영팀 관리)
17- `migrations/` (자동 생성, 수동 편집 금지)
18- `vendor/` (커밋된 의존성)
19
20## 기본값
21- 작업 완료 선언 전 `npm test` 실행
22- 모든 수정마다 `tsc --noEmit` 으로 타입 체크
23- 저장 시 Prettier 로 포맷팅

2 단계: 모듈별 컨텍스트를 위한 하위 디렉토리 CLAUDE.md

규칙이 달라지는 모든 폴더에 CLAUDE.md 를 추가하세요. Claude 는 해당 폴더에서 작업할 때 루트 파일 위에 가장 가까운 CLAUDE.md 를 읽습니다.

예시, src/auth/CLAUDE.md:

markdown
1# 인증 모듈
2
3이 모듈은 세션 관리와 OAuth 흐름을 담당합니다.
4
5## 규칙
6- 토큰을 절대 로깅하지 않음 (축약된 형태도 금지)
7- 모든 세션 읽기는 `getSession()` 을 통해서만, raw 쿠키 사용 금지
8- 새 제공자 추가는 머지 전 보안 검토 필요
9
10## 먼저 읽을 파일
11- `session.ts` (계약 확인)
12- `providers/index.ts` (레지스트리 패턴 확인)

3 단계: ~/.claude/CLAUDE.md 에 개인 CLAUDE.md

이것은 글로벌 환경설정 레이어입니다. 저장소 외부에 위치하며 모든 곳에 적용됩니다.

markdown
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 의 전체 세션 범위를 특정 폴더로 제한하세요:

text
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 에게 무엇을 그대로 보존할지 알려줍니다:

text
1/compact preserve: 현재 작업 계획, 인증 리팩터링에 관한 모든 결정, 3 단계의 실패한 테스트 결과

8 단계: 여러 날에 걸친 세션을 위한 /resume

작업이 여러 날에 걸쳐 있다면 각 세션을 /compact preserve: ... 로 마무리하고 다음 세션을 다음과 같이 시작하세요:

markdown
1claude --resume [세션 ID]

또는 가장 최근 세션은 claude --continue 만 입력하세요. 압축된 상태를 유지한 채 정확히 중단한 지점부터 이어집니다.

패턴 4: 계획 우선 읽기 (9-10 단계)

가장 큰 컨텍스트 누수는 Claude 가 파일을 이해하기 전에 수정을 시작하는 것입니다. 계획 모드는 먼저 읽고, 그 다음에 작성하도록 강제합니다.

9 단계: 모든 위험한 작업에서 계획 모드 전환

하나 이상의 파일을 건드리는 작업 전에 Shift+Tab 을 눌러 계획 모드로 전환하세요.

계획 모드에서 Claude 는 읽기만 가능합니다. 무엇을 할 것인지 설명하고, 건드릴 모든 파일을 나열하고, 제안된 변경 사항을 보여줍니다. 승인하기 전까지는 아무것도 실행되지 않습니다.

절감 효과는 실질적입니다: 8 개를 읽고, 3 개를 잘못 수정하고, 되돌리고, 다시 읽고, 다시 수정하는 대신, 한 번 읽고 한 번 수정하면 됩니다.

10 단계: 민감한 경로에 후크로 계획 모드 잠금

위험한 영역에서는 계획 모드를 필수로 만드세요. .claude/settings.json 에서:

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 가 필요하지 않습니다. 표면이 작을수록 관련 없는 문서와 도구 설명에 컨텍스트가 낭비되지 않습니다.

yaml
1---
2name: code-reviewer
3description: 버그 및 보안 이슈에 대한 코드 변경 검토
4tools: Read, Grep, Glob
5model: sonnet
6---

12 단계: 에이전트가 필요한 파일 참조만 전달

"최근 변경 사항을 검토해줘"라고 말하지 마세요. " @src/auth/session.ts@src/auth/providers/google.ts 를 검토해줘"라고 말하세요.

서브에이전트는 "최근"이 무엇을 의미하는지 추측한 것이 아니라, 정확히 그 파일만 읽습니다.

13 단계: 서브에이전트에 더 저렴한 모델 사용

작업에 따라 에이전트별로 모델을 설정하세요.

리뷰 및 테스트 작업에는 Sonnet, 문서 업데이트와 린트에는 Haiku, 아키텍처나 보안 감사처럼 깊은 추론이 필요한 경우에만 Opus 를 사용하세요.

필요시 전역 설정:

text
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

darkzodchi - inline image
원클릭 저장

YouMind로 바이럴 글을 AI 심층 읽기

소스를 저장하고, 핵심 질문을 던지고, 주장을 요약해 바이럴 글을 다시 활용할 수 있는 노트로 바꾸세요. 하나의 AI 워크스페이스에서 모두 할 수 있습니다.

YouMind 둘러보기
크리에이터를 위해

당신의 Markdown을 깔끔한 𝕏 글로

직접 쓴 장문을 올릴 때 이미지, 표, 코드 블록을 𝕏에 맞게 정리하는 일은 번거롭습니다. YouMind는 전체 Markdown 초안을 깔끔하고 바로 게시할 수 있는 𝕏 글로 바꿔 줍니다.

Markdown → 𝕏 사용해 보기

분석할 패턴 더 보기

최근 바이럴 아티클

더 많은 바이럴 아티클 보기