시스메틱 데일리코딩 못해도 AI로 자동화 시스템 만드는 법
AI 도구

사용 한도 끊긴 새벽, 클로드가 스스로 잇는다

세션 리커버, 한도로 멈춘 작업을 리셋 직후 자동 재개한다

클로드 코드(Claude Code)가 사용 한도에 걸려 새벽 1시에 멈췄다. 한도는 몇 시간 뒤 풀렸지만 터미널은 '계속'이라는 한 마디를 기다리며 아침까지 그대로 서 있었다. 이 흔한 낭비를 없애겠다는 오픈소스가 해커뉴스에 올라왔다. 씨씨-세션-리커버(cc-session-recover)는 사용자가 자리를 뜨기 전에 복구 계획을 미리 심어 두는 방식을 택했다.

무슨 일인가 / 배경

한도 초과는 에이전트 자동화의 조용한 세금이다. 모델이 틀린 것도, 코드가 깨진 것도 아닌데 사람이 잠든 시간만큼 그대로 손실이 된다. 리셋은 몇 시간이면 풀리지만, 그 순간 키보드 앞에 사람이 없으면 아무 일도 일어나지 않는다.

지금까지의 해법은 대체로 편법이었다. 터미널 다중화 도구를 이용한 꼼수, 몰래 프롬프트를 밀어 넣는 방식, 운영체제를 건드리는 자동화 같은 것들이다. 이 프로젝트는 그런 트릭을 쓰지 않는다고 명시한다. 대신 클로드 코드가 공식으로 제공하는 훅과 세션 내 일정 기능만 조합한다. 저장소는 소프트케인(softcane) 계정에 MIT 라이선스로 올라와 있고, 커밋 29개에 별 35개가 붙은 초기 프로젝트다.

핵심 짚어보기

설치는 한 줄이다. npx cc-session-recover init /path/to/project를 실행하면 네 가지가 프로젝트에 깔린다. 실패를 감지하는 스톱페일러(StopFailure) 훅, /session-recover 명령, 인수인계 노트인 HANDOFF.md, 그리고 선택 사항인 감시 프로세스다. 훅 명령은 다음에 프로젝트를 열 때 사용자가 직접 승인해야 한다.

작동 흐름은 단순하다. 작업을 지시한 뒤 /session-recover를 치면 세션에 반복 일정이 하나 걸린다. 클로드 코드가 한도나 과부하로 멈추면 훅이 그 실패와 재시도 창을 .claude/quota-blocked.json에 기록한다. 세션은 유휴 상태에서 주기적으로 이 표식을 확인하고, 세 가지 상태 중 하나를 뱉는다. 재시도 창이 아직 안 열렸으면 대기(WAIT), 열렸으면 준비됨(READY), 걸린 실패가 없으면 없음(NONE)이다. 준비됨이 되면 표식을 지우고 인수인계 노트를 읽어 하던 작업을 그대로 이어간다. 체크리스트를 다 끝내면 일정을 스스로 취소하고 완료(DONE)를 찍는다.

확인 간격은 기본 30분이고, /session-recover 15처럼 숫자를 붙이면 15분으로 줄일 수 있다. 저장소가 공개한 시연은 6월 12일 실제 한도 정지에 걸린 세션이 리셋을 기다렸다가 같은 작업을 이어가는 장면이다.

1인기업 실전 적용 포인트

  • 자기 전 긴 작업을 걸었다면 /session-recover를 한 번 치고 자라. 새벽 3시에 한도가 풀리면 그 시각부터 일이 재개된다. 사람이 깨어 있는 시간과 한도가 풀리는 시간을 맞출 필요가 없어진다.
  • HANDOFF.md는 기계용이 아니라 사람용으로도 남는다. 무엇이 바뀌었고 다음에 뭘 할지가 적히니, 며칠 뒤 그 프로젝트로 돌아왔을 때 맥락 복원 시간이 줄어든다.
  • 확인 간격은 작업에 맞춰 조절하라. 짧은 리셋을 노린다면 15분, 밤새 굴릴 거라면 기본 30분이 토큰을 덜 태운다.
  • 터미널이 닫힐 위험이 있는 환경이라면 감시 프로세스를 별도로 띄워라. 세션만 믿으면 창이 닫히는 순간 복구도 같이 죽는다.

전망 / 주의점

한계는 분명하다. 이 도구는 한도 자체를 늘려주지 않는다. 세션이 열려 있어야 하고, 무엇보다 PC가 켜져 있어야 한다. 절전으로 들어가는 노트북에서는 무용지물이다. 24시간 자동화를 노린다면 결국 상시 켜둔 서버나 가상서버가 필요하다는 결론은 그대로다. 별 35개짜리 초기 프로젝트인 만큼 중요한 작업에 걸기 전에 가벼운 작업으로 한 번 검증해 보길 권한다. 그래도 이 접근의 미덕은 분명하다. 공식 훅만 쓰기 때문에 도구가 업데이트돼도 깨질 여지가 편법보다 적다.

출처: 해커뉴스 (https://github.com/softcane/cc-session-recover)
← 전체 기사 보기