MemoryLake
모든 글로 돌아가기
News2026년 10월 20일·12 분 소요

Claude Code, 이전 세션 재개로 인한 사용량 제한 소모 전 경고 표시 — 재개할 때와 새로 시작할 때 (2026)

어제 진행하던 Claude Code 세션으로 돌아가는 것은 아무런 비용이 들지 않는 것처럼 느껴질 수 있습니다. claude --resume을 실행하고 대화를 선택하면 중단했던 부분부터 다시 열립니다. 하지만 화면에 표시되지 않는 것은 다시 보내는 첫 번째 메시지의 비용입니다. 오랫동안 유휴 상태였던 세션에서는 Claude가 새로운 작업을 시작하기도 전에 요금제 사용량의 상당 부분을 소모할 수 있습니다.

10월 19일에 출시된 Claude Code v2.1.304는 이러한 비용을 명확하게 보여줍니다. 릴리스 노트에 따르면 "Pro 및 Max 요금제에서 비활성 대화를 재개할 때 5시간 사용 제한의 상당 부분을 소모하게 되는 경우 경고가 추가되었습니다. 그대로 재개할지, 아니면 새 대화를 시작하고 필요한 경우 Claude가 이전 대화를 찾아보게 할지 선택할 수 있습니다."

이는 새로운 결정의 순간을 제공합니다. 때로는 전체 대화가 다시 필요할 수도 있습니다. 하지만 어떤 경우에는 몇 가지 결론만 필요할 수 있으며, 새 세션을 시작하면 훨씬 적은 비용으로 이를 얻을 수 있습니다.

이 글에서는 이전 세션을 재개하는 것이 왜 비용이 많이 드는지, 경고 메시지가 제공하는 옵션은 무엇인지, 그리고 재개와 새로 시작 중 어떻게 선택해야 하는지 설명합니다. 아직 세션 자체를 찾고 계시다면, 트랜스크립트가 저장되는 위치와 선택 도구 작동 방식을 다룬 Claude Code 세션 기록 찾기 및 재개 가이드를 참고해 주세요. 본 글은 세션을 찾은 이후의 단계부터 시작합니다.

v2.1.304에서 변경된 점

릴리스 노트는 한 줄에 불과하지만 세 가지 내용을 담고 있습니다.

대상. 이 경고는 Pro 및 Max 요금제에 적용되며, 해당 요금제가 사용하는 5시간 사용 제한을 기준으로 비용을 측정합니다. 다른 요금제나 API 키 로그인은 언급되지 않았습니다.

표시 시점. 비활성 대화를 재개할 때 5시간 제한의 "상당한 부분"을 소모하게 되는 경우에 표시됩니다. 구체적인 임계값은 명시되지 않았습니다. 아래 메커니즘에 따르면, 캐시 수명(cache lifetime)을 초과하여 방치된 긴 세션이 이에 해당합니다.

제공하는 옵션. 두 가지 선택지가 있습니다. 그대로 재개하거나, 새 대화를 시작하고 Claude가 "참조 시 이전 대화를 찾아보도록" 하는 것입니다. 두 번째 옵션은 이전 세션을 다시 로드하는 대신 참고용 자료로 취급합니다.

공식 문서는 아직 이 릴리스를 반영하지 못했습니다. 세션 페이지에는 재개, 선택 도구, 브랜칭만 설명되어 있으며, 조회(lookup) 기능이나 경고에 대한 설명은 아직 없습니다. 당분간은 릴리스 노트를 기능 설명으로 참고하시고, 이 글의 나머지 부분을 통해 경고가 존재하는 배경을 이해해 보세요.

다시 보내는 첫 번째 메시지가 비싼 이유

Claude Code의 프롬프트 캐싱(prompt caching) 문서는 이 메커니즘을 직접적으로 설명합니다. "세션을 재개할 때 Claude Code는 전체 대화를 다시 전송하며, 요청은 접두사(prefix) 중 변경되지 않고 캐시 수명 내에 있는 부분을 캐시에서 읽어옵니다."

