긴 작업 세션에서 Claude의 응답이 점점 이상해진다고 느낀 적 있다면, 그건 Claude가 고장난 게 아니다. 컨텍스트 윈도우가 꽉 차가고 있다는 신호다. 이 글은 Claude Code를 쓰면서 응답 품질이 슬금슬금 떨어지는 문제를 /clear와 /compact 두 명령으로 해결하는 방법을 다룬다.
1. 왜 지금 이걸 봐야 하나
Claude는 대화 전체를 한 번에 읽고 응답을 만든다. 이 "한 번에 읽을 수 있는 양"이 컨텍스트 윈도우다. 토큰 단위로 제한이 있고, 대화가 쌓일수록 남은 공간이 줄어든다.
Claude Code 터미널 상단에는 현재 사용량이 이렇게 표시된다.
● Context: 47,832 / 200,000 tokens (23%)
이 숫자가 70~80%를 넘어가면 문제가 시작된다. 이전 내용을 반복 요약하거나, 앞서 수정한 파일을 잊어버리거나, 응답 속도가 체감상 느려지는 현상이 나타난다. 한참 리팩토링하다 "아까 고친 함수 왜 다시 원래대로야?"라는 상황이 바로 이 경우다.
컨텍스트를 적극적으로 관리하지 않으면 장시간 세션에서 Claude는 점점 "멍청해진다." 반대로, 두 명령을 습관처럼 쓰는 것만으로도 체감 품질이 달라진다.
2. 핵심 아이디어
컨텍스트 관리는 두 가지 선택지로 귀결된다. 버리거나, 압축하거나.
작업이 완전히 바뀌었다면 버리면 된다. 같은 작업을 이어간다면 압축해야 한다. 이 판단 기준 하나만 잡아도 /clear와 /compact 중 어느 걸 쓸지 자연스럽게 결정된다.
두 명령의 차이를 간략히 정리하면 아래와 같다.
| 명령 | 동작 | 이전 맥락 | 적합한 시점 |
|---|---|---|---|
/clear |
대화 전체 삭제 | 완전히 사라짐 | 새 작업으로 전환 |
/compact |
핵심만 요약 후 압축 | 요약본으로 유지 | 같은 작업 계속 진행 |
autoCompact (설정) |
임계치 초과 시 자동 압축 | 자동 유지 | 장시간 세션 |
두 명령의 공통점은 컨텍스트 토큰을 줄인다는 것이고, 차이점은 이전 대화 내용을 살리느냐 죽이느냐다.
3. 바로 따라하는 방법
/clear — 완전 초기화
/clear
가장 단순한 방법이다. 대화 기록을 전부 지우고 컨텍스트를 0으로 되돌린다. 기능 A 작업을 마치고 기능 B로 넘어갈 때, 디버깅이 끝나고 새 태스크를 시작할 때, 뭔가 꼬인 것 같아서 처음부터 다시 하고 싶을 때 쓴다.
단점은 이전 대화 내용이 전부 사라진다는 것이다. 이걸 보완하는 방법은 아래 CLAUDE.md 항목에서 다룬다.
/compact — 요약 압축
/compact
대화 내용을 전부 날리는 게 아니라, Claude가 지금까지의 대화를 핵심만 남기고 요약한 다음 그 요약본을 새 컨텍스트의 시작점으로 삼는다. 긴 리팩토링 세션 도중 "지금까지 한 작업은 기억하되 공간은 확보하고 싶을 때" 딱 맞는 명령이다.
압축 후 터미널 표시는 이런 식으로 바뀐다.
● Context: 8,200 / 200,000 tokens (4%)
↑ Compacted from 142,000 tokens
어떤 내용을 우선 보존할지 직접 지정할 수도 있다.
/compact 지금까지 수정한 파일 목록과 각 함수의 변경 이유를 반드시 포함해줘
이렇게 지침을 붙이면 Claude가 요약을 만들 때 해당 내용을 빠뜨리지 않는다. 복잡한 리팩토링 세션에서 특히 유용하다.
자동 압축 설정
매번 수동으로 치기 번거롭다면 ~/.claude/settings.json에 아래 항목을 추가한다.
{
"autoCompact": true,
"autoCompactThreshold": 0.75
}
autoCompactThreshold는 컨텍스트가 전체의 몇 퍼센트를 넘으면 자동 압축할지 결정한다. 0.75면 75%를 넘는 순간 자동으로 /compact가 실행된다. 이 설정을 켜두면 장시간 작업 중에도 컨텍스트 걱정 없이 집중할 수 있다.
CLAUDE.md로 /clear 이후에도 맥락 유지하기
/clear를 자주 쓰다 보면 매번 프로젝트 배경을 다시 설명해야 해서 번거롭다. 프로젝트 루트에 CLAUDE.md 파일을 만들어두면 이 문제가 해결된다.
# 프로젝트 개요
Next.js 14 기반 쇼핑몰. App Router 사용.
# 코드 규칙
- TypeScript strict 모드
- 컴포넌트는 src/components/ 아래
- API 라우트는 src/app/api/ 아래
# 현재 진행 중인 작업
- 결제 모듈 리팩토링 (Stripe → Toss Payments)
/clear로 대화를 날려도 Claude Code는 세션 시작 시 CLAUDE.md를 자동으로 읽는다. 프로젝트 컨텍스트는 항상 살아있다.
실전 워크플로우
# 작업 시작
$ claude
# 작업 도중 컨텍스트 70% 돌파
/compact 현재 수정 중인 파일과 남은 TODO를 포함해줘
# 완전히 다른 작업으로 전환
/clear
# 새 작업 시작 (CLAUDE.md가 자동으로 프로젝트 맥락 제공)
새 기능 추가를 도와줘
4. 운영할 때 조심할 점
/compact는 요약본을 만드는 과정에서 일부 세부 내용이 사라질 수 있다. 예를 들어 긴 디버깅 과정에서 시도했다가 실패한 방법들은 요약에서 빠지기 쉽다. 중요한 판단 근거가 있다면 /compact 명령에 명시적으로 포함 지시를 붙이는 게 안전하다.
autoCompact는 편리하지만 자동 압축 타이밍을 제어할 수 없다. 중요한 결정을 내리는 대화 직전에 압축이 걸리면 맥락이 날아갈 수 있다. 민감한 작업 구간에서는 수동으로 타이밍을 잡는 편이 낫다.
CLAUDE.md는 프로젝트가 바뀌면 내용도 함께 업데이트해야 한다. 오래된 정보가 담긴 채 방치되면 오히려 Claude가 잘못된 맥락을 읽어들이는 역효과가 생긴다. 주요 작업이 끝날 때마다 "현재 진행 중인 작업" 항목을 갱신하는 습관을 들이면 좋다.
환경별 차이도 있다. settings.json 경로는 macOS/Linux 기준 ~/.claude/settings.json이고, Windows에서는 %USERPROFILE%\.claude\settings.json을 확인한다.
마무리
컨텍스트 관리는 Claude Code를 잘 쓰는 사람과 그냥 쓰는 사람을 가르는 기준 중 하나다. 새 작업이면 /clear, 이어가는 작업이면 /compact — 이 판단 기준 하나만 기억해도 응답 품질이 달라진다.
다음 글에서는 CLAUDE.md를 좀 더 깊이 다룰 예정이다. 프로젝트별로 어떻게 구성하면 효과적인지, 팀 단위로 공유할 때 주의할 점은 무엇인지 정리할 계획이다.
🐦 X에서 더 빠르게: @baegseungh7061
📚 이 시리즈 더 보기: Code 입문
💌 새 글 알림: X 팔로우 또는 블로그 RSS 구독
'Code 입문' 카테고리의 다른 글
| 배경 한 단락으로 제안서 목차를 뽑아내는 Claude Code 활용법 (0) | 2026.05.23 |
|---|---|
| 설문 데이터를 Claude Code에 던지면 인사이트가 3분 안에 정리되는 법 (0) | 2026.05.22 |
| Claude Code로 일정표 X-레이 찍기 — 마일스톤·병목·리스크 자동 분석법 (0) | 2026.05.20 |
| 담당 업무 한 줄 입력하면 후임자 인수인계 문서가 15초 만에 완성되는 Claude Code 활용법 (0) | 2026.05.19 |
| 반복 CS 문의를 붙여넣으면 FAQ 페이지가 완성되는 Claude Code 자동화 (0) | 2026.05.18 |