[Claude Code 스킬] 체크포인트 & /rewind — 프롬프트마다 찍히는 되감기 지점 | DAKER 커뮤니티
리팩터링을 시켰더니 통과하던 테스트 12개가 한꺼번에 빨개졌다. 되돌리고 싶은데 커밋은 30분 전이 마지막. 이럴 때 쓰라고 Claude Code는 프롬프트를 보낼 때마다 코드 스냅샷을 자동으로 찍어 둔다. 오늘은 그 안전망, 체크포인트와 /rewind를 정리한다.
무엇
체크포인트는 게임의 세이브 포인트에 가깝다. 다만 내가 저장 버튼을 누르는 게 아니라, 내가 프롬프트를 보내는 순간이 곧 저장 지점이다. Claude가 파일 편집 도구로 건드린 파일의 상태가 그 시점에 통째로 스냅샷된다.
스냅샷은 세션당 최근 100개까지 보관되고, 대화와 함께 저장되기 때문에 세션을 나갔다 --resume으로 돌아와도 /rewind가 그대로 살아 있다. 세션이 삭제되는 30일이 지나면 체크포인트도 함께 사라진다(설정 키 cleanupPeriodDays로 조정).
언제 쓰나
대안 탐색 — 구현 A를 끝까지 밀어본 뒤 통째로 되감고 구현 B를 시도. 실패가 싸지면 더 과감한 지시를 내릴 수 있다.
실수 복구 — 광범위 리팩터링이 동작을 깨뜨렸을 때 그 프롬프트 직전으로 원위치.
대화만 되감기 — 코드는 마음에 드는데 내가 프롬프트를 잘못 썼을 때. 파일은 두고 대화만 돌린 뒤 프롬프트를 고쳐 다시 보낸다.
컨텍스트 절약 — 장황했던 디버깅 구간만 요약으로 압축하고, 맨 앞의 요구사항 지시는 원문 그대로 남긴다.
사용법
# 되감기 메뉴 열기 — 둘 중 아무거나
/rewind
Esc Esc # 단, 프롬프트 입력창이 "비어 있을 때"만입력창에 글자가 남아 있으면 Esc 두 번은 메뉴 대신 입력을 지운다. 지워진 텍스트는 입력 기록에 저장되니, 메뉴에서 나온 뒤 위 방향키로 되살리면 된다.
메뉴는 세션에서 내가 보낸 프롬프트 목록을 보여준다. 지점을 고르면 다음 6가지 중에서 선택한다. 코드 축과 대화 축이 따로 논다는 점이 핵심이다.
그 지점 이후에 파일 변경이 하나도 없었다면 코드 복원 두 항목은 아예 뜨지 않는다. 대화를 복원하거나 "Summarize from here"를 고르면, 선택한 메시지의 원래 프롬프트가 입력창에 다시 채워져 그대로 재전송하거나 고쳐 보낼 수 있다.
# 요약에 방향을 주고 싶을 때
# Summarize 항목을 화살표 키로 하이라이트하면 "add context (optional)" 줄이 뜬다
API 스키마 결정 사항만 남기고 시행착오는 버려 ← 여기에 적고 Enter
# 숫자 키로 바로 고르면 지시 없이 즉시 요약된다같은 프로세스에서 /clear를 했다면 목록 맨 위에 /resume <session-id> (previous session) 항목이 추가로 뜬다(v2.1.191+). 지우기 전 대화로 건너뛸 수 있는 비상구다.
안전망의 경계
되감기가 만능은 아니다. 스냅샷에 잡히는 것은 Claude가 파일 편집 도구로 직접 고친 파일뿐이다.
팁
파일 이동·삭제는 되감기 밖이라고 가정하라.
mv·rm으로 정리하는 작업 앞에서는 체크포인트가 아니라 커밋을 먼저 찍는 게 맞다. 체크포인트는 Claude가 자기 손으로 만진 파일만 기억한다.Summarize는 조준 사격형
/compact다. 세션을 유지한 채 특정 구간만 압축한다. 원문 메시지는 트랜스크립트에 남아 있어 Claude가 세부를 다시 참조할 수 있다. 반대로 원본 세션을 온전히 두고 다른 길을 시험하려면/branch나claude --continue --fork-session이 맞다.복원 후 "skipped N files" 경고가 뜨면 심링크·하드링크 경로다. 복원 전에
/debug를 켜두면~/.claude/debug/<session-id>.txt에 건너뛴 경로가 그대로 남는다.