세션 관리 및 Mr 컨텍스트라는 단어가 포함된 다이어그램
Claude Code 세션 관리는 단순히 대화를 이어가는 것이 아닙니다. 1백만 토큰 컨텍스트 윈도우를 언제 비우고, 언제 이어가고, 언제 되감을지 판단하는 것이 핵심이에요. Claude Code를 만든 Anthropic 엔지니어 Thariq가 직접 공유한 세션 관리 노하우 5가지를 정리했습니다.
먼저 알아야 할 것 — 컨텍스트 로트(Context Rot)
Claude Code 세션 관리를 이해하려면 컨텍스트 로트라는 개념을 먼저 알아야 합니다.
컨텍스트 윈도우(Context Window)는 모델이 한 번에 "볼 수 있는" 모든 정보입니다. 시스템 프롬프트, 대화 내역, 도구 호출 결과, 읽은 파일 전부가 여기에 포함됩니다.
문제는 컨텍스트가 커질수록 모델 성능이 떨어진다는 점입니다. 주의력(Attention)이 더 많은 토큰에 분산되면서, 오래된 불필요한 정보가 현재 작업을 방해합니다. Thariq는 이걸 "컨텍스트 로트"라고 표현합니다.
"Claude Code 사용 경험을 결정짓는 거의 모든 것이 컨텍스트 윈도우 관리에서 나옵니다." — Thariq, Anthropic 엔지니어
1. 새 작업에는 새 세션을 시작하세요
가장 기본적이면서도 가장 많이 간과하는 원칙입니다.
"새 작업을 시작할 때는 새 세션도 시작하세요."
1백만 토큰 컨텍스트 윈도우 덕분에 풀스택 애플리케이션을 처음부터 끝까지 한 세션에서 만들 수 있게 됐습니다. 하지만 이전 작업의 잔여 컨텍스트가 남아 있으면 새 작업의 품질이 떨어집니다.
예외: 관련 작업이 이어질 때
방금 구현한 기능의 문서를 바로 작성하는 경우처럼, 이전 작업의 컨텍스트가 필요한 상황에서는 이어서 작업하는 게 효율적입니다. Claude가 구현 파일을 다시 읽을 필요가 없으니까요.
2. 수정 대신 되감기(Rewind)를 쓰세요
Thariq가 "딱 하나만 고르라면 이 습관"이라고 꼽은 기법입니다.
Esc 키를 두 번 누르거나 /rewind를 입력하면, 이전 메시지로 돌아가서 그 시점부터 다시 시작할 수 있습니다. 이후 메시지는 컨텍스트에서 완전히 제거됩니다.
수정 vs 되감기 — 차이가 큽니다
방식
동작
컨텍스트 영향
수정 ("그거 말고 X로 해봐")
실패한 시도가 컨텍스트에 남음
컨텍스트 낭비 + 혼란 가능
되감기 (Esc Esc → 재프롬프트)
실패한 시도를 완전히 제거
깨끗한 컨텍스트 유지
예를 들어, Claude가 접 근법 A로 시도했다가 실패했다면 "그거 안 됐으니 X로 해봐"라고 하는 대신 되감기로 파일 읽기 직후 시점으로 돌아가서 "A 접근법은 쓰지 마세요. foo 모듈이 해당 인터페이스를 노출하지 않습니다. B로 바로 가세요."라고 프롬프트를 다시 작성하는 게 좋습니다.
요약 후 넘기기(Summarize from Here)
되감기 시 "여기서 요약해줘(Summarize from Here)"를 선택하면, Claude가 지금까지 시도한 것과 실패한 이유를 정리해줍니다. 이전의 자신에게 보내는 인수인계 문서 같은 거예요.
3. Compact와 Clear를 구분해서 쓰세요
세션이 길어지면 컨텍스트를 줄여야 합니다. 두 가지 방법이 있는데, 비슷해 보이지만 동작이 다릅니다.
/compact — Claude에게 요약을 맡기기
/compact는 Claude가 대화 전체를 읽고 핵심만 요약해서 기존 대화를 대체합니다. 사용자가 따로 할 일이 없어 편리하지만, Claude가 뭐가 중요한지 판단하는 것이라 정확도가 떨어질 수 있습니다.
지시를 추가할 수도 있습니다:
/compact auth 리팩토링에 집중하고, 테스트 디버깅 내용은 버려/clear — 사용자가 직접 정리하기
/clear는 세션을 완전히 새로 시작합니다. 대신 사용자가 직접 브리핑을 작성해야 합니다:
auth 미들 웨어를 리팩토링 중이에요.
제약 조건은 X이고, 관련 파일은 A와 B입니다.
접근법 Y는 이미 시도했는데 안 됐어요.수고는 더 들지만, 컨텍스트에 사용자의 판단이 반영되기 때문에 정확도가 높습니다.
언제 뭘 쓸까?
상황
추천 방법
같은 주제를 계속 진행할 때
/compact
작업 방향이 크게 바뀔 때
/clear
디버깅 후 본작업으로 돌아갈 때
/clear
컨텍스트가 80% 이상 찼을 때
/compact (방향 지시 포함)
4. 나쁜 Compact가 발생하는 이유를 알아두세요
Compact가 실패하는 가장 흔한 원인은 모델이 다음 작업의 방향을 예측하지 못할 때입니다.
예를 들어, 오래 디버깅하다가 autocompact가 발동합니다. 요약은 디버깅 과정에 집중합니다. 그런데 다음 메시지로 "아까 bar.ts에서 봤던 경고도 고쳐줘"라고 하면? 디버깅 요약에서 그 경고는 이미 빠져 있을 수 있습니다.
Thariq는 이렇게 설명합니다:
"컨텍스트 로트 때문에 compact 시점의 모델은 가장 덜 똑똑한 상태입니다."
대응법
1백만 컨텍스트 덕분에 여유가 생겼으니, autocompact에 맡기지 말고 미리 수동으로 compact하세요. 다음 작업 방향을 알려주면서요:
/compact 다음은 bar.ts의 경고 수정과 API 엔드포인트 테스트 작성이에요5. 서브에이전트(Subagent)로 컨텍스트를 분리하세요
서브에이전트는 중간 과정은 필요 없고 결과만 필요한 작업에 쓰는 Claude Code 세션 관리 기법입니다.
작동 방식
Claude가 Agent 도구로 서브에이전트를 생성하면, 그 에이전트는 별도의 깨끗한 컨텍스트 윈도우를 받습니다. 서브에이전트가 파일을 읽고, 코드를 분석하고, 결과를 정리하면 최종 요약만 부모 세션으로 돌아옵니다.
핵심 판단 기준
"이 도구 출력을 나중에 다시 볼 필요가 있는가, 아니면 결론만 있으면 되는가?"
결론만 필요하다면 서브에이전트가 적합합니다.
직접 요청하는 방법
Claude Code가 자동으로 서브에이전트를 쓰기도 하지만, 직접 요청할 수도 있습니다:
"서브에이전트를 띄워서 이 작업 결과를 스펙 파일 기준으로 검증해줘"
"서브에이전트가 저 코드베이스를 읽고 auth 흐름을 요약해줘. 그걸 참고해서 우리 쪽에도 같은 방식으로 구현해"
"서브에이전트가 내 git 변경사항을 보고 이 기능의 문서를 작성해줘"
마무리 — 5가지 방법 요약
Claude Code 세션 관리의 핵심은 매 턴마다 5가지 선택지를 의식하는 것입니다.
선택지
명령어
핵심 용도
이어서 작업
(그냥 입력)
같은 맥락의 연속 작업
되감기
Esc Esc 또는 /rewind
실패한 시도 제거 후 재시도
새 세션
/clear
작업 전환, 방향 변경
압축
/compact
컨텍스트 절약, 같은 주제 계속
서브에이전트
Agent 도구 호출
결과만 필요한 독립 작업
Thariq는 앞으로 Claude가 이 판단을 자동으로 도와줄 예정이라고 했습니다. 하지만 지금은 사용자가 직접 컨텍스트를 관리할수록 Claude Code의 출력 품질이 확실히 달라집니다.
자주 묻는 질문
Claude Code 컨텍스트 윈도우는 얼마나 되나요?
Claude Code는 현재 1백만(1M) 토큰의 컨텍스트 윈도우를 제공합니다. 시스템 프롬프트, 대화 내역, 파일 읽기 결과, 도구 출력 등 세션 내 모든 정보가 이 안에 포함됩니다.
/rewind와 /compact의 차이점은 뭔가요?
/rewind는 특정 시점으로 되돌아가서 그 이후의 메시지를 삭제합니다. /compact는 대화 전체를 요약해서 컨텍스트 공간을 확보합니다. rewind는 "없던 일로", compact는 "요약해서 계속"이라고 생각하 면 됩니다.
Claude Code 서브에이전트는 어떻게 쓰나요?
Claude Code에 "서브에이전트를 띄워서 ~해줘"라고 직접 요청하면 됩니다. 또는 Claude가 자동으로 판단해서 서브에이전트를 생성하기도 합니다. 서브에이전트는 별도의 컨텍스트에서 작업하고, 최종 결과만 부모 세션에 반환합니다.
💡 Insight
Thariq의 글에서 가장 인상 깊었던 부분은 "compact 시점의 모델이 가장 덜 똑똑하다"는 지적입니다. 컨텍스트가 꽉 차서 autocompact가 발동하는 시점이라면, 이미 컨텍스트 로트가 상당히 진행된 상태라는 뜻이거든요. 가장 판단력이 떨어진 상태에서 "뭘 기억하고 뭘 버릴지" 결정하게 되는 셈입니다.
이건 사실 사람의 업무 방식과도 비슷합니다. 밤새 야근한 상태에서 내일 할 일 목록을 쓰면 중요한 걸 빠뜨리기 쉬운 것처럼요. 결국 여유가 있을 때 미리 정리하는 습관이 AI에게도 적용되는 겁니다.
또 하나, 이 글의 진짜 가치는 "1M 토큰이 있으니 아무 생각 없이 써도 된다"가 아니라는 점입니다. 오히려 컨텍스트가 커질수록 관리의 중요성이 더 커집니다. 20만 토큰일 때는 금방 한계에 부딪혀서 자연스럽게 새 세션을 시작했지만, 1백만 토큰은 "될 것 같은데?" 하면서 계속 이어가다가 품질 저하를 겪게 됩니다.
Claude Code를 쓰면서 "왜 갑자기 응답이 이상해졌지?"라는 경험이 있다면, 대부분 컨텍스트 관리 문제입니다. 이 5가지 방법만 의식해도 체감 품질이 크게 달라질 거예요.
원문: Thariq (@trq212) — Using Claude Code: Session Management & 1M Context