여기서 중요한 부분은 캐시 수명(cache lifetime)입니다. 작업 중에는 각 요청이 이미 처리된 대화를 재사용하므로 더 저렴한 캐시 요금이 적용됩니다. 하지만 작업을 중단하면 캐시 타이머가 작동합니다. 비용 페이지에는 다음과 같이 명확히 명시되어 있습니다. "캐시 수명보다 긴 휴식 후 첫 번째 메시지는 캐시 미스(miss)를 유발하고 전체 컨텍스트(context)를 다시 처리합니다."

캐시 수명은 얼마나 될까요? 구독 요금제의 경우 "구독 시 수명은 1시간이며, 사용 크레딧을 쓰기 시작하면 5분으로 줄어듭니다." 프롬프트 캐싱 페이지의 전체 표를 보면, 요금제 기본 제공량 내의 Claude 구독에서는 메인 대화가 기본적으로 1시간 동안 유지됩니다. API 키나 클라우드 제공업체를 사용하는 경우 기본값은 5분입니다.

따라서 비용이 많이 드는 상황은 예측 가능합니다. 구독 요금제에서 1시간 이상 방치한 세션은 웜 캐시(warm cache)가 남아있지 않습니다. 이를 재개하면 모든 도구 출력과 파일 읽기 내용을 포함한 전체 대화가 새로운 입력으로 다시 전송되며, 세션이 클수록 첫 번째 요청의 크기도 커집니다.

사람들이 가장 먼저 취하는 조치가 가장 큰 비용을 초래합니다

오래되고 용량이 큰 세션을 마주했을 때, 사람들은 보통 세션을 재개한 후 바로 /compact를 실행하여 대화 크기를 줄이고 작업을 시작하려고 합니다. 하지만 문서는 이것이 잘못된 순서라고 말합니다.

압축(Compaction)은 동일한 기록으로 요약 요청을 보내는 방식으로 작동합니다. 캐시가 웜(warm) 상태일 때는 이 요청이 대부분의 기록을 캐시에서 읽어옵니다. 하지만 긴 휴식 후에는 읽어올 캐시가 없습니다. "캐시 수명보다 긴 휴식 후에는 읽을 캐시가 남아있지 않으므로, 요약 요청이 전체 기록을 캐싱되지 않은 입력으로 다시 처리합니다. 이것이 오래된 세션을 재개할 때 /compact가 가장 많은 비용을 소모하는 이유입니다."

콜드 재개(cold resume) 직후에 압축을 실행하면 요약을 생성하기 위해 이전 대화의 전체 비용을 그대로 지불하게 됩니다. 비용을 피하는 것이 아니라 오히려 선불로 지불하는 셈입니다.

되감기(Rewinding)도 동일한 한계가 있습니다. 문서에서는 포기하고 싶은 경로로 들어섰을 때 압축 대신 /rewind를 사용할 것을 권장합니다. "되감기는 압축처럼 새로 빌드하는 대신 이미 캐싱된 접두사로 잘라내기 때문입니다." 이 조언은 캐시가 웜 상태일 때만 유효합니다. 오래된 세션에서는 되돌아갈 캐싱된 접두사가 없으므로, 이 팁이 설명하는 비용 절감 효과는 적용되지 않습니다.

비용 페이지에서 무료로 명시한 유일한 작업은 새로 시작하는 것입니다. "연속성 대신 새로 시작하고 싶을 때 /clear는 비용이 들지 않습니다." 이것이 바로 경고 메시지의 두 번째 옵션 뒤에 숨겨진 논리입니다.

재개된 세션이 복원하는 것과 새 세션이 복원하지 않는 것

세션을 재개하는 이유는 대화 내용 이상의 것을 복원하기 때문입니다. 세션 문서에는 복원되는 항목들이 나열되어 있습니다. 활성 목표(active goal)로 끝난 세션은 해당 목표를 유지합니다. 만료되지 않은 예약된 작업(scheduled tasks)이 복원됩니다. -p 없이 터미널에서 ID나 이름으로 재개하면 세션이 있던 권한 모드(permission mode)가 복원됩니다. 이전 프로세스와 함께 종료된 백그라운드 작업은 완료되지 않았다는 메모로 표시되며, "Claude는 다음 프롬프트와 함께 이를 읽습니다."

