DaleSchool

Worktree로 격리 개발

고급20분

학습 목표

  • claude -w로 격리된 worktree에서 작업할 수 있다
  • 여러 worktree를 활용한 병렬 개발 패턴을 이해한다
  • Teleport로 로컬과 웹 세션을 전환할 수 있다

동작하는 코드

claude -w 명령어로 격리된 worktree에서 작업해봅시다:

cd my-project
claude -w

Claude Code가 별도의 git worktree를 자동으로 생성하고 그 안에서 작업합니다. 메인 작업 디렉토리의 코드는 전혀 영향을 받지 않습니다.

> 이 프로젝트의 인증 시스템을 JWT에서 세션 기반으로 바꿔봐.
> 실험적으로 해보는 거니까 과감하게 변경해도 돼.

실험이 끝나면:

  • 마음에 들면 변경 사항을 메인 브랜치로 머지합니다.
  • 마음에 안 들면 worktree를 삭제하면 됩니다. 메인 코드는 깨끗합니다.

직접 수정하기

여러 터미널에서 동시에 worktree를 활용해봅시다:

터미널 1 — 메인 작업:

cd my-project
claude
> 사용자 목록 API를 구현해줘

터미널 2 — 격리된 실험:

cd my-project
claude -w
> DB 스키마를 완전히 재설계해봐. 정규화를 풀어서 읽기 성능을 최적화해줘.

터미널 1의 작업은 안전하게 진행되고, 터미널 2의 과감한 실험은 격리된 환경에서 이루어집니다.

"왜?" — 실험에는 안전망이 필요하다

개발에서 가장 위험한 순간은 "이거 한번 해볼까?" 하는 때입니다. 큰 리팩토링, 아키텍처 변경, 새로운 라이브러리 시도 — 메인 코드에서 직접 하면 되돌리기 어렵습니다.

Worktree의 장점

| 방식 | 문제점 | Worktree | | ------------------ | -------------------- | -------------------------- | | 메인에서 직접 실험 | 코드 오염 위험 | 격리된 복사본에서 작업 | | git stash | 작업 전환이 번거로움 | 동시에 여러 작업 가능 | | 새 브랜치 | 파일 시스템은 공유 | 물리적으로 분리된 디렉토리 |

Teleport: 로컬과 웹을 넘나들기

Teleport는 터미널의 Claude Code 세션을 웹(claude.ai/code)으로 전송하거나, 반대로 웹 세션을 로컬로 가져오는 기능입니다:

> /teleport

로컬 세션의 컨텍스트가 웹으로 전송됩니다. 데스크톱을 떠나서 브라우저에서 이어 작업할 수 있습니다.

반대 방향:

claude --teleport

웹에서 작업하던 세션을 로컬 터미널로 가져옵니다.

활용 시나리오:

  • 회사 컴퓨터(터미널)에서 시작한 작업을 집(웹 브라우저)에서 이어하기
  • 모바일에서 웹으로 간단히 확인한 뒤 데스크톱에서 본격 작업

병렬 개발 패턴

터미널 1: claude        → 메인 기능 구현 (안정적)
터미널 2: claude -w     → 실험적 리팩토링 (격리)
터미널 3: claude -w     → 성능 최적화 시도 (격리)

각 worktree는 독립적인 git 상태를 가지므로 충돌 없이 동시 작업이 가능합니다.

심화 학습

worktree는 git branch와 뭐가 다른가요?

git branch는 논리적 분기이고, worktree는 물리적 분기입니다.

  • branch: 같은 디렉토리에서 브랜치를 전환하면 파일이 바뀝니다. 한 번에 하나의 브랜치만 활성.
  • worktree: 별도의 디렉토리에 브랜치를 체크아웃합니다. 여러 브랜치를 동시에 활성 상태로 유지.

claude -w는 이 git worktree를 자동으로 생성하고 관리해줍니다.

  1. claude -w로 격리된 환경에서 과감한 리팩토링을 시도해보세요. 메인 코드가 영향을 받지 않는지 확인하세요.
  2. 두 터미널에서 하나는 claude, 하나는 claude -w로 동시에 작업해보세요.
  3. /teleport로 세션을 웹으로 전환해보세요 (claude.ai/code 접속 필요).

Q1. claude -w 명령어의 역할은?

  • A) 웹 브라우저에서 Claude Code를 실행한다
  • B) 격리된 git worktree에서 Claude Code를 실행한다
  • C) Windows 모드로 실행한다
  • D) 읽기 전용 모드로 실행한다

참고 자료