목표: 되돌리는 법과, 대화가 길어질 때 관리하는 법. 두 가지 다 "이미 늦었을 때" 쓰는 기술이다.
실습을 시작하기전에 깨끗한 상태에서 시작하기 위해 깃 커밋을 진행하고 시작한다.
Step 1. 일부러 넓게 망가뜨리기
이번 실습은 여러 파일이 바뀐 상태를 만들어야 하는데 편집 승인을 일일이 하면 중간에 계속해서 멈추므로
프롬프트 모드를 Edit automatically 모드로 바꾼다.

그리고 다음 프롬프트를 클로드에게 보낸다.
쿠폰을 정률(%) 말고 정액(원) 할인도 지원하도록 확장해줘.
Item, checkout, API 페이로드까지 전부 맞춰서.
그 다음 git status를 통해 변경된 파일들을 확인한다.

models.py, pricing.py, main.py, test_pricing.py 등이 줄줄이 바뀐 것을 확인할 수 있다.
이제 이 변경 사항을 통째로 되돌릴 것이다.
Step 2. 되감기
프롬프트 박스에 다음 명령어를 입력하거나,
/rewind
입력창이 비어 있는 상태에서 Esc를 두 번 누르면 이 세션에서 보낸 프롬프트 목록이 뜬다.

또는 클로드에게 보낸 메시지에 대하여 되감기 버튼을 누르면

옵션을 선택하여 되감을 수 있다.
| 옵션 | 코드 | 대화 |
| Fork conversation from here | 그대로 | 분기 |
| Rewind code to here | 되돌림 | 그대로 |
| Fork conversation and rewind code | 되돌림 | 분기 |
vscode에서 클로드 코드를 사용할 때 /rewind가 하는 것은 Fork conversation and rewind code 옵션이다.
해당 옵션을 선택하면

해당 선택지가 나온다.
여기서 설명을 보면 bash를 통해 편집된 파일은 되돌리기에 영향을 받지 않는다는 것을 알 수 있다.
Continue를 진행하고
git status로 확인해보면

클로드에 의해 편집됐던 파일 models.py, pricing.py, main.py, test_pricing.py이 편집전으로 돌아간 것을 확인할 수 있다.
여기서 핵심은 "복원"이 아니라 "분기"라는 점이다. 원래 대화는 사라지지 않고 남는다.
되돌려놨다가 "역시 아까 게 나았다" 싶으면 상단 Session history 버튼으로 돌아갈 수 있다.
그래서 되감기는 부담 없이 눌러도 되는 조작입니다.
두 번 교정했으면 세 번째는 하지 않는다. 되감아서 처음부터 다르게 말하는 게 빠르다.
잘못된 시도가 대화에 남아 있으면 클로드는 계속 그 방향으로 끌려간다.
Step 3. Checkpoint가 못잡아내는 것
먼저 git을 커밋하거나 이전 상태로 되돌려서 깨끗한 상태로 만든다.

그 다음 클로드에게 다음 프롬프트를 보낸다.
scratch.txt 라는 빈 파일을 bash로 만들어줘.
그리고 git status를 확인해보면

파일이 생성되어 작업 폴더에 있는 것을 볼 수 있다.
이제 rewind를 통해 해당 파일이 생성되기 전으로 되돌려 보자.
/rewind를 실행한 뒤에 작업폴더를 확인해보면

파일이 그대로 남아있는 것을 볼 수 있다.
그 이유는 되돌리기 메시지에서 봤던

Rewinding does not affect files edited manually or via bash. 가 그 이유에 해당한다.
즉, 되감기는 수동으로 편집했거나 bash 를 통해 편집한 파일에는 영향을 미치지 않는다.
안전망은 총 3 층이다.
diff 승인 → 변경 하나
체크포인트 → 한 대화 안에서 생긴 여러 변경들. bash는 못 잡음
git → 전부. 유일하게 bash까지 커버
이제 scratch.txt 파일은 지운다.
Step 4. 대화가 길어지는 경우
컨텍스트 윈도우가 꽉 차면 클로드 코드가 알아서 압축하는데, 그렇게 하기 전에 내가 관리하는 것이 낫다.
| 상황 | 도구 |
| 전체를 줄이고 계속 | /compact |
| 곁가지 질문을 던지고 싶다 | /btw |
| 주제가 바뀜 | 새 대화 (Cmd + Shift + Esc) |
| 다른 작업을 병행하는 경우 | 새 탭 - 각자 컨텍스트를 따로 가짐 |
/btw가 유용하다. /btw 뒤에 질문을 쓰면 답이 옆 패널에 열리고 대화에는 추가되지 않는다.
CLI에는 Summarize from here처럼 자를 위치를 고르는 압축이 있는데, vscode 확장 클로드 코드에는 없다.
필요하면 터미널에서 claude --resume으로 같은 대화를 이어서 쓰면 된다. 확장과 CLI는 대화 기록을 공유한다.
마지막으로 권한 모드를 Manual로 되돌려 둔다.
핵심 정리
1. 체크포인트는 프롬프트를 보낼 때마다 자동으로 저장된다. 한 대화에서 최근 100개.
2. 안전망은 3층이고 커버 범위가 다르다.
diff 승인(변경 하나) → 체크포인트(대화 안 되돌리기) → git(전부). bash가 한 일은 git만 되돌린다.
3. 체크포인트는 편집 도구를 거친 변경만 추적한다.
bash 명령, 내가 직접 고친 것, 서브에이전트 편집은 안 잡힌다. scratch.txt가 남아 있던 게 증거다.
4. 확장의 되감기는 복원이 아니라 분기다.
원래 대화가 남으므로 되감기는 안전한 조작이다. Session history로 돌아갈 수 있다.
5. 두 번 교정했으면 세 번째 대신 되감아서 처음부터 다르게 말한다.
잘못된 시도는 대화에 남아 계속 끌어당긴다. 그래서 지우고 다시 하는 게 고쳐 쓰는 것보다 빠를 때가 있다.
6. 컨텍스트 관리 수단은 넷.
/compact(전체 압축), /btw(컨텍스트를 안 먹는 곁가지 질문), 새 대화(주제 전환), 새 탭(병행 작업).
7. 위험한 작업 전에는 커밋한다.
삭제·이동·마이그레이션이 섞이면 체크포인트로는 부족하다.
8. vscode 클로드 코드 확장에 없는 기능은 CLI에 있다.
위치를 고르는 압축이 그렇다. 대화 기록을 공유하므로 claude --resume으로 이어받을 수 있다.
'개발 > Claude Code' 카테고리의 다른 글
| [Claude Code] 스킬(Skill) (7) (0) | 2026.08.31 |
|---|---|
| [Claude Code] 테스트로 검증 루프 만들기 (6) (0) | 2026.08.30 |
| [Claude Code] CLAUDE.md (4) (0) | 2026.08.28 |
| [Claude Code] Plan 모드 (3) (0) | 2026.08.27 |
| [Claude Code] 컨텍스트 제어 (2) (0) | 2026.08.26 |