일부 항목은 자동으로 복원되지 않습니다. 문서에 따르면 --mcp-config, --settings, --plugin-dir, --fallback-model, --add-dir과 같은 플래그는 다시 전달해야 하며, "세션 중간에 /add-dir로 추가된 디렉토리도 복원되지 않습니다." 설정 파일은 시작 시 다시 읽으므로 해당 파일에 있는 구성은 그대로 유지됩니다.

자리를 비우기 전에 세션이 압축되었다면 복원되는 내용이 더 짧아집니다. 세션 페이지에 따르면 이러한 대화는 "Conversation compacted 행에서 열립니다. Claude는 마지막 압축 요약, 압축에서 요약되지 않은 메시지, 그리고 그 이후의 모든 메시지로 계속 진행합니다." 이는 터미널에서 긴 세션을 유휴 상태로 두었을 때 중요합니다. Claude Code는 캐시가 만료되기 전에 대신 압축을 수행할 수 있습니다. 프롬프트 캐싱 페이지에 따르면, 긴 대화가 1시간 TTL 동안 유휴 상태로 있을 때 "Claude Code는 캐시가 만료되기 직전에 이를 압축할 수 있습니다." Claude Code의 유휴 압축 기능에 대한 설명에서 이 동작과 이를 끄는 설정에 대해 다룹니다.

새 세션은 이러한 기록 없이 시작됩니다. Claude Code의 작동 방식은 다음과 같이 설명됩니다. "각 새 세션은 이전 세션의 대화 기록 없이 새로운 컨텍스트 창(context window)으로 시작됩니다." 대신 프로젝트 컨텍스트인 CLAUDE.md 파일과 모든 세션 시작 시 로드되는 자동 메모리(auto memory)로 시작하며, 이를 통해 "Claude는 세션 간에 학습 내용을 유지할 수 있습니다." 새로운 경고는 세 번째 소스인 이전 대화 자체를 추가하여, 전체를 다시 로드하는 대신 참조할 때 찾아볼 수 있도록 합니다.

이전 세션의 비용을 불필요하게 높이는 잘못된 가정들

새로운 작업이 없었기 때문에 재개된 세션이 저렴할 것이라고 가정하는 것. 비용은 새로운 작업 때문이 아닙니다. 캐시가 만료된 후 전체 대화가 다시 전송되기 때문에 발생합니다.

압축이 크기를 줄이는 방법이라고 가정하는 것. 콜드 세션에서 실행되는 압축은 요약을 위해 모든 내용을 한 번 읽습니다. 압축을 원한다면 자리를 비운 후 돌아와서가 아니라, 문서의 팁처럼 작업 중 자연스러운 휴식 시간에 하십시오.

경고가 모든 곳에 적용된다고 가정하는 것. 릴리스 노트는 이 경고를 Pro 및 Max 요금제로 제한합니다. API 키, 클라우드 제공업체 또는 사용 크레딧의 경우 기본 캐시 수명이 5분이므로 훨씬 짧은 휴식 후에도 콜드 재개 비용이 적용되며, 요금제 제한 경고는 표시되지 않습니다.

해결책: 세션이 얼마나 식었는지 확인하고, 필요한 것을 결정한 다음, 더 나은 인수인계를 남기세요

Step 1: 재개하기 전에 세션의 크기와 식은 정도를 확인하세요

세션 선택 도구는 두 가지 신호를 제공합니다. 세션 문서에 따르면 각 행에는 세션의 이름 또는 제목과 함께 "마지막 활동 이후 시간, git 브랜치, 파일 크기"가 표시됩니다. 구독 요금제에서 1시간 이상 유휴 상태였던 세션은 기본 캐시 수명을 초과한 것입니다. 파일 크기가 크면 첫 번째 요청도 커집니다.

