LeanX

충돌 없이 병렬 개발 — 멀티 인스턴스와 git worktree

여러 클로드 인스턴스가 같은 폴더를 고치면 파일 충돌이 나므로, git worktree로 브랜치마다 별도의 작업 폴더를 만들면 하나의 저장소를 공유하면서 독립된 기능을 동시에 개발할 수 있습니다.

기능 두 개를 동시에 개발하고 싶을 때가 있습니다. 하나는 결제 버그를 잡고, 다른 하나는 새 랜딩 페이지를 만드는 식으로요. 클로드 코드 창을 두 개 띄우면 될 것 같지만, 같은 폴더에서 동시에 작업하면 서로의 변경이 뒤엉킵니다. 이 문제를 우아하게 푸는 것이 git worktree입니다.

왜 병렬로 개발하나

서로 관련 없는 작업은 순서대로 하나씩 끝내는 것보다 동시에 굴리는 편이 빠릅니다. 각 작업이 독립적이라면, 하나가 테스트를 돌리며 기다리는 동안 다른 하나는 코드를 작성할 수 있으니까요.

1단계: 여러 인스턴스 띄우기

가장 간단한 병렬화는 터미널 탭을 여러 개 열고 각 탭에서 클로드 코드를 실행하는 것입니다. 탭마다 이름과 색을 붙여 두면 헷갈리지 않습니다.

탭색맡는 일
프론트파랑UI 컴포넌트, 화면 작업
백엔드초록API, 서버 로직
DB주황스키마, 마이그레이션 검토
테스트회색테스트 작성·실행 감시

문제: 같은 폴더, 같은 파일 충돌

그런데 이 인스턴스들이 모두 같은 프로젝트 폴더를 보고 있으면 문제가 생깁니다. 프론트 탭이 App.tsx를 고치는 사이 백엔드 탭도 같은 파일을 건드리면, 서로의 수정이 덮어써지거나 뒤죽박죽이 됩니다. 한 문서를 두 사람이 각자 다른 버전으로 저장하는 것과 같습니다.

해결책: git worktree

git worktree는 하나의 저장소(.git)를 공유하면서, 브랜치마다 별도의 작업 폴더를 만들어 주는 기능입니다. 브랜치를 이리저리 체크아웃하며 바꿔 탈 필요 없이, 브랜치 A는 A폴더에서, 브랜치 B는 B폴더에서 동시에 작업할 수 있습니다. 커밋 이력과 리모트는 공유하되, 파일이 놓인 작업 폴더만 분리되는 것입니다.

하나의 저장소 + 여러 worktree

myproj/ (main 브랜치)

  • 클로드 #1이 작업
  • .git 원본이 위치한 메인 폴더

커밋 이력·리모트를 세 폴더가 공유

../myproj-payments/ (fix-payments)

  • 클로드 #2가 작업
  • 결제 수정 전용 작업 폴더

파일이 완전히 분리돼 서로 안 밟음

../myproj-landing/ (feature-landing)

  • 클로드 #3가 작업
  • 랜딩 페이지 전용 작업 폴더

나중에 합치기(merge)가 쉬움

작업 폴더는 나뉘지만 커밋 이력은 하나로 이어집니다.

worktree 만들고 각 폴더에서 클로드 실행

# 현재 프로젝트(myproj) 폴더에서 실행한다고 가정

# 결제 수정용 새 브랜치 + 별도 폴더 생성
git worktree add ../myproj-payments -b fix-payments

# 랜딩 페이지용 새 브랜치 + 별도 폴더 생성
git worktree add ../myproj-landing -b feature-landing

# 각 폴더로 가서 클로드 코드를 따로 실행
cd ../myproj-payments && claude   # 탭 2
cd ../myproj-landing  && claude   # 탭 3

# 현재 worktree 목록 확인
git worktree list

언제 worktree를 쓰고, 언제 안 쓰나

상황worktree이유
독립된 기능 2개 이상 동시 개발쓴다파일 충돌 없이 병렬 가능
위험한 실험(대규모 리팩토링)쓴다본체를 안 건드리고 격리
작은 수정 하나안 쓴다폴더 늘리는 오버헤드가 더 큼
서로 같은 파일을 고쳐야 하는 작업안 쓴다결국 머지 충돌, 순서대로가 나음

작업이 끝나 브랜치를 머지했다면 worktree를 정리하세요: git worktree remove ../myproj-payments. 폴더만 지우고 방치하면 목록이 지저분해지고, 나중에 git worktree prune으로 따로 청소해야 합니다.

worktree로 폴더를 나눠도 두 작업이 결국 같은 파일을 만지면 나중에 브랜치를 합칠 때 머지 충돌이 납니다. worktree는 '파일이 겹치지 않는 독립 기능'으로 나눌 때만 효과가 있습니다. 작업을 쪼갤 때 겹치는 파일이 없는지부터 확인하세요.

정리하면 병렬 개발의 핵심은 '작업을 독립적으로 쪼개고, 각자의 폴더를 주는 것'입니다. 멀티 인스턴스로 손을 늘리고 git worktree로 서로의 작업 공간을 분리하면, 클로드 코드 여러 대를 충돌 없이 한꺼번에 부릴 수 있습니다.