Claude Code의 Context와 세션 관리 이해하기
Claude Code를 어느 정도 사용해 보셨다면 한 번쯤 느끼셨을 겁니다: 세션이 길어질수록 응답이 느려진다는 것을요. AI가 저하되는 게 아닙니다 -- 진짜 원인은 context 비대화입니다. 내부에서 무슨 일이 일어나고 있고, 어떻게 대처할 수 있는지 설명드리겠습니다.
1. "Context"가 실제로 의미하는 것
AI 용어에서 context란 모델이 요청에 응답할 때 활용하는 정보 묶음을 말합니다. 오늘날의 LLM은 무상태 공유 서비스입니다 -- 호출 간에 사용자나 프로젝트에 대한 내장 기억을 유지하지 않습니다.
실제로 이게 무슨 뜻이냐면: 메시지를 보낼 때마다 Claude Code가 현재 요청과 전체 대화 이력을 묶어서 모델에 전송해야 합니다. 이력이 길어질수록 각 요청의 부담도 커집니다.
브리핑 폴더에 비유해 보겠습니다. 메시지를 보내는 건 전문가에게 배경 자료가 가득 담긴 폴더를 건네는 것과 같습니다. 세션 초반에는 폴더가 얇고 훑어보기 쉽습니다. 하지만 관련 없는 주제를 오가며 -- 백엔드를 리팩토링하고, 프론트엔드를 손보고, CSS 버그를 디버깅하면 -- 그 폴더는 엉망진창이 됩니다. 전문가가 느려지고 실수를 하기 시작하는데, 능력이 부족해서가 아니라 엉망인 파일을 건네받았기 때문입니다.
2. 압축만으로는 부족한 이유
Claude Code에는 자동 context 압축 기능이 내장되어 있습니다: 이력이 임계점을 넘으면 시스템이 핵심 내용을 요약하고 파일 참조를 중복 제거합니다. 유용하지만 분명한 한계가 있습니다:
- 비용이 높습니다. 압축 과정 자체가 보통 입력 토큰 예산의 20% 이상을 소모합니다. 큰 코드베이스에서는 실제 작업이 아닌 요약에 상당한 시간과 비용이 들어갑니다.
- 작업 전환 시 엇나갑니다. 압축은 이전 맥락을 기반으로 관련성을 예측합니다 -- 진정한 context 전환이 아닙니다. 세션 도중에 완전히 다른 작업으로 넘어가면 (예: API 라우트 리팩토링에서 버튼 정렬 수정으로) 압축된 요약이 오래된 가정을 끌고 와서 모델이 혼란스러워합니다.
3. 해결책: 하나의 작업, 하나의 세션
원칙은 아주 간단합니다: AI에게 한 번에 하나의 작업만 맡기세요. Deep Code는 두 가지 명령으로 이를 쉽게 만들어 줍니다:

/clear-- 새로 시작하기. 현재 대화를 초기화하고 깨끗한 세션을 엽니다. 남아있는 이력도, 오래된 파일 참조도 없습니다 -- AI가 오직 지금眼前的 것에만 집중합니다.

/resume-- 이어서 작업하기. 어제의 리팩토링 세션을 다시 열어야 하나요?/resume은 해당 프로젝트의 모든 이전 세션을 한 줄 요약과 함께 나열합니다. 화살표 키로 목록을 탐색하고, 원하는 세션에서 Enter를 누르거나ESC로 돌아갈 수 있습니다.
요약
이번에 다룬 내용입니다:
- context는 대화 이력입니다 -- 매 메시지마다 모델에 전송됩니다. 세션이 길어지면 부담이 커지고 응답이 느려집니다.
- 자동 압축이 도움이 되지만 만능은 아닙니다. 요약에 토큰을 사용하고, 세션 도중 작업을 전환하면 제대로 작동하지 않습니다.
- 해결책은 간단합니다: 하나의 작업, 하나의 세션.
/clear로 깨끗하게 시작하세요. 이전 세션을 이어야 할 때는/resume으로 돌아가면 됩니다.
다만, /resume에도 아직 아쉬운 점이 있습니다 -- 세션당 한 줄 요약만 제공되고, 복원하기 전에 대화 내용을 미리 볼 수 없으며, 세션 간 전환도 다소 번거롭습니다. 이런 제약이 불편하다면, 작업 이력 패널을 확인해 보세요. 전체 대화 이력을 시각적으로 탐색하고, 메시지를 복사하고, 클릭 한 번으로 작업을 전환할 수 있는 인터페이스입니다.