본문으로 건너뛰기

체크포인트와 되감기

중급
What you'll learn
  • 체크포인트가 무엇을 캡처하는지, 그리고 말없이 캡처하지 않는 것이 무엇인지 이해한다
  • 되감기 메뉴를 두 가지 방법으로 열고, 매번 알맞은 복원 동작을 고른다
  • 'restore'(상태 되돌리기)와 'summarize'(컨텍스트 압축)를 구분한다
  • 체크포인트가 Git을 보완하지만 결코 대체하지 않는 이유를 정확히 안다

핵심 아이디어​

야심 찬 대규모 변경을 Claude에게 맡길 때 가장 무서운 질문은 "편집을 세 번쯤 하다가 잘못되면 어떡하지?"입니다. **체크포인트(Checkpointing)**가 그 답입니다. Claude Code는 사용자가 시작하는 매 턴 전에 코드를 자동으로 스냅샷으로 저장하므로, 반쯤 끝난 리팩터링을 손으로 풀어내는 대신 이전 상태로 되감을 수 있습니다.

세션 전체에 대한 로컬 실행 취소라고 생각하세요. "좋아, 과감한 방법을 시도해 봐"라고 두려움 없이 말할 수 있게 해 주는 안전망입니다.

체크포인트가 만들어지는 방식​

체크포인트를 직접 만들 필요는 없습니다. 자동으로 생깁니다.

Guided walkthrough1 of 4
  1. 턴을 시작하는 각 프롬프트는 Claude의 파일 편집 도구가 실행되기 전의 코드 상태를 캡처합니다. 명령도, 설정도, 의식도 필요 없습니다.

되감기 메뉴 열기​

들어가는 방법은 두 가지입니다.

Guided walkthrough1 of 2
  1. 프롬프트에서 슬래시 명령을 입력합니다. 항상 동작합니다. /checkpoint와 /undo는 같은 명령의 별칭이므로, 떠오르는 이름을 쓰면 됩니다.

되감기 메뉴 열기

/rewind
Watch out
  • 별칭 이름은 글자 그대로의 뜻보다 친숙하게 지은 이름입니다. /checkpoint는 요청 시 스냅샷을 찍지 않으며(스냅샷은 자동입니다), /undo는 마지막 편집을 혼자서 취소하지 않습니다. 세 이름 모두 같은 메뉴를 열고, 그 안에서 시점과 동작을 직접 고릅니다.

메뉴에는 이 세션에서 보낸 모든 프롬프트가 나열됩니다. 작업할 시점을 고른 다음, 동작 하나를 선택하세요.

Restore와 Summarize: 핵심 구분​

여기서 사람들이 헷갈립니다. 메뉴는 두 종류의 동작을 제공합니다.

  • Restore 동작은 디스크 및/또는 대화의 상태를 바꿉니다 — 되돌리는 동작입니다.
  • Summarize 동작은 파일을 절대 건드리지 않습니다 — 컨텍스트 창의 공간을 확보하기 위해 대화를 압축합니다.
Watch out
  • Restore = 실행 취소(코드, 대화 또는 둘 다 되돌림). Summarize = 컨텍스트 압축(디스크의 파일은 그대로).
  • 편집이 무언가를 망가뜨렸다면 restore를 쓰세요. 세션은 비대해졌지만 코드는 괜찮다면 summarize를 쓰세요.

Restore 동작​

Guided walkthrough1 of 3
  1. 파일과 채팅 기록을 모두 선택한 시점으로 되돌립니다 — 그 순간으로 깔끔하게 '시간을 되감는' 동작입니다.

두 가지 코드 restore 옵션은 선택한 체크포인트에 되돌릴 추적된 파일 변경이 실제로 있을 때만 나타납니다. 그 시점 이후에 캡처된 파일 편집이 없다면 메뉴에는 Restore conversation, 두 summarize 옵션, 그리고 Never mind(아무것도 바꾸지 않고 메시지 목록으로 돌아감)만 표시됩니다.

대화를 복원한 뒤(또는 "Summarize from here"를 선택한 뒤)에는 선택한 메시지의 원래 프롬프트가 입력창에 다시 채워져, 다시 보내거나 수정할 수 있습니다.

Summarize 동작​

둘 다 대화의 일부를 AI가 생성한 요약으로 압축합니다 — 선택한 메시지의 어느 쪽을 압축할지 고를 수 있는 **표적형 /compact**와 같습니다.

Guided walkthrough1 of 2
  1. 선택한 메시지 이전의 메시지는 그대로 유지됩니다. 선택한 메시지와 그 이후는 요약이 됩니다. 곁가지 논의는 버리면서 초반 컨텍스트는 자세히 유지하고 싶을 때 쓰세요.

어느 쪽이든 원래 메시지는 세션 기록에 남으므로 Claude가 여전히 세부 내용을 참조할 수 있고, 압축된 메시지가 있던 자리에 Summarized conversation 표시가 나타납니다. 요약이 무엇에 초점을 둘지 조정하려면, 화살표 키로 Summarize 옵션을 강조하고 줄에 **add context (optional)**이라고 표시된 곳에 지침을 입력한 뒤 Enter를 누르세요 — 숫자 키로 옵션을 고르면 지침 없이 즉시 요약됩니다.

전체 흐름은 컨텍스트 관리를 참고하세요 — /compact가 굵은 붓이라면 /rewind의 summarize 동작은 메스입니다.

