AI Coding & Agents

[Claude Code #5] /rewind, 망친 코드를 체크포인트로 되돌리기

Claude Code /rewind는 프롬프트마다 자동 저장되는 체크포인트로 코드와 대화를 되돌립니다. Esc 두 번으로 여는 메뉴, 복원·요약 선택지, 셸 부작용 등 안 되돌아가는 것까지 정리했습니다.

4분 읽기
[Claude Code #5] /rewind, 망친 코드를 체크포인트로 되돌리기 대표 이미지

AI에게 수정을 맡겼다가 30분 뒤에 후회해 본 적, 다들 있으실 겁니다. 커밋도 안 해 둔 상태라면 등에서 식은땀이 나죠.

Claude Code에는 이럴 때를 위한 되감기 버튼이 있습니다. /rewind입니다.

프롬프트를 보낼 때마다 코드 상태가 체크포인트로 남고, 언제든 그 시점으로 코드와 대화를 되돌릴 수 있어요.

Claude Code 4편/branch가 갈라 치기라면, 이번 편은 되돌리기입니다.

체크포인트는 알아서 쌓입니다

공식 체크포인트 문서 기준으로 동작은 이렇습니다.

사용자 프롬프트를 보낼 때마다 체크포인트가 하나 생깁니다. 따로 켜거나 저장 버튼을 누를 필요가 없어요.

파일 스냅샷은 세션당 최근 100개 체크포인트까지 남습니다. 체크포인트가 대화와 함께 저장되니 세션을 재개한 뒤에도 /rewind가 됩니다.

되감기 메뉴 열기

/rewind를 입력하거나, 입력창이 비어 있을 때 Esc를 두 번 누르면 메뉴가 열립니다.

메뉴는 이번 세션에서 보낸 프롬프트를 시간순으로 보여 줍니다. 되돌아갈 지점을 고르면 선택지가 나와요.

  • 코드와 대화 모두 복원: 그 시점으로 전부 되돌리기
  • 대화만 복원: 코드는 현재 상태로 두고 대화만 되감기
  • 코드만 복원: 대화는 유지하고 파일 변경만 되돌리기

코드 복원 두 항목은 그 지점 이후 추적된 파일 변경이 있어야 나타납니다.

대화를 복원하면 그 지점의 원래 프롬프트가 입력창에 다시 채워집니다. 이번엔 지시를 고쳐서 다시 보내면 되는 거죠.

Claude Code 체크포인트 생성과 /rewind 복원 선택지 다이어그램
프롬프트마다 체크포인트가 쌓이고, 복원 범위를 골라 되돌립니다

되감기 말고 요약도 됩니다

같은 메뉴에 요약 선택지도 두 개 있습니다.

여기부터 요약은 고른 지점 이후의 대화를 요약으로 압축합니다. 장황했던 디버깅 과정을 접어서 컨텍스트 공간을 되찾는 용도예요.

여기까지 요약은 반대로 앞부분을 압축하고 최근 대화를 온전히 남깁니다.

요약은 파일을 건드리지 않고, 원본 메시지도 세션 기록에 남습니다. 지점을 콕 집는 /compact라고 생각하면 됩니다.

무엇이 안 되돌아가나

/rewind가 만능은 아닙니다. 추적하는 범위가 따로 있어요.

먼저 셸 명령의 부작용은 추적하지 않습니다. Claude가 rm이나 mv로 바꾼 파일은 되감기로 복구할 수 없어요. 파일 편집 도구로 고친 것만 추적 대상입니다.

서브에이전트가 고친 파일도 대개 복원 대상 밖입니다. 포그라운드로 도는 포크 스킬만 예외고, 기본값인 백그라운드 서브에이전트의 편집은 git으로 되돌려야 해요.

세션 밖에서 손으로 고친 변경, 심링크·하드링크로 연결된 파일도 마찬가지입니다. 복원할 때 이런 경로는 건너뛰고 몇 개를 건너뛰었다는 경고가 뜹니다.

체크포인트는 세션과 함께 30일 뒤 삭제되기도 합니다. 공식 문서가 못을 박아 둔 이유죠. 세션 단위의 빠른 복구용이지, git 같은 버전 관리의 대체재가 아니라고요.

SAFETY NET NOT A VAULT 문구와 노트북을 받는 안전망, git 금고 일러스트
체크포인트는 그물, 금고는 git입니다

/clear 했던 대화로 돌아가기

/clear로 대화를 비운 직후에 “아차” 싶을 때도 있죠.

같은 Claude Code 프로세스 안이라면 되감기 메뉴 맨 위에 이전 세션으로 돌아가는 항목이 뜹니다(v2.1.191 이상). 고르면 /clear 전에 하던 대화가 그대로 돌아와요.

정리

/rewind는 프롬프트 단위 체크포인트로 코드와 대화를 되돌리는 안전망입니다. Esc 두 번이면 열립니다.

셸 명령 부작용은 못 되돌린다는 한계만 기억하세요. 세션 안 실험은 /rewind에, 영구 이력은 git에 나눠 맡기면 됩니다.

다음 편에서는 Claude에게 달성 조건을 걸어 두는 /goal을 다룹니다. 목표를 걸면 턴이 끝날 때마다 별도 모델이 조건 충족을 판정하고, 아직이면 작업이 이어집니다.

출처 및 확인 기준

이어서 읽기

Claude Code 시리즈

관련 주제