세션에서 벗어나기 전에 /usage를 실행하면 대화의 첫 번째 응답 이후에 추가된 Session 블록의 Prompt cache (main) 행을 볼 수 있습니다. 비용 페이지에 따르면 이 행은 "현재 캐시가 웜 상태인지 여부"를 보고하며, 캐시가 콜드 상태일 때는 "세션이 얼마나 오랫동안 유휴 상태였는지 보여줍니다." 이 행을 확인하려면 Claude Code v2.1.251 이상 버전이 필요합니다.

첫 번째 요청 전에 토큰 수를 알고 싶다면 SessionStart 훅(hooks)을 사용할 수 있습니다. 세션이 재개될 때 훅 문서는 훅이 context_tokens("재개된 세션의 첫 번째 요청이 프롬프트로 다시 전송하는 토큰") 및 prompt_cache_likely_expired를 포함한 필드를 수신한다고 설명합니다. 문서에서 제안하는 용도는 "첫 번째 요청 전에 오래된 대화를 재개하는 데 드는 비용을 보고하는 것"입니다. 이 필드들 역시 v2.1.251 이상 버전이 필요합니다.

Step 2: 세션의 상태가 필요할 때는 재개하고, 결론이 필요할 때는 새로 시작하세요

진행 중인 목표, 승인하려던 계획, 완료되지 않은 백그라운드 작업, 의도적으로 설정한 권한 모드 등 쉽게 재구축할 수 없는 상태가 세션에 포함되어 있다면 비용을 감수하고 재개하세요. 이러한 경우에는 복원된 상태 자체가 중요합니다. 재개 후 습관적인 /compact 실행은 건너뛰고 작업을 계속 진행하세요.

필요한 것이 정보라면 새로 시작하세요. 경고의 두 번째 옵션을 선택한 다음, 첫 번째 메시지에서 이전 작업에서 원하는 내용을 언급하세요. 어떤 변경을 하고 있었는지, 어떤 접근 방식을 거부했는지, 어떤 테스트가 실패했는지 등을 명시합니다. 릴리스 노트에 따르면 Claude는 "참조 시 이전 대화를 찾아볼 수 있습니다." 구체적으로 언급할수록 찾을 수 있는 명확한 단서가 됩니다.

이전 세션에서 단 하나의 답변만 필요한 경우, 대화형으로 돌아가지 않고도 질문을 던질 수 있습니다. 세션 문서에서는 "요약 요청과 같은 후속 프롬프트를 보내기 위해" claude -p --resume에 세션 ID를 전달하는 방법을 설명합니다. 이 역시 재개에 해당하므로 동일한 캐시 규칙이 적용된다는 점을 기억하세요.

Step 3: 자리를 비우기 전에 트랜스크립트가 필요 없는 인수인계를 남기세요

가장 비용이 적게 드는 재개는 재개할 필요가 없는 상태를 만드는 것입니다. 다시 돌아올 것으로 예상되는 세션을 떠나기 전에 두 가지를 수행하세요.

이름을 지정하세요. 비용 페이지에서는 "나중에 세션을 찾을 수 있도록 지우기 전에 /rename을 사용하고, 다시 돌아올 때 /resume을 사용하라"고 제안합니다.

트랜스크립트를 불필요하게 만들 내용을 기록하세요. Claude에게 중요한 사항을 CLAUDE.md 또는 자동 메모리에 추가하도록 요청하거나 직접 작성하세요. 도달한 결정, 작동한 명령, 중단한 파일 등이 이에 해당합니다. 이러한 내용은 모든 새 세션이 시작될 때 로드됩니다. Claude Code 세션 간 컨텍스트 공유 가이드에서 이 둘 중 선택하는 방법을 다룹니다.

API 키나 클라우드 제공업체로 로그인하고 자주 5분 이상 자리를 비우는 경우, 프롬프트 캐싱 페이지에서 메인 대화에 대한 promptCacheTtl 설정을 설명합니다. 이를 1h로 설정하면 캐시 쓰기 비용은 높아지지만 캐시를 더 오래 웜 상태로 유지할 수 있습니다. 이는 무료 해결책이 아니라 절충안(trade-off)입니다.

MemoryLake에서 설정하기

