Programming/AI Agent

Claude - Worktree로 병렬 개발하기

JaeHoney 2026. 5. 3. 10:41
Git Worktree

Git worktree는 하나의 저장소에서 여러 개의 작업 디렉토리를 동시에 관리할 수 있는 기능이다.

일반적으로 브랜치를 전환할 때 기존 작업을 stash하거나 커밋해야 하는 번거로움이 있는데, Git worktree를 사용하면 이를 해결할 수 있다.

Worktree의 장점

워크트리를 사용하면 아래의 장점이 생긴다.

  1. 병렬 작업 - 여러 기능을 동시에 개발할 수 있다. 예를 들어 feature/auth 브랜치와 bugfix/login 브랜치를 동시에 작업할 수 있다.
  2. 빠른 브랜치 전환 - 물리적으로 다른 디렉토리에 있으므로 instant switching이 가능하다.
  3. 깔끔한 작업 공간 - 각 작업마다 독립된 디렉토리를 유지하므로 혼동이 적다.
  4. 컨텍스트 보존 - 각 worktree는 독립된 상태를 유지하므로 작업 중인 내용이 섞이지 않는다.

주요 명령어

# 새로운 worktree 생성 (브랜치가 이미 존재하는 경우)
git worktree add ../project-feature-auth feature/auth

# 새로운 worktree 생성 + 브랜치 동시 생성
git worktree add -b feature/auth ../project-feature-auth

# 기존 worktree 목록 조회
git worktree list

# worktree 삭제
git worktree remove ../project-feature-auth

# 정리 (이미 삭제된 디렉토리 참조 제거)
git worktree prune

예시: 긴급 버그 수정 + 신기능 개발

아래는 실제로 Git worktree를 사용하는 예시이다.

# 긴급 버그 수정용 worktree 생성
git worktree add -b hotfix/login-fix ../hotfix-login

# 신기능 개발용 worktree 생성
git worktree add -b feature/payment-gateway ../feature-payment

# 터미널 1: 버그 수정
cd ../hotfix-login
# 버그 수정 작업...
git commit -m "fix: 로그인 버그 수정"

# 터미널 2: 신기능 개발 (동시에)
cd ../feature-payment
# 신기능 개발 작업...

두 가지 작업을 동시에 진행하면서도 각 작업의 컨텍스트를 완전히 분리할 수 있다.

Worktree vs Branch Switching

측면 Worktree Branch Switching
컨텍스트 유지 ✅ 완전 유지 ❌ stash 필요
동시 작업 ✅ 가능 ❌ 불가능
디스크 사용 추가 사용 ✅ 동일

정리

Worktree는 특히 다음과 같은 상황에서 유용하다:

  • 긴급한 버그 수정이 필요할 때
  • 여러 기능 브랜치를 동시에 작업할 때
  • 코드 리뷰를 위해 특정 브랜치를 별도 환경에서 확인할 때
  • 시간이 오래걸리는 리팩토링 작업과 기능 개발을 병행할 때

Claude Code + Worktree

동일 Repository 내에서 여러 작업을 Claude Code를 활용해서 동시에 진행해야 하는 경우가 있다. Claude Code는 --worktree 플래그를 통해 worktree 생성과 Claude 실행을 한 번에 처리한다.

claude --worktree feature/payment

이 명령어 하나로 브랜치 생성, git worktree 설정, 해당 worktree에서 Claude Code 실행까지 자동으로 처리된다. 수동으로 git worktree add 하고 cd해서 claude 실행할 필요가 없다.

실전 워크플로우

# 터미널 1: 긴급 버그 수정
claude --worktree hotfix/security-patch

# 터미널 2: 신기능 개발 (동시에)
claude --worktree feature/user-dashboard
터미널 1                          터미널 2
┌─────────────────────────┐       ┌─────────────────────────┐
│ claude --worktree       │       │ claude --worktree       │
│   hotfix/security-patch │       │   feature/user-dashboard│
│                         │       │                         │
│ > 보안 취약점 수정해줘       │       │ > 대시보드 컴포넌트 만들어    │
└─────────────────────────┘       └─────────────────────────┘

각 Claude 인스턴스는 자신의 worktree 브랜치와 파일 구조만 인식하므로, 서로 간섭 없이 완전히 독립적으로 작동한다.

node_modules 중복 방지

--worktree로 새 worktree를 만들면 node_modules 같은 대용량 디렉토리가 복사되어 디스크를 낭비할 수 있다. CLAUDE.md 또는 .claude/settings.json에 symlink할 디렉토리를 지정하면 된다.

{
  "worktree": {
    "symlinkDirectories": ["node_modules", ".cache", ".venv"]
  }
}

이렇게 설정하면 worktree를 만들 때 해당 디렉토리는 복사하지 않고 메인 레포지토리의 것을 그대로 참조한다.

IntelliJ + Worktree

Worktree를 사용하면 IntelliJ와 같은 IDE에서 검색 시 해당 Worktree의 클래스들도 같이 검색이 되기에 불편할 수 있다.

그래서 Worktree는 별도의 경로에 생성하거나, IDE에서 Mark Directory as Excluded로 검색 및 인덱싱 대상에서 제외한다.

해당 Worktree의 내용을 IDE에서 보고싶을 때는 IntelliJ에서 해당 worktree 폴더를 별도로 열어서 작업할 수 있다.

참고

'Programming > AI Agent' 카테고리의 다른 글

Claude - Skills란 무엇인가? (Agent 잘 활용하기)  (0) 2026.03.28