Claude Code로 복잡한 리팩토링을 40분째 진행하고 있는데, 갑자기 "이거 다른 방식으로 해보면 어떨까?" 싶은 순간이 옵니다. 그런데 지금까지 쌓아온 컨텍스트 — 읽은 파일들, 내린 판단들, 논의한 트레이드오프 — 를 날리고 싶진 않죠. 이때 /fork 한 줄이면 됩니다.
이게 뭔데?
/fork는 현재 대화의 전체 히스토리를 복사해서 독립적인 새 세션을 만드는 명령어예요. 개념적으로는 Git의 git branch와 완전히 같아요. 원본 브랜치(대화)는 그대로 남고, 분기점부터 서로 다른 방향으로 진행할 수 있죠.
CLI에서는 --fork-session 플래그로도 같은 동작을 해요. 기존 세션을 --resume이나 --continue로 불러온 뒤 --fork-session을 붙이면, 그 시점까지의 대화 히스토리를 가진 완전히 새로운 세션 ID가 생성돼요.
핵심 비유
--continue = 같은 노트북에 이어서 쓰기 (세션 ID 동일)--fork-session = 노트북을 복사해서 새 것에 쓰기 (세션 ID 다름, 내용 동일)
공식 문서에 따르면, 포크된 세션은 원본 세션의 권한 설정(session-scoped permissions)을 상속하지 않아요. 보안 관점에서 의도적인 설계예요. 새 세션에서 민감한 작업을 할 때 다시 한번 확인받겠다는 거죠.
뭐가 달라지는 건데?
Claude Code에서 "다른 접근법을 시도해보고 싶다"는 상황은 생각보다 자주 옵니다. 지금까지는 두 가지 선택지뿐이었어요. 새 세션을 열어서 처음부터 다시 컨텍스트를 쌓거나, 현재 세션에서 그냥 밀고 나가거나. 둘 다 비용이 크죠.
| 새 세션 시작 | /rewind 사용 | /fork 사용 | |
|---|---|---|---|
| 기존 컨텍스트 | 전부 소실 | 부분 롤백 | 전체 보존 |
| 원본 세션 | 별도 유지 | 되돌려짐 | 완전히 보존 |
| 실험 안전성 | 안전 (격리) | 위험 (되돌리기 어려움) | 안전 (격리 + 원본 보존) |
| 토큰 비용 | 높음 (재구축) | 낮음 | 중간 (히스토리 복사) |
| A/B 비교 | 어려움 | 불가 | 자연스러움 |
Trigger.dev 블로그에서 소개한 "Context Pre-Warming" 패턴이 이 차이를 잘 보여줘요. 아키텍처 문서, API 규격, 코딩 컨벤션 등 4만 토큰 이상의 헤비 컨텍스트를 마스터 세션에 한 번 로드한 뒤, 각 피처 작업마다 포크해서 쓰는 거예요. 매번 컨텍스트를 재구축하는 비용을 완전히 없앨 수 있어요.
핵심만 정리: 시작하는 법
- 마스터 세션 만들기
Claude Code를 실행하고, 프로젝트의 핵심 컨텍스트를 충분히 로드하세요. 아키텍처 문서를 읽히고, 주요 파일을 탐색하게 하고, 코딩 규칙을 설정하세요. 그리고/rename master-context로 이름을 붙여두세요. - 인터랙티브 포크: /fork
세션 안에서/fork refactor-attempt처럼 이름을 붙여서 포크하세요. 원본 대화는 그대로 남고, 포크된 세션에서 자유롭게 실험할 수 있어요. - CLI 포크: --fork-session
claude --resume master-context --fork-session으로 터미널에서 바로 포크할 수 있어요. 새 터미널 탭을 열어서 같은 마스터를 여러 번 포크하면 병렬 실험이 가능해요. - 결과 비교 후 선택
각 포크에서 다른 접근법을 시도한 뒤, 결과를 비교하세요. 마음에 드는 방향의 세션을 이어가면 돼요. 나머지는 버리면 끝이에요.
주의: 같은 세션 동시 사용 금지
같은 세션 ID를 여러 터미널에서 --resume하면, 양쪽의 메시지가 뒤섞여요. 나중에 resume했을 때 대화가 엉망이 됩니다. 병렬 작업이 필요하면 반드시 --fork-session을 쓰세요.
실전 활용 패턴
커뮤니티에서 실제로 쓰이는 /fork 활용 패턴을 정리했어요.
패턴 1: 구현 A/B 테스트
같은 마스터 세션을 두 번 포크하고, 각각 다른 구현 방식을 시도해요. 예를 들어 한쪽은 Redis 캐싱으로, 다른 쪽은 인메모리 캐싱으로 구현해본 뒤 성능을 비교하는 식이에요. 컨텍스트가 동일하니 차이가 순수하게 접근법에서만 나와요.
패턴 2: 리뷰 대응 세션 복원
PR을 만든 세션을 포크해서 리뷰 코멘트에 대응하면, 원래 코드를 작성할 때의 모든 맥락 — 왜 그런 결정을 내렸는지, 어떤 대안을 검토했는지 — 을 그대로 유지한 채 수정할 수 있어요.
패턴 3: 스킬의 context: fork
Claude Code Skills에서 context: fork 프론트매터를 설정하면, 해당 스킬이 독립된 서브에이전트 컨텍스트에서 실행돼요. 메인 대화를 어지럽히지 않으면서도 복잡한 분석 작업을 수행할 수 있어요.
/fork vs /btw vs /rewind — 언제 뭘 쓸까?
• 흐름 안 끊고 가벼운 질문 → /btw (히스토리에 안 남음)
• 다른 접근법 실험 → /fork (원본 보존, 새 세션 생성)
• 방금 한 걸 되돌리기 → /rewind (현재 세션에서 롤백)



