Claude가 파일을 잘못 고쳤을 때 손으로 되돌리던 시절은 지났습니다. Claude Code는 사용자 프롬프트마다 코드 상태를 자동으로 찍어 두고, /rewind로 대화와 파일을 그 지점으로 되돌립니다. 앞 글의 세션 재개가 "세션 사이"의 이동이라면 되감기는 "세션 안"의 시간 이동입니다. 읽고 나면 어디까지 돌아갈 수 있고 무엇은 돌아가지 않는지, 그리고 /clear·/compact와 언제 구분해 쓸지 판단할 수 있습니다.
핵심 요약
- 체크포인트는 사용자 프롬프트마다 자동 생성되며 Claude의 파일 편집 도구가 바꾼 파일의 스냅샷을 담습니다.
/rewind(별칭/checkpoint,/undo) 또는 입력창이 빈 상태에서Esc두 번으로 메뉴를 엽니다.- 복원은 코드와 대화, 대화만, 코드만의 세 가지이고, 요약은 여기서부터·여기까지 두 가지입니다.
- Bash 명령(
rm,mv,cp)으로 바꾼 파일과 Claude Code 밖에서 고친 파일은 추적하지 않습니다. - 체크포인트는 세션 수준의 실행 취소이며 Git을 대신하지 않습니다.
체크포인트는 무엇을 기록하나
체크포인트는 각 사용자 프롬프트 직전의 코드 상태입니다. Claude Code는 파일 편집 도구(Edit, Write, NotebookEdit)로 수행한 모든 변경을 추적하고, 세션의 가장 최근 100개 체크포인트에 대한 파일 스냅샷을 유지합니다. 오래된 체크포인트가 지워질 때 다른 체크포인트가 참조하지 않는 스냅샷도 함께 지워지지만, 파일마다 첫 스냅샷은 남깁니다. VS Code 확장이 세션 diff의 기준선으로 쓰기 때문입니다. 스냅샷은 세션과 함께 저장되어 재개한 세션에서도 되감기가 되고, 세션 파일과 같이 기본 30일 뒤 정리됩니다(cleanupPeriodDays).
기록 단위가 "프롬프트"라는 점이 실무에서 중요합니다. 한 프롬프트로 파일 열 개를 고치게 했다면 되감기의 최소 단위도 그 열 개 묶음입니다. 우리 5주차 교재가 요청을 단계로 쪼개라고 하는 이유 중 하나가 되감기 단위를 잘게 만들기 위해서입니다.
/rewind 는 어떻게 쓰나
/rewind를 입력하면 이 세션에서 보낸 프롬프트 목록이 뜹니다. 돌아갈 지점을 고른 뒤 동작을 선택합니다.
| 메뉴 | 동작 |
|---|---|
| 코드 및 대화 복원 | 파일과 대화를 모두 그 지점으로 되돌림 |
| 대화 복원 | 파일은 두고 대화만 그 메시지로 되돌림 |
| 코드 복원 | 대화는 두고 파일 변경만 되돌림 |
| 여기서부터 요약 | 이 지점 이후 대화를 요약으로 압축 |
| 여기까지 요약 | 이 지점 이전 대화를 요약으로 압축 |
| 취소 | 아무것도 바꾸지 않고 목록으로 |
대화를 복원하거나 여기서부터 요약을 고르면 선택한 메시지의 원래 프롬프트가 입력창에 다시 채워져 고쳐서 보낼 수 있습니다. 여기까지 요약을 고르면 대화 끝에 남고 입력창은 비어 있습니다.
단축키 · Esc 를 2번 연속 누르기
입력창이 비어 있을 때 Esc를 두 번 누르면 되감기 메뉴가 열립니다. 입력창에 글자가 있으면 두 번 누른 Esc는 메뉴 대신 글자를 지웁니다. 지운 글자는 입력 기록에 저장되므로 메뉴 작업을 마친 뒤 위쪽 화살표로 되살릴 수 있습니다. Esc 한 번은 실행 중인 Claude를 중단하는 키이니 헷갈리지 마십시오. macOS와 Windows 모두 같은 키입니다.
어디까지 돌아갈 수 있나
이 세션에서 보낸 프롬프트 중 스냅샷이 남아 있는 지점까지, 즉 최근 100개 체크포인트 안입니다. 세션을 종료했다가 claude -c나 /resume으로 재개해도 체크포인트는 살아 있습니다. 같은 프로세스에서 /clear를 실행했다면 메뉴 맨 위에 /resume <session-id> (이전 세션) 항목이 나타나 지우기 전 대화로 돌아갈 수 있습니다(v2.1.191 이상). 이 항목은 Claude Code를 종료하거나 다른 세션을 재개하면 사라집니다.
돌아갈 수 없는 것은 세션 바깥입니다. 다른 세션이 고친 파일, 30일이 지나 정리된 세션, 그리고 다음 절에서 다루는 추적 불가 변경입니다.
세 가지 복원 방법은 무엇이 다른가
- 코드 및 대화 복원: 가장 완전한 되돌리기입니다. "이 프롬프트부터 방향이 틀렸다"고 판단될 때 씁니다. 파일과 기억이 함께 그 시점으로 가므로 다시 요청하면 깨끗한 상태에서 출발합니다.
- 대화 복원: 파일은 지금 상태를 유지하고 대화만 되돌립니다. 결과 코드는 마음에 드는데 그 뒤로 대화가 길어져 컨텍스트가 오염됐을 때, 또는 같은 코드 위에서 다른 설명을 시도하고 싶을 때 씁니다.
- 코드 복원: 대화는 그대로 두고 파일만 되돌립니다. Claude가 무엇을 시도했고 왜 실패했는지 기억은 남기면서 파일만 원상 복구하고 싶을 때 씁니다. "방금 시도는 실패했으니 다른 방법으로"라고 이어 말하기 좋습니다.
요약 옵션 둘은 파일을 건드리지 않고 대화 일부를 AI 요약으로 바꿉니다. 여기서부터 요약은 초기 지시를 온전히 남기고 뒤쪽 시행착오를 줄일 때, 여기까지 요약은 초반 설정 논의를 줄이고 최근 작업을 온전히 남길 때 씁니다. 두 경우 모두 원본 메시지는 세션 기록에 보존되고, 요약이 무엇에 집중할지 지시를 적을 수 있습니다. /compact가 전체를 요약한다면 이쪽은 선택한 메시지의 한쪽만 요약하는 표적형입니다.
어떤 장면에서 효과적인가
- 대안 탐색: 두 가지 구현 방식을 시험할 때 하나를 해 보고 되감아 다른 하나를 해 봅니다.
- 실수 복구: 기존 기능을 깨뜨린 편집을 프롬프트 단위로 취소합니다. 우리 5주차 QA 체크리스트의 "기존 기능이 덮어써지지 않았나" 항목에서 걸리면 되감기가 첫 대응입니다.
- 기능 반복: 동작하는 상태로 언제든 돌아갈 수 있다는 확신으로 변형을 시도합니다.
- 컨텍스트 확보: 긴 디버깅을 중간 지점부터 요약해 초기 지시를 유지한 채 공간을 비웁니다.
- 방향 수정: 공식 비용 문서는 잘못된 방향을 감지하면
Esc로 멈추고 되감기로 체크포인트에 복원하라고 권합니다. 오래 끌수록 낭비되는 토큰이 커집니다.
되감기가 추적하지 못하는 변경은 무엇인가
- Bash 명령으로 바꾼 파일:
rm file.txt,mv old.txt new.txt,cp source.txt dest.txt처럼 셸로 삭제·이동·복사한 것은 되감기로 취소할 수 없습니다. Claude의 파일 편집 도구를 통한 편집만 추적됩니다.sed -i로 고친 파일도 마찬가지입니다. - Claude Code 밖의 변경: 에디터에서 직접 고친 파일, 다른 동시 세션의 편집은 현재 세션이 같은 파일을 수정한 경우가 아니면 캡처되지 않습니다.
- 원격 시스템: 데이터베이스, API 호출, 배포처럼 외부에 영향을 주는 작업은 체크포인트 대상이 아닙니다. 그래서 Claude는 외부 부작용이 있는 명령 앞에서 승인을 요청합니다. 우리 7주차의 "운영 DB는 성역"이 되감기로 보호되지 않는다는 뜻이기도 합니다.
되감은 뒤 원래 흐름으로 돌아갈 수 있나
되감기는 세션 안에서 상태를 바꾸는 동작이라 "되감기를 취소하는 버튼"은 없습니다. 대신 두 가지 안전장치가 있습니다. 첫째, 요약 옵션은 원본 메시지를 세션 기록에 보존합니다. 둘째, 세션 문서에 따르면 /rewind로 갈라진 세션은 /resume 선택기에서 원본 아래에 묶여 표시되므로 선택기를 열어 원래 흐름을 찾을 수 있습니다.
원래 흐름을 확실히 보존하고 싶다면 되감기 전에 갈라 두는 것이 정석입니다. /branch 이름을 실행하면 지금까지의 대화 복사본으로 전환되고 원본은 그대로 남습니다. 명령줄에서는 claude --continue --fork-session입니다. 공식 문서도 "원본 세션을 그대로 두고 다른 접근을 시도하려면 요약 대신 포크"라고 안내합니다.
/rewind·/clear·/compact 는 어떻게 가려 쓰나
| 명령 | 대상 | 파일 | 대화 |
|---|---|---|---|
/rewind |
특정 지점 | 선택적으로 되돌림 | 선택적으로 되돌리거나 부분 요약 |
/compact |
전체 대화 | 그대로 | 전체를 요약으로 교체 |
/clear |
전체 대화 | 그대로 | 비우고 새 대화(이전 대화는 저장) |
판단 순서는 이렇습니다. 파일을 되돌려야 하면 /rewind뿐입니다. 파일은 그대로 두고 같은 작업을 이어 가되 무게만 줄이려면 /compact, 초기 지시를 보존하며 뒷부분만 줄이려면 /rewind의 여기서부터 요약, 아예 다른 작업이면 /clear입니다. 우리 4주차 교재의 git 원칙과 함께 보면 층이 분명해집니다. 되감기는 세션 안의 실행 취소, 커밋은 영구 기록입니다.
정리
- 프롬프트마다 자동 체크포인트가 생기고
/rewind또는 빈 입력창에서Esc두 번으로 엽니다. - 복원 셋(코드+대화, 대화만, 코드만)과 요약 둘(여기서부터, 여기까지)을 상황에 맞게 고릅니다.
- 셸 명령과 외부 편집, 원격 시스템 변경은 추적되지 않습니다.
- 원래 흐름을 지키려면 되감기 전에
/branch또는--fork-session으로 갈라 둡니다. - 되감기는 로컬 실행 취소, Git은 영구 기록입니다. 둘 다 씁니다.
자주 묻는 질문
/rewind 와 /clear 는 무엇이 다른가요?
/rewind는 이 세션 안의 특정 지점으로 대화와 파일을 되돌리고, /clear는 파일은 두고 대화를 비워 새 대화를 엽니다. 파일을 원상 복구해야 하면 /rewind, 다른 작업으로 넘어가면 /clear입니다.
세 가지 복원 방법 중 무엇을 골라야 하나요?
방향이 틀렸으면 코드 및 대화 복원, 코드는 좋은데 대화가 지저분하면 대화 복원, 시도는 기억하되 파일만 되돌리려면 코드 복원입니다. 헷갈리면 가장 완전한 코드 및 대화 복원을 고르고 프롬프트를 고쳐 다시 보냅니다.
직접 에디터로 고친 파일도 되감기로 돌아가나요?
아닙니다. 체크포인트는 현재 세션에서 Claude의 파일 편집 도구가 바꾼 파일만 추적합니다. 에디터에서 직접 고친 내용과 셸 명령으로 바꾼 파일은 Git으로 관리하십시오.
/compact 를 실행한 뒤에도 그 이전으로 돌아갈 수 있나요?
되감기 메뉴는 세션에서 보낸 프롬프트를 기준으로 하고 스냅샷은 세션과 함께 저장되므로, 압축 이전 프롬프트가 최근 100개 안에 있으면 그 지점의 코드 복원은 가능합니다. 다만 압축된 대화 원문은 요약으로 대체된 상태이니, 압축 전에 중요한 분기점이 있다면 /branch로 갈라 두는 편이 안전합니다.
체크포인트는 Git 을 대신할 수 있나요?
대신하지 못합니다. 공식 문서는 체크포인트를 "로컬 실행 취소", Git을 "영구 기록"으로 생각하라고 안내합니다. 세션이 30일 뒤 정리되면 체크포인트도 사라지고, 협업과 브랜치는 Git의 일입니다. 우리 4주차 원칙대로 기능 하나가 끝날 때마다 커밋하십시오.