
업무에서 Claude Code를 사용할 때의 Context Compaction 대책 정리
요약
Claude Code 사용 중 발생하는 Context Compaction 현상과 정보 손실 문제를 해결하기 위한 실무적인 대책을 제시합니다. CLAUDE.md 활용, 파일 기반 참조 방식 전환, 도표의 Markdown 변환, 서브 에이전트 활용법을 다룹니다.
핵심 포인트
- CLAUDE.md를 활용해 프로젝트 핵심 정보를 사전에 정의하여 컨텍스트 소비 방지
- 자료를 직접 붙여넣는 대신 파일로 저장하여 Claude가 필요할 때 읽도록 유도
- 토큰 소모가 큰 도표나 이미지는 Markdown 텍스트로 변환하여 저장 및 참조
- 서브 에이전트를 활용해 독립된 컨텍스트에서 대규모 조사 작업 수행
Claude Code를 업무에서 사용하다 보면, PRJ(프로젝트)의 사양서나 설계 자료를 읽어들인 직후에 Context Compaction(컨텍스트 압축)이 발생하는 경험을 해보신 적이 없으신가요?
Compaction은 대화가 길어졌을 때 자동으로 발생하며, 그때까지의 대화가 요약됩니다. 세세한 사양의 수치나 고유명사가 누락될 수 있어, "중요한 정보가 사라져 버렸다"는 느낌을 받기 쉽습니다.
이 기사에서는 실제 업무 상황을 상정한 Context Compaction 대책과, 서브 에이전트(Sub-agent)를 활용한 효율적인 워크플로우를 소개합니다.
Claude Code는 대화 이력을 컨텍스트 윈도우(Context Window)에 유지합니다. 이것이 상한에 가까워지면, 그때까지의 대화를 자동으로 요약(Compaction)하여 빈 공간을 확보합니다.
컨텍스트 윈도우
┌───────────────────────────────────┐
│ 대화 이력・읽어들인 자료・코드... │ ← 상한에 가까워지면
...
Compaction 후에도 태스크는 계속되지만, 요약 과정에서 세부 정보가 손실될 가능성이 있습니다.
가장 근본적인 해결책입니다.
매번 자료를 붙여넣는 것이 아니라, 프로젝트의 중요 정보를 CLAUDE.md에 사전에 기술해 둡니다. Claude Code는 세션 시작 시 자동으로 읽어들이기 때문에, 컨텍스트를 소비하지 않고 참조할 수 있습니다.
# CLAUDE.md
## 아키텍처 개요
- 프론트엔드: React + TypeScript
...
"자료를 컨텍스트에 싣는다"에서 "자료는 파일에 두고 필요할 때 읽으러 간다"로 발상을 전환합니다.
❌ 기존: 자료 전문을 붙여넣기 → 컨텍스트 압박
✅ 권장: 자료를 파일로 저장 → Claude가 필요할 때 읽음
Claude Code는 파일 시스템에 직접 액세스할 수 있기 때문에, "이 사양서의 ○○ 부분을 확인해줘"라고 말하면 그때마다 읽으러 갑니다. Compaction이 일어나도 파일은 사라지지 않으므로, 정보의 영속성이 유지됩니다.
docs/
requirements.md # 요구사항 정의
architecture.md # 아키텍처
...
CLAUDE.md에는 인덱스만 적어두면, Claude가 무엇이 어디에 있는지 항상 파악할 수 있습니다.
Excel이나 PDF의 도표·이미지는 텍스트의 수 배~수십 배의 토큰을 소비합니다.
1회차: 도표를 Claude에게 읽힘 → 설명을 Markdown으로 저장
2회차 이후: 해당 Markdown을 참조 (이미지 토큰 불필요)
Claude에게 주는 지시 예시:
이 도표의 내용을 나중에 내가 참조할 수 있도록
Markdown 텍스트로서 docs/figures/arch-diagram.md に 저장해줘
어떻게든 PDF에서 정보를 추출하고 싶다면, 도표를 제외한 텍스트만 추출하는 도구가 유효합니다.
# pdftotext 를 사용하는 경우
pdftotext input.pdf output.txt
# pdfminer 를 사용하는 경우 (Python 필요)
...
【최초 셋업 (1회만)】
자료의 도표 → Claude가 읽음 → docs/summaries/ 에 Markdown 저장
【일상 작업】
...
Claude Code는 서브 에이전트(Sub-agent)에게 조사 태스크를 위임할 수 있습니다. 서브 에이전트는 독립된 컨텍스트 윈도우에서 동작하기 때문에, 메인 대화과는 별도로 토큰을 소비합니다.
메인 세션 (당신과의 대화)
└── 서브 에이전트 (별도 컨텍스트로 기동)
├── 독자적인 컨텍스트 윈도우를 가짐
...
메인 컨텍스트에 미치는 영향은 "응답 텍스트"뿐입니다. 서브 에이전트가 내부에서 100페이지 분량의 자료를 읽더라도, 메인에는 요약본만 돌아옵니다.
지시 예시:
Explore 에이전트를 사용하여 docs/ 이하의 사양서를 조사해서,
○○ 기능의 요구사항을 정리해줘
서브 에이전트를 여러 개 병렬로 실행시켜, 각각에게 서로 다른 자료를 읽게 한 뒤 메인에서 통합하는 워크플로우를 짤 수 있습니다.
결합 시험 시나리오 작성 예시:
다음 내용을 병렬로 조사하여 결과를 정리해줘:
Agent 1: docs/requirements.pdf를 읽고 기능 목록과 업무 흐름(Workflow)을 추출
Agent 2: docs/api-spec.xlsx를 읽고 API의 입출력 및 에러 케이스를 추출
...
서브 에이전트 그룹 (병렬 실행)
├── Agent A: 요구사항 정의서 → 기능 목록·제약 사항
├── Agent B: API 명세서 → 엔드포인트·데이터 구조
...
서브 에이전트(Sub-agent)에 대한 지시는 구체적일수록 정확도가 높아집니다.
❌ "명세서를 읽어줘"
✅ "시험 시나리오 작성에 필요한 기능 간의 의존 관계와 이상계(Abnormal case) 조건을 추출해줘"
또한, 통합하기 전에 한 번 확인 단계를 거치면 누락을 방지할 수 있습니다.
Step 1: 각 에이전트의 추출 결과를 메인에서 확인
Step 2: 누락된 내용이 있다면 추가 조사 지시
Step 3: 내용이 모두 갖춰지면 시나리오 생성
| 대책 | 효과 | 난이도 |
|---|---|---|
| CLAUDE.md에 중요 정보를 작성한다 | ★★★ | 낮음 |
| ... |
Context Compaction을 완전히 막을 수는 없지만, "컨텍스트(Context)에 올릴 것"을 최소화하고 "파일에 영속화(Persistence)할 것"을 최대화하는 설계로 함으로써 영향을 크게 억제할 수 있습니다.
특히 서브 에이전트의 활용은 단순한 Compaction 대책에 그치지 않고, 대규모 자료의 병렬 처리나 복잡한 결과물 생성 등 업무 효율을 극적으로 향상시킬 수 있는 잠재력을 가지고 있습니다.
- 서브 에이전트는 메인 대화 이력을 모르는 상태로 기동합니다. 따라서 프롬프트(Prompt)에 필요한 배경 정보를 명시할 필요가 있습니다.
- 서브 에이전트 자체에도 컨텍스트 상한(Context limit)이 있으므로, 극단적으로 큰 자료는 처리하지 못할 수도 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기