Step 3의 인수인계는 특정 세션에 종속되지 않은 독립적인 공간에 있을 때 가장 효과적입니다. 트랜스크립트는 전체 대화를 담고 있어 다시 불러오기에 비용이 많이 듭니다. 정작 필요한 것은 결정 사항, 이유, 남은 작업 등 아주 짧은 내용일 수 있습니다.

MemoryLake는 이러한 결론을 직접 관리하는 하나의 목록에 보관하여 Claude Code 및 연결된 다른 어시스턴트(예: ChatGPT, Codex)가 사용할 수 있도록 지원하는 메모리 레이어입니다. 이를 통해 새 세션을 바로 시작할 수.

기록은 본인의 언어로 직접 작성합니다. 세션 트랜스크립트, ~/.claude 디렉토리, 자동 메모리, CLAUDE.md 파일 또는 기타 공급업체의 저장소에서 데이터를 읽거나 쓰거나 삭제하지 않습니다. 비밀번호나 자격 증명은 제외하고, 프로젝트 세부 정보에 대해서는 조직의 정책을 따르세요.

Step 1: API 키 생성

로그인 후 대시보드에서 키를 생성합니다. 이 키는 MemoryLake 워크스페이스에 속하며 Anthropic 계정과는 별개입니다.

에이전트에서 사용할 새 키를 생성하고 복사하는 API 키 화면을 보여주는 MemoryLake 콘솔
에이전트에서 사용할 새 키를 생성하고 복사하는 API 키 화면을 보여주는 MemoryLake 콘솔

Step 2: 첫 번째 메모 업로드

가장 자주 돌아가는 세션부터 시작하세요. 각 세션에 대해 새 세션에 필요한 내용(결정 사항, 이유, 다음 단계)을 작성합니다. 항목당 하나의 요점을 날짜 및 해당 리포지토리 정보와 함께 기록합니다.

첫 번째 문서가 업로드되어 검색 가능한 메모로 등록된 MemoryLake 워크스페이스
첫 번째 문서가 업로드되어 검색 가능한 메모로 등록된 MemoryLake 워크스페이스

Step 3: AI 및 에이전트 연결

사용 중인 Claude Code 및 기타 어시스턴트를 연결합니다. 경고가 표시될 때 인수인계 내용이 이미 작성되어 있으므로 훨씬 쉽게 새로 시작할 수 있습니다.

메모리 레이어에 연결할 수 있는 AI 클라이언트 및 에이전트 프레임워크 목록을 보여주는 MemoryLake 연동 화면
메모리 레이어에 연결할 수 있는 AI 클라이언트 및 에이전트 프레임워크 목록을 보여주는 MemoryLake 연동 화면

실제 작업에서 달라지는 점

첫 번째 차이점은 비용을 지불하기 전에 미리 확인할 수 있다는 것입니다. Pro 및 Max 요금제의 경고, 선택 도구의 유휴 시간 및 파일 크기, 그리고 /usage 캐시 행을 통해 재개 비용이 저렴할지 비쌀지 미리 판단할 수 있습니다.

두 번째는 비용을 이중으로 지불하지 않게 된다는 점입니다. 콜드 세션을 재개한 후 압축하면 요약을 만들기 위해 이전 대화를 처음부터 끝까지 다시 읽어야 합니다. 재개와 새로 시작 중 신중하게 선택하면 이를 방지할 수 있습니다.

세 번째는 이전 세션이 학습한 내용의 유일한 사본이 아니게 된다는 점입니다. 짧은 인수인계를 남겨두면 새 세션은 결론부터 시작할 수 있고, 필요한 경우에만 이전 내용을 찾아볼 수 있습니다. Claude Code 자동 압축 시 유지할 항목에 대한 가이드에서 자동 압축 시 유지되는 항목들을 다룹니다.

Claude Code 세션 재개 모범 사례

선택하기 전에 선택 도구의 정보를 확인하세요. 유휴 시간과 파일 크기만으로도 경고가 알려줄 내용의 대부분을 파악할 수 있습니다.

콜드 재개 직후에는 압축하지 마세요. 캐시가 웜 상태인 휴식 시간에 압축을 진행하세요.

