Claude Code, 대화가 길어질수록 느려지는 이유와 /clear 활용법
왜 대화가 길어질수록 뭔가 이상해지는 걸까?
Claude Code를 쓰다 보면 이런 경험을 한 번쯤 해봤을 것 같다.
처음엔 빠릿빠릿하게 응답하던 Claude가, 대화가 30분~1시간 지나면서부터 점점 느려지고, 가끔은 엉뚱한 소리를 하거나 앞서 말한 내용을 까먹은 것처럼 행동한다. 그리고 /context 명령어를 쳐보면 이런 화면이 뜬다.
Context Usage
⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛁ ⛀ ⛀ ⛀ Sonnet 4.6
...
16.7k/200k tokens (8%)
숫자가 8%면 괜찮아 보이는데, 세션이 길어지면 이게 50%, 70%까지 올라간다. 바로 context window가 차고 있기 때문이다.
context가 뭔데 쌓이는 거야?
LLM(대형 언어 모델)은 기본적으로 지금까지의 대화 전체를 매번 입력으로 넣어서 다음 응답을 만든다. 내가 "파일 읽어줘"라고 하면 Claude는:
- 지금까지 내가 한 말 전부
- Claude가 응답한 내용 전부
- 도구 호출 결과 (파일 내용, 명령어 출력 등) 전부
이 모든 걸 다 보면서 대답한다. 이 덩어리의 크기가 바로 토큰 사용량이다.
| 대화가 길어질수록 생기는 문제 | 원인 |
|---|---|
| 응답이 느려진다 | 입력 토큰이 많아서 처리 시간 증가 |
| 비용이 올라간다 | 토큰 수에 비례해서 API 비용 증가 |
| 맥락을 잃는다 | context가 한계에 가까워지면 앞 내용이 압축되거나 잘림 |
| 이상한 응답이 나온다 | 오래된 맥락과 새 요청이 충돌 |
200k 토큰이 한계면 많아 보이지만, 파일을 여러 개 읽거나 긴 코드를 수정하다 보면 생각보다 금방 찬다.
/clear가 뭘 하는 건가
/clear는 현재 세션의 대화 기록을 전부 지우는 명령어다. Claude Code를 새로 실행한 것처럼 context를 초기화한다.
/clear
입력하면 즉시 토큰 카운터가 초기 상태로 돌아간다. Claude는 이전 대화를 모른다 — 마치 새 세션을 연 것처럼.
주의할 점
/clear후에는 이전 대화 내용에 접근할 수 없다- "아까 그 코드 다시 봐줘"가 안 된다
- 하지만 파일은 그대로다. 코드 변경 사항은 사라지지 않는다
언제 /clear를 써야 하나
써야 할 때
작업이 완전히 바뀔 때가 제일 좋은 타이밍이다.
[이전 작업] 로그인 기능 버그 수정 → 완료
[다음 작업] 전혀 다른 UI 컴포넌트 작업 시작
→ 이때 /clear
맥락이 이어질 필요가 없고, 이전 대화가 오히려 노이즈가 될 때는 과감하게 지우는 게 낫다.
토큰이 50% 넘으면 슬슬 고민해볼 타이밍이다. /context로 수시로 확인하자.
/context ← 현재 토큰 사용량 확인
쓰지 말아야 할 때
작업이 연속성이 있을 때는 섣불리 clear하면 안 된다. 예를 들어:
- 여러 파일에 걸친 리팩토링 진행 중
- Claude가 코드 구조를 파악하고 있어서 그 맥락이 필요한 상황
- 오류 해결 흐름이 이어지는 중
이럴 땐 clear 대신 **자동 압축(autocompact)**에 맡기는 게 낫다.
/context로 현황 파악하기
/clear 전에 항상 /context로 현재 상태를 보는 습관을 들이자.
/context
출력 예시를 해석하면:
16.7k/200k tokens (8%)
Estimated usage by category
⛁ System prompt: 6.7k tokens (3.3%)
⛁ System tools: 7.8k tokens (3.9%)
⛁ Memory files: 949 tokens (0.5%)
⛁ Skills: 1k tokens (0.5%)
⛁ Messages: 110 tokens (0.1%)
⛶ Free space: 150.3k (75.2%)
⛝ Autocompact buffer: 33k tokens (16.5%)
보는 포인트:
| 항목 | 설명 |
|---|---|
Messages | 지금까지 주고받은 대화. 이게 계속 쌓인다 |
Free space | 남은 공간. 낮아질수록 위험 |
Autocompact buffer | 자동 압축용 버퍼 공간 |
Messages가 전체의 30~40%를 차지하기 시작하면 /clear를 고려하자.
실전 흐름 예시
Step 1: 작업 시작 전 상태 확인
/context
토큰이 많이 쌓여 있으면 clear 먼저.
Step 2: 독립적인 작업 단위로 세션 나누기
한 세션에서 모든 걸 하려 하지 말고, 작업 단위로 끊어서 진행하는 게 효율적이다.
[세션 1] 기능 A 구현 → /clear
[세션 2] 기능 B 구현 → /clear
[세션 3] 버그 수정
Step 3: 필요한 맥락은 파일로 남기기
/clear 전에 Claude가 알아야 할 중요한 맥락이 있다면 파일로 정리해두자.
<!-- CONTEXT.md -->
## 현재 작업 맥락
- auth 모듈 리팩토링 중
- JWT 방식에서 session 방식으로 전환
- /src/auth/middleware.ts 가 핵심 파일
다음 세션에서 이 파일을 Claude에게 읽으라고 하면 맥락을 빠르게 복원할 수 있다.
자동 압축(autocompact)은 뭔가
Claude Code는 context가 한계에 가까워지면 자동으로 오래된 내용을 압축한다. 이게 autocompact다.
장점: 내가 신경 안 써도 어느 정도 자동으로 관리된다
단점: 압축 과정에서 세부 맥락이 손실될 수 있고, 압축 자체도 토큰을 소모한다
즉, autocompact에만 의존하는 건 완전한 해결책이 아니다. 작업 단위가 명확히 끝났을 때는 /clear로 깔끔하게 초기화하는 게 더 좋다.
핵심 정리
작업 완료 → /clear → 새 작업 시작
↑
이 흐름을 습관화하면 된다
| 명령어 | 용도 |
|---|---|
/context | 현재 토큰 사용량 확인 |
/clear | 대화 기록 초기화 (파일은 유지) |
Claude Code를 쓸 때 context 관리를 의식적으로 하는 것만으로도 응답 품질과 속도가 체감상 달라진다. 특히 하루 종일 Claude와 작업할 때는 작업 단위마다 /clear를 쓰는 걸 강력히 추천한다.
backtodev
40대 PM, 다시 개발자로 돌아갑니다. 실패하고 배우며 성장하는 기록.