목차
한 줄 요약 — 왜 /compact, /clear가 필요한가
클로드 코드(Claude Code)는 대화가 길어질수록 컨텍스트 윈도우(working memory)가 누적됩니다. 토큰이 차오르면 응답 속도가 느려지고, 한계에 도달하기 전이라도 “context rot” 현상으로 답변 품질이 떨어집니다. 이를 막기 위해 주기적으로 /compact(요약 압축) 또는 /clear(완전 초기화) 명령을 실행해 메모리를 정리해야 합니다.
컨텍스트 윈도우란?
컨텍스트 윈도우는 클로드가 한 번에 참조할 수 있는 모든 정보의 총량입니다. 다음 항목들이 모두 토큰을 소모합니다.
- 사용자가 보낸 메시지와 클로드의 모든 응답
- Read 도구로 읽은 파일의 내용 전체
- Bash·Grep·Edit 등 도구 실행 결과(stdout/stderr 포함)
- 프로젝트 루트의
CLAUDE.md, 사용자 글로벌~/.claude/CLAUDE.md - 시스템 프롬프트, 자동 메모리, 활성화된 스킬 메타데이터
Claude Opus 4.7(1M)처럼 100만 토큰을 다루는 모델도 있지만, 대다수 대화는 200K 토큰 윈도우 안에서 진행됩니다. 그리고 윈도우가 클수록 효과가 좋다는 의미가 아닙니다 — 입력 길이가 늘어날수록 모델의 회상·추론 정확도가 함께 떨어진다는 사실이 여러 연구에서 확인되었습니다.
/compact와 /clear의 차이
두 명령은 모두 컨텍스트를 비우지만 동작 방식과 사용 목적이 다릅니다.
| 구분 | /compact | /clear |
|---|---|---|
| 동작 | 대화 이력을 LLM이 요약해 압축본으로 교체 | 대화 이력을 완전히 삭제하고 빈 상태로 초기화 |
| 연속성 | 이전 작업의 큰 흐름·결정사항 유지 | 모든 맥락 소실, 클린 슬레이트 |
| 토큰 절감 | 중간 정도(요약 길이만큼) | 최대(전부 제거) |
| 사용 시점 | 같은 작업을 이어가야 할 때 | 전혀 다른 작업으로 전환할 때 |
| 리스크 | 요약 과정에서 세부 디테일 손실 가능 | 이전에 합의한 코딩 스타일·요구사항 모두 사라짐 |
/compact가 필요한 상황
현재 작업의 연속성을 유지하면서 토큰만 줄이고 싶을 때 사용합니다. 다음과 같은 신호가 보일 때 실행을 권장합니다.
- 같은 기능을 계속 다듬는 중인데 응답이 눈에 띄게 느려졌습니다
- 대형 리팩터링의 1단계를 마쳤고, 2단계로 넘어가지만 1단계 결정사항은 기억해야 합니다
/context명령으로 토큰 사용량을 확인했더니 70% 이상 차 있습니다- 같은 세션에서 여러 파일을 읽고 도구 출력이 누적되어 채팅이 길어졌습니다
커스텀 지시를 함께 줄 수 있다는 점도 유용합니다. 예를 들어 /compact API 변경사항과 마이그레이션 결정 위주로 요약처럼 호출하면 요약 결과에 핵심 결정이 보존됩니다.
/clear가 필요한 상황
이전 대화를 더 이상 참고할 필요가 없을 때 가장 빠르고 확실한 선택입니다.
- 완전히 다른 기능·다른 저장소·다른 이슈로 작업을 전환했습니다
- 서브태스크를 마쳤고, 다음 서브태스크는 직전 디테일에 의존하지 않습니다
- 잘못된 가정이 누적되어 클로드가 같은 실수를 반복합니다
- 긴 디버깅 끝에 원인을 찾았으니 이제 클린 상태에서 본 구현으로 넘어가야 합니다
경험 많은 사용자일수록 /clear를 공격적으로 자주 사용한다는 점이 인상적입니다. “이전 맥락이 도움될 것 같다”는 느낌은 종종 착각이며, 실제로는 노이즈가 더 많은 경우가 흔합니다.
자동 압축(auto-compact)에만 의존해서는 안 되는 이유
클로드 코드는 컨텍스트가 임계치에 도달하면 자동으로 /compact를 트리거합니다. 그러나 이 기능에는 몇 가지 한계가 있습니다.
- 임계치가 일정하지 않습니다: 통상 77~85%에서 발동하지만, 케이스에 따라 25~65%대에서 조기 발동하는 보고도 있습니다
- UI 게이지와 실제 사용량이 어긋납니다: “auto-compact 0%” 경고가 떠도
/context로 확인하면 토큰이 충분히 남아 있는 사례가 보고됩니다 - 중간에 멈출 수 있습니다: 자동 압축이 실패하면 응답이 정체되거나 일부 데이터가 손실되기도 합니다
- 요약 방향을 통제할 수 없습니다: 사용자가 강조하고 싶은 결정사항이 잘려나갈 수 있습니다
따라서 가능하면 자동 압축이 발동하기 전에 사용자가 직접 적절한 시점에 /compact 또는 /clear를 호출하는 편이 안전합니다.
실전 워크플로 — 컨텍스트를 가볍게 유지하는 5가지 습관
- 한 작업 = 한 세션 원칙: 새 기능·새 버그·새 PR을 시작할 때마다 /clear로 출발합니다
- 마일스톤마다 /compact: 큰 단계가 끝나면 “지금까지의 결정 위주로 요약”을 지시해 압축합니다
- /context로 주기적 점검: 응답이 느려졌다고 느끼면 먼저 토큰 사용량을 확인합니다
- CLAUDE.md를 짧게 유지: 매 세션에 자동 로드되므로 핵심 규칙만 남기고 부가 설명은 외부 문서로 빼냅니다
- 서브에이전트로 시끄러운 작업 분리: 코드베이스 탐색·대량 검색은 서브에이전트에 위임해 메인 컨텍스트를 보호합니다
이런 증상이 보이면 즉시 정리하세요
클로드의 출력 품질이 다음과 같이 변하면 컨텍스트가 포화 상태에 가까워졌다는 신호입니다.
- 턴(turn) 사이 응답이 수십 초~수 분으로 길어집니다
- 이전에 합의한 컨벤션을 다시 어깁니다(파일 경로 혼동, 변수명 변경 등)
- “확신에 차 있지만 틀린(confident but wrong)” 답변이 늘어납니다
- 긴 문서 가운데에 있던 정보를 무시하고 처음·끝만 참고합니다
- 리팩터링 일관성이 무너지고 같은 함수를 두 번 만듭니다
자주 묻는 질문
Q. /compact를 너무 자주 하면 정보가 누적적으로 손실되나요?
네, 압축은 항상 “원본 → 요약”의 손실 변환입니다. 같은 세션에서 /compact를 반복할수록 디테일이 점점 사라지므로, 큰 마일스톤 단위로만 호출하는 것이 좋습니다.
Q. /clear를 하면 CLAUDE.md 내용도 사라지나요?
아닙니다. CLAUDE.md, 글로벌 사용자 설정, 자동 메모리는 새 컨텍스트를 시작할 때 자동으로 다시 로드됩니다. 사라지는 것은 그 세션 안에서 주고받은 메시지뿐입니다.
Q. 100만 토큰 모델을 쓰면 /compact가 필요 없나요?
필요합니다. 토큰이 충분해도 입력이 길어질수록 회상·추론 정확도가 떨어진다는 점이 1M 모델에도 동일하게 적용됩니다. 한계는 토큰이 아니라 “주의(attention)”입니다.
마무리
클로드 코드를 길게 쓸수록 컨텍스트 위생(context hygiene)이 결과 품질을 결정합니다. 토큰을 아끼는 도구가 아니라, 모델이 깊이 사고할 수 있게 도와주는 도구가 /compact와 /clear입니다. 작업 단위가 바뀔 때마다 한 번씩 정리하는 습관을 들이면, 같은 모델로도 훨씬 일관되고 빠른 응답을 받을 수 있습니다.
참고: 공식 권장 사용법은 Anthropic 공식 Claude Code 문서에서 확인할 수 있습니다.