컨텍스트 윈도우 관리 — /clear·/compact·/context
컨텍스트 윈도우는 Claude가 한 번에 처리할 수 있는 정보의 상한입니다. /context로 사용량을 확인하고 /clear와 /compact를 상황에 맞게 가려 써서 판단 정확도와 속도를 지키는 방법.
컨텍스트 윈도우는 Claude가 한 번에 처리할 수 있는 정보의 총량, 즉 상한입니다. 대화 이력, 읽은 파일, 명령 출력, 시스템 지침이 모두 여기에 들어가며, 이 상한을 능동적으로 관리해야 세션이 길어져도 Claude의 판단 정확도와 응답 속도를 유지할 수 있습니다. 관리 도구는 /context·/clear·/compact 세 커맨드이고, 핵심은 이 셋을 상황에 맞게 가려 쓰는 것입니다.
핵심 요약
/context로 사용량을 확인하고, 높으면 정리합니다/clear는 작업을 전환할 때 대화를 완전히 리셋합니다/compact는 중요한 정보를 요약으로 남기면서 토큰을 절약합니다- 컨텍스트 오염은 판단 정확도·속도·비용에 모두 악영향을 줍니다
- CLAUDE.md 같은 프로젝트 설정은
/clear뒤에도 자동으로 다시 로드됩니다
컨텍스트에는 무엇이 들어가나
아래 요소가 모두 컨텍스트 윈도우를 소비합니다.
- 대화 이력: 사용자와 Claude가 주고받은 전체 기록
- 읽어들인 파일:
@참조나 도구 호출로 읽은 코드 - 명령 출력: 테스트·빌드·로그 등 터미널 출력
- 시스템 프롬프트: Claude Code의 기본 동작 지시
- 메모리 파일: CLAUDE.md 등 프로젝트 설정
- MCP에서 받아온 정보: 외부 연동 데이터
상한을 넘으면 오래된 정보부터 자동으로 밀려납니다. 의도하지 않은 정보가 사라지면 곤란하므로 능동적으로 관리해야 합니다. 그리고 용량이 남아 있다고 해서 채우면 채울수록 좋아지지 않습니다. 관련 없는 파일이 잔뜩 들어가면 정작 중요한 부분에 대한 집중이 흐려집니다. 목표는 "많이 담기"가 아니라 "필요한 것만 정확히 담기" 입니다.
토큰은 AI가 텍스트를 처리하는 최소 단위입니다. 한국어는 1글자가 1~2토큰 정도가 되는 경우가 많습니다.
컨텍스트를 잡아먹는 주범
| 원인 | 증상 | 대응 |
|---|---|---|
| 거대한 로그 출력 | 한 번의 명령으로 수천 줄 | head, tail, grep으로 잘라서 실행 |
| 전체 파일 반복 읽기 | 같은 파일이 여러 번 등장 | 필요한 구간만 지정해 읽기 |
| 목적 없는 탐색 | 관련 없는 디렉터리 순회 | 조사 범위를 먼저 지정 |
| 한 세션에 여러 주제 | 앞 작업 맥락이 계속 남음 | 주제가 바뀌면 /clear 또는 세션 분리 |
/context 로 사용량 확인하기
/context를 실행하면 현재 컨텍스트가 얼마나 찼는지, 무엇이 차지하고 있는지 한눈에 보여 줍니다.
/context사용률 35%인 예입니다.
> /context
⎿ Context Usage
⎿ ⛁ ⛀ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ 71k/200k tokens (35%)
⎿ ⛁ ⛁ ⛀ ⛀ ⛀ ⛶ ⛶ ⛶ ⛶ ⛶
⎿ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ System prompt: 3.1k tokens (1.5%)
⎿ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ System tools: 20.3k tokens (10.2%)
⎿ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ Custom agents: 1.0k tokens (0.5%)
⎿ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ Memory files: 1.4k tokens (0.7%)
⎿ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛶ ⛁ Messages: 102 tokens (0.1%)
⎿ ⛶ ⛶ ⛶ ⛶ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛶ Free space: 129k (64.6%)
⎿ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ ⛝ Autocompact buffer: 45.0k tokens (22.5%)현재 토큰 사용량, 항목별 내역, 남은 용량이 표시됩니다. 사용률이 100%에 가까워지면 Claude Code의 성능이 눈에 띄게 떨어지므로 그 전에 정리합니다.
언제 확인하나
아래 타이밍에 /context를 보는 습관을 들이면 효과적입니다.
- 응답이 느려졌다고 느낄 때
- 답변 정확도가 떨어졌다고 느낄 때
- 장시간 세션을 이어가고 있을 때
- 큰 파일을 읽어들인 직후
/clear 는 무엇을 지우고 무엇을 남기나
/clear를 실행하면 컨텍스트를 비우고 새 세션을 시작합니다. "불필요한 정보를 싹 치우고 싶다"는 때 쓰는 커맨드입니다.
/clear실행 후 대화 이력은 완전히 빈 상태가 되지만, CLAUDE.md나 .claude/rules/ 같은 프로젝트 설정은 자동으로 다시 로드되므로 프로젝트 규칙과 규약은 그대로 유지됩니다. 이전 세션도 디스크에 남아 있어 /resume이나 /rewind 메뉴의 'previous session'으로 나중에 돌아올 수 있습니다. 되감기 자체는 /rewind로 되감기에서, 세션 재개는 세션 관리에서 다룹니다.
/clear를 써야 할 네 가지 타이밍
- 작업이 끝나 다른 작업으로 옮길 때 — 기능 A 구현이 끝나고 관계없는 기능 B에 착수한다면 리셋합니다. 기능 A 정보가 남아 있으면 Claude가 무관한 문맥을 참조해 혼란스러워합니다.
- 화제를 크게 바꾸고 싶을 때 — "그런데 다른 기능 얘긴데…" 하고 넘어가는 장면입니다. 이전 문맥이 남아 있으면 응답이 의도치 않은 방향으로 끌려갑니다.
- 이전 대화를 이어받지 않아도 될 때 — 예를 들어 구현을 마친 뒤 그 파일을 리팩터링하는 경우입니다. 오히려 새 대화가 더 신선한 시선으로 정리해 줍니다.
- 컨텍스트가 혼란스러울 때 — 답변이 모순되거나 과거 정보에 끌려다니면 한 번 리셋하는 편이 빠릅니다.
[기능 A 구현 완료]
> /clear
[새 작업 '기능 B' 개발 시작]/compact 는 무엇을 남기나
/compact는 과거 대화를 요약해 토큰 수를 줄입니다. 대화 내용이 사라지는 것이 아니라 요약된 형태로 남기 때문에, 문맥을 유지하면서 대화를 이어갈 수 있습니다.
/compact빈 공간이 늘어나므로 새 정보를 계속 추가할 수 있게 됩니다.
토픽을 지정한 압축
인수를 넘기면 특정 토픽을 중시한 요약을 지시할 수 있습니다.
/compact API 사양에 대해 포커스해서API 관련 정보를 중점적으로 남기고 나머지 대화를 압축합니다. 여러 화제를 다룬 긴 세션에서 "이 부분만은 남겨두고 싶다"는 경우에 유용합니다.
| 장면 | 커맨드 예 |
|---|---|
| 설계 논의를 남기고 싶다 | /compact 아키텍처 결정 사항에 포커스해서 |
| 코드 변경 이력을 남기고 싶다 | /compact 구현한 기능의 상세에 포커스해서 |
| 에러 해결 경위를 남기고 싶다 | /compact 버그 원인과 수정 내용에 포커스해서 |
자동 컴팩트는 믿어도 되나
수동으로 실행하지 않아도 컨텍스트가 가득 차 가면 Claude Code가 자동으로 컴팩트를 실행합니다. /context 출력의 "Autocompact buffer"가 그 여유분입니다.
다만 자동 컴팩트는 Claude Code의 판단으로 실행되며, 특정 토픽을 우선하는 세밀한 제어는 되지 않습니다. 꼭 남겨야 할 정보가 있다면 수동으로 /compact를 실행하는 편이 안전합니다.
/clear·/compact·/context 사용 구분
세 커맨드의 역할은 분명히 다릅니다. 포인트는 정보가 남는지 여부입니다.
| 커맨드 | 하는 일 | 정보의 유지 | 쓰는 때 |
|---|---|---|---|
/context | 사용량과 내역을 표시 | 아무것도 바꾸지 않음 | 느려졌거나 정확도가 떨어졌다고 느낄 때 |
/clear | 컨텍스트를 비우고 새 세션 시작 | 대화 중에는 남지 않음 (이전 세션은 /resume으로 복귀 가능) | 작업 전환, 화제 전환, 혼란스러울 때 |
/compact | 요약해 압축 | 중요한 정보는 요약으로 남음 | 같은 작업을 이어가며 용량을 확보할 때 |
팀 개발에 비유하면 /clear는 개발자에게 완전히 새 작업을 지시하는 것이고, /compact는 진행 중인 작업의 '인수인계서'를 만들어 이어서 하게 하는 것입니다. 이 인수인계서가 압축된 컨텍스트에 해당합니다.
망설여질 때의 판단 기준
| 상황 | 추천 커맨드 |
|---|---|
| 작업이 완전히 끝났다 | /clear |
| 같은 작업을 이어가고 싶다 | /compact |
| 컨텍스트가 혼란스럽다 | /clear |
| 중요한 정보는 남기고 싶다 | /compact |
/clear를 실행하면 현재 대화에서는 지금까지의 내용이 보이지 않게 됩니다. 이전 세션은/resume으로 돌아올 수 있지만, 그래도 중요한 결정 사항이 있다면 미리 문서로 남기거나/compact를 먼저 검토하세요.
컨텍스트 오염이 일으키는 문제
/clear를 제때 쓰지 않으면 컨텍스트 오염이 생깁니다. 과거 대화가 현재 작업에 악영향을 주는 현상으로, 개발 효율을 떨어뜨리는 대표적인 원인입니다.
| 문제 | 구체적인 예 |
|---|---|
| 판단의 혼란 | 과거 작업 정보를 참조해 현재 작업과 무관한 제안을 한다 |
| 토큰 소비 증가 | 불필요한 대화 이력이 컨텍스트를 압박해 비용이 늘어난다 |
| 응답 속도 저하 | 처리할 정보량이 늘어 응답이 느려진다 |
| 모순된 답변 | 과거 답변과 현재 답변이 서로 어긋난다 |
세션이 길어졌을 때 나타나는 신호
- 앞에서 이미 정한 결정을 다시 물어본다
- 이미 고친 파일을 원래 상태로 되돌린다
- 답변이 점점 일반론으로 흐른다
이 신호가 보이면 지금까지의 결정 사항을 /compact로 압축하거나, 짧게 정리해 /clear 뒤 새 세션으로 옮기는 편이 빠릅니다.
세션을 가볍게 유지하는 실전 전략
커맨드로 정리하는 것 못지않게, 애초에 덜 채우는 습관이 중요합니다.
- 범위를 먼저 좁힙니다 — "
components/checkout/안에서만 찾아줘"처럼 조사 범위를 지정하면 목적 없는 탐색이 줄어듭니다. - 조사는 서브 에이전트에게 맡깁니다 — 파일을 많이 읽어야 하는 조사는 별도 에이전트에 위임하면 메인 세션에는 결론만 돌아옵니다. 자세한 방법은 서브 에이전트로 작업 나누기를 참고하세요.
- **주제가 바뀌면
/clear하거나 세션을 새로 엽니다** — "결제 버그 수정"과 "새 랜딩 페이지 작업"은 서로 도움이 되지 않습니다. 섞으면 양쪽 다 흐려집니다. - 프로젝트 지침을 짧게 유지합니다 — CLAUDE.md는 매 세션 시작 시 항상 로드되므로 길수록 매번 비용을 냅니다. 자주 쓰지 않는 상세 규칙은 .claude/rules/로 분리하고 지침에는 링크만 남기세요.
반복해서 쓰는 지식은 Skills로 빼 두면 필요할 때만 로드되어 컨텍스트를 절약할 수 있습니다.
프롬프트 캐싱과의 관계
반복되는 앞부분(시스템 지침, 프로젝트 지침, 자주 참조하는 문서)은 캐시에 올라가 재사용됩니다. 그래서 고정된 내용은 앞쪽에, 자주 바뀌는 내용은 뒤쪽에 두는 편이 유리합니다. 자세한 내용은 프롬프트 캐싱을 참고하세요.
정리
- 컨텍스트 윈도우는 유한하며, 채울수록 좋아지는 것이 아니라 필요한 것만 담아야 합니다
/context로 사용량을 확인하고, 느려지거나 부정확해지면 정리합니다- 작업을 전환할 때는
/clear, 같은 작업을 이어갈 때는/compact를 씁니다 /clear뒤에도 CLAUDE.md는 다시 로드되고 이전 세션은/resume으로 돌아올 수 있습니다- 기본은 작업 단위로 자잘하게
/clear하는 습관입니다. 기본 커맨드 전반은 기본 조작과 명령어에서 확인하세요
자주 묻는 질문
팀에 Claude Code를 도입하려면 실제 코드베이스에 맞춘 설계가 필요합니다.
무료 상담 신청