오랫동안 중단된 세션을 어떻게 처리해야 할까?
What to do with sessions that get interrupted for a long time
핵심 요약
Claude Code 세션이 장기간 유휴 상태일 때 발생하는 캐시 만료와 토큰 비용 문제를 해결하기 위한 효율적인 세션 관리법을 논의합니다.
- 캐시 만료 — 세션 캐시는 보통 1시간 내외로 만료되므로 장기 휴식 후에는 재시작 시 비용이 발생함
- 핸드오프 파일 — 세션 종료 전 작업 내용과 다음 단계를 기록한 파일을 생성해 새 세션에서 활용함
- 외부 요약 스크립트 — CLI에서 별도 스크립트를 사용해 대화 내용을 요약하면 비용을 절감할 수 있음
- 세션 최적화 — 세션 크기를 관리하고 필요 시 /compact 명령어를 활용하거나 수동으로 상태를 기록함
난 급한 일이나 우선순위에 따라 이것저것 옮겨 다니면서 일을 처리해야 해서, 항상 여러 개의 '냄비'를 동시에 끓여두는 편이야. cmux를 쓰면서 claude 세션을 띄워놓고, 집중력이 돌아올 때까지 한참 동안 일시 정지 상태로 방치해두곤 하지.
그런데 세션 관련 캐시가 보통 만료돼서, 다시 세션을 재개할 때마다 로딩하느라 토큰을 엄청나게 잡아먹는다는 얘기를 들었어. 그래서 세션 재개 방식을 두 가지로 나눠서 생각해 볼 필요가 있을 것 같아.
-
다른 워크스페이스나 워크트리에 세션을 그대로 띄워놓고 기다리게 한 경우. 이때는 그냥 다시 claude한테 말을 걸어서 하던 일을 이어가고, 필요하면 claude한테 상황 요약을 좀 해달라고 하지.
-
Claude code 세션이 아예 종료돼서 /resume/--resume 명령어로 다시 시작하는 경우.
내가 지금까지 모범 사례를 제대로 안 따르고 있었던 것 같아서, 제대로 이해하고 있는지 확인도 좀 하고 커뮤니티랑 몇 가지 가설도 테스트해 보면서 더 나은 방법이 있는지 찾아보려고 해.
보통 1번 케이스면 그냥 바로 다시 시작하고, 2번 케이스라도 그냥 재개해서 바로 뛰어드는 편이야. 근데 이게 진짜 잘못된 방식인가? 얼마나 심각한 문제인 거지?
1번이든 2번이든 세션에 다시 들어갈 때, 아예 새로운 세션에서 바로 이어서 작업할 수 있도록 '핸드오프 요약 문서'를 생성하게 하는 게 좋을까? 아니면 그렇게 하는 게 권장되는 방식인가? 그러면 컨텍스트도 더 깔끔해지고 메모리나 캐시 상태도 훨씬 효율적으로 관리할 수 있지 않을까 싶어서 말이야.
이전 세션 기록을 새 세션으로 넘겨서 제대로 효과를 보려면 커뮤니티에서는 어떤 방식을 추천해? 어느 정도는 이게 '컴팩션(compaction)'을 흉내 내는 꼴인데, 컴팩션에 대한 불만도 많이 들었거든(난 최대한 그 지점까지 안 가려고 컨텍스트를 계속 확인하면서 작업 중에 핸드오프를 하려고 노력해). 컴팩션이 제대로 된 걸 잡아내긴 하는 건지, 아니면 그냥 단순히 임계값을 뒤로 미루는 수준인 건지 궁금해.
내 경우에는 세션이 일정 시간 이상 유휴 상태가 되면 자동으로 핸드오프를 준비하게 하거나, 가능하다면 현재 세션 종료 직전에 훅(hook)을 걸어서 핸드오프를 실행하게 하면 좋을 것 같아. 혹시 이런 거 시도해 본 사람 있어? 효과 좀 봤어?


