# Claude Code 체크포인트 시스템 리서치

> 리서치 날짜: 2026-03-28
> 출처: https://code.claude.com/docs/en/checkpointing

## 개요

Claude Code는 파일 편집을 자동으로 추적하는 체크포인트 시스템을 내장하고 있다. 사용자가 별도로 저장하지 않아도, 매 프롬프트마다 파일 상태를 스냅샷으로 남긴다.

## 작동 원리

### 자동 추적

- 매 사용자 프롬프트마다 새 체크포인트를 생성한다
- Claude의 파일 편집 도구(Write, Edit)로 수정한 파일만 추적한다
- 세션을 resume해도 체크포인트에 접근할 수 있다
- 30일 후 세션과 함께 자동 삭제한다 (설정 가능)

### 되돌리기 (Rewind)

ESC 두 번 또는 `/rewind` 명령으로 되돌리기 메뉴를 연다. 세션의 프롬프트 목록이 스크롤 가능한 타임라인으로 표시된다.

### 복원 옵션 (4가지)

| 옵션                 | 동작                                                          |
| -------------------- | ------------------------------------------------------------- |
| **코드 + 대화 복원** | 파일과 대화 모두 해당 시점으로 되돌린다                       |
| **대화만 복원**      | 대화를 되돌리되 현재 파일은 유지한다                          |
| **코드만 복원**      | 파일을 되돌리되 대화는 유지한다                               |
| **여기서부터 요약**  | 선택 시점 이후 대화를 AI가 요약하여 압축한다 (파일 변경 없음) |

복원 후, 선택한 시점의 원래 프롬프트가 입력창에 다시 채워진다. 다시 보내거나 수정할 수 있다.

### 요약 기능 (Summarize from here)

- 선택 시점 이전 메시지는 그대로 유지
- 선택 시점 이후 메시지를 AI가 요약으로 대체
- 파일 변경 없음
- 원본 메시지는 세션 기록에 보존 (AI가 필요 시 참조 가능)
- `/compact`와 비슷하지만, 특정 시점부터만 선택해서 압축할 수 있다

## 추적 대상과 한계

### 추적하는 것

- Claude의 파일 편집 도구(Write, Edit)로 수정한 파일

### 추적하지 않는 것

- **Bash 명령**: `rm`, `mv`, `cp` 등으로 변경한 파일은 되돌릴 수 없다
- **외부 편집**: 사용자가 직접 수정한 파일이나 다른 세션에서 수정한 파일
- 단, 현재 세션에서 편집한 같은 파일을 외부에서도 수정한 경우는 예외로 캡처될 수 있다

### Git과의 관계

- 체크포인트는 세션 단위의 빠른 복구용이다
- Git을 대체하지 않는다
- 체크포인트 = "로컬 undo", Git = "영구 히스토리"

## 활용 사례

- 다른 구현 방법 탐색 — 시작점을 잃지 않고 실험
- 실수 복구 — 버그를 만든 변경을 빠르게 되돌리기
- 기능 반복 — 작동하는 상태로 언제든 돌아갈 수 있다
- 컨텍스트 확보 — 긴 디버깅 세션의 중간부터 요약

## 참고 자료

- [Checkpointing - Claude Code 공식 문서](https://code.claude.com/docs/en/checkpointing)
- [ClaudeLog - Rewind 가이드](https://claudelog.com/mechanics/rewind/)
- [How to Undo in Claude Code - DEV Community](https://dev.to/ronit_sachdev/how-to-undo-in-claude-code-2cbp)
- [ccundo - 서드파티 undo 도구](https://github.com/RonitSachdev/ccundo)