상태가 필요할 때는 재개하고, 답변이 필요할 때는 새로 시작하세요. 목표, 계획, 완료되지 않은 백그라운드 작업은 재개할 가치가 있습니다. 단순한 결정이나 명령은 그렇지 않을 수 있습니다.

새로 시작할 때는 구체적으로 작성하세요. Claude가 찾아보길 원하는 변경 사항, 파일 또는 결정을 명시하세요.

자리를 비우기 전에 인수인계를 작성하세요. CLAUDE.md나 자동 메모리에 몇 줄 적어두는 것은 로드하는 데 비용이 들지 않습니다.

결론

오래된 Claude Code 세션을 재개하면 전체 대화가 다시 전송되며, 캐시 수명이 지나면 전체 비용이 청구됩니다. 구독 요금제의 경우 이 수명은 기본적으로 1시간입니다. 이제 Claude Code v2.1.304는 Pro 및 Max 사용자에게 재개 시 5시간 제한의 상당 부분을 소모할 수 있음을 경고하고, 참조 시 이전 대화를 찾아보는 새로운 대화라는 두 번째 경로를 제공합니다.

세션의 상태를 복원해야 할 때는 재개하세요. 결론만 필요할 때는 새로 시작하고, 콜드 세션의 압축은 건너뛰세요. 그리고 자리를 비우기 전에 짧은 인수인계를 남겨 다음 세션에서 트랜스크립트가 전혀 필요 없도록 만드세요. 만약 세션을 다른 컴퓨터로 이동하려는 경우라면, Claude Code 세션을 다른 기기로 내보내는 가이드에서 해당 방법을 다룹니다.

자주 묻는 질문

Claude Code 세션을 재개할 때 사용량 제한이 많이 소모되는 이유는 무엇인가요?

재개 시 전체 대화가 다시 전송됩니다. 세션이 프롬프트 캐시 수명(구독 시 기본 1시간)보다 오랫동안 유휴 상태였다면, 첫 번째 요청은 캐시에서 읽어오는 대신 전체 컨텍스트를 다시 처리합니다.

Claude Code의 새로운 재개 경고는 어떤 역할을 하나요?

v2.1.304 버전에서는 비활성 대화를 재개할 때 5시간 제한의 상당 부분을 소모하게 되는 경우 Pro 및 Max 사용자에게 경고가 표시됩니다. 그대로 재개하거나, 새 대화를 시작하고 Claude에게 이전 대화를 찾아보도록 요청할 수 있습니다.

오래된 세션을 재개한 후 바로 /compact를 실행해야 하나요?

바로 실행하지 않는 것이 좋습니다. Anthropic 문서에 따르면 캐시가 만료된 후 요약 요청이 전체 기록을 다시 처리해야 하므로, 오래된 세션을 재개할 때 압축 비용이 가장 많이 듭니다.

Claude Code 프롬프트 캐시는 얼마나 오래 유지되나요?

요금제 기본 제공량 내의 Claude 구독에서는 메인 대화가 기본적으로 1시간 동안 캐싱됩니다. 사용 크레딧, API 키 또는 클라우드 제공업체를 사용하는 경우 기본값은 5분입니다. promptCacheTtl 설정을 통해 5m 또는 1h를 선택할 수 있습니다.

재개된 Claude Code 세션은 무엇을 복원하나요?

대화 내용, 활성 목표, 만료되지 않은 예약된 작업, 그리고 터미널에서 ID나 이름으로 재개할 경우 권한 모드가 복원됩니다. --mcp-config 및 --add-dir과 같은 시작 플래그는 다시 전달해야 합니다.

세션 캐시가 아직 웜(warm) 상태인지 어떻게 확인할 수 있나요?

세션 내에서 /usage를 실행하고 Prompt cache (main) 행을 확인하면 캐시가 웜 상태인지, 세션이 얼마나 오랫동안 유휴 상태였는지 알 수 있습니다. 또한 SessionStart 훅을 통해 첫 번째 요청 전에 prompt_cache_likely_expired 여부와 토큰 수를 보고받을 수 있습니다.

관련 글