What you'll learn
  • Summarize는 같은 세션에 머뭅니다. 원래 세션은 그대로 둔 채 가지를 쳐서 다른 접근을 시도하려면 /branch 또는 claude --continue --fork-session을 대신 사용하세요.

/clear 이전으로 되감기​

같은 Claude Code 프로세스에서 앞서 /clear를 실행했다면, 되감기 메뉴 맨 위에 항목이 하나 더 나타납니다: /resume <session-id> (previous session). 이를 선택하면 /clear 이전에 활성 상태였던 대화로 돌아갑니다.

체크포인트가 멈추는 곳 — 아프게 다가오는 한계​

체크포인트는 마법처럼 느껴지다가 그렇지 않게 되는 순간이 있습니다. 다음 빈틈이 중요합니다.

Guided walkthrough1 of 7
  1. 추적은 파일 단위로 이루어지며, 파일은 Claude가 파일 편집 도구로 편집했을 때에만 추적 대상이 됩니다. 일단 그렇게 되면 이후 Bash 명령이 같은 파일에 가한 변경도 /rewind로 되돌릴 수 있습니다. 이미 편집한 파일을 포매터나 생성기가 다시 쓴 경우에도 되감을 수 있습니다. Bash만 건드린 파일은 추적되지 않고 그대로 남으므로, Claude가 한 번도 편집하지 않은 파일을 rm으로 삭제했다면 Git이 필요합니다. 메뉴에도 이것이 반영되어, 각 프롬프트 아래에는 원인과 관계없이 Claude가 이미 편집한 파일에 대한 변경 수가 표시됩니다.

체크포인트 vs. Git: 둘 다 쓰세요​

해결하는 문제가 다르니 함께 쓰세요.

체크포인트 (/rewind)Git
범위하나의 세션프로젝트 전체 히스토리
세분성턴을 시작하는 프롬프트마다, 자동커밋마다, 의도적
bash로 한 변경을 추적?Claude가 이미 편집한 파일에 한해서만예 (스테이징/커밋한 뒤)
수명최근 100개 체크포인트, 세션 후 약 30일 뒤 정리영구
공유 / 협업불가가능
멘탈 모델"로컬 실행 취소""영구 히스토리"
Pro tip
  • 위험하고 대규모인 작업 전에 동작하는 상태를 Git으로 커밋하세요 — 그것이 내구성 있는 바닥선입니다.
  • 커밋 사이의 빠른 세션 내 복구에는 /rewind를 사용해 Git 히스토리를 어지럽히지 마세요.
  • Claude가 직접 편집하지 않는 파일, 즉 파괴적인 bash(rm/mv)나 백그라운드 서브에이전트만 건드리는 파일은 Git에 의존하세요. rewind는 Claude가 자체 파일 도구로 편집한 이후의 파일만 다룹니다.

언제 쓸까​

Guided walkthrough1 of 4
  1. 과감한 구현을 시도해 보고, 마음에 들지 않으면 분기 지점으로 코드와 대화를 복원해 다른 방법을 시도하세요.

스스로 점검해 보세요

0/3
  1. Claude가 파일 도구로 `config.old.json`을 한 번도 편집하지 않았고, 그 뒤 bash 명령의 `rm`으로 삭제했습니다. `/rewind`로 되살릴 수 있을까요?
  2. 코드는 괜찮은데 긴 디버깅 곁길이 컨텍스트 창을 가득 채웠습니다. 어떤 동작이 맞을까요?
  3. 체크포인트는 어떻게 만들어지나요?
체크포인트와 되감기 용어
Enter 또는 스페이스 키를 눌러 카드를 뒤집습니다. 좌우 화살표 키로 카드를 이동할 수 있습니다.용어가 표시되었습니다.
1 / 6
Key takeaways
  • 체크포인트는 턴을 시작하는 각 프롬프트 전에 찍는 자동 스냅샷 — 세션의 로컬 실행 취소다. 최근 100개를 유지한 뒤 세션 후 약 30일 뒤 정리된다.
  • 되감기 메뉴는 /rewind(별칭: /checkpoint, /undo) 또는 빈 입력창에서 Esc 두 번으로 연다. 보낸 모든 프롬프트가 나열된다.
  • Restore 동작은 상태(코드, 대화 또는 둘 다)를 되돌리고, summarize 동작은 컨텍스트를 압축하며 파일을 절대 건드리지 않는다.
  • 추적은 파일 단위이며 Claude가 파일 도구로 편집할 때 시작됩니다. 그 이후에는 그 파일에 대한 Bash 변경도 되감깁니다. Claude가 한 번도 편집하지 않은 파일(bash 전용, 외부, 동시 실행, 대부분의 서브에이전트)은 추적되지 않으며, 심볼릭 링크나 하드 링크 경로는 restore 시 건너뜁니다.
  • 체크포인트는 Git을 보완할 뿐 대체하지 않는다: '로컬 실행 취소'와 '영구적이고 공유 가능한 히스토리'로 기억하자.

다음​

  • 컨텍스트 관리 — /compact, /clear, 그리고 summarize가 큰 그림에서 어떻게 들어맞는지
  • 플랜 모드 — 편집이 실행되기 전에 조사하고 계획을 승인해 되감는 횟수를 줄이세요
  • 권한 — 야심 찬 작업을 안전하게 실행하기 위한 나머지 절반