
나는 비개발자다. Claude Code로 프로덕트를 만들고 있지만, 개발 개념은 필요할 때마다 배운다. 오늘은 Threads에서 누군가 "Claude Code에서 Git Worktree는 어떤 상황에서 쓰나요?"라고 물었다. 답하려면 먼저 Branch부터 이해해야 했다.
코드는 폴더 하나에 있다. Git은 그 폴더의 버전을 관리한다.
main = 완성된 코드가 있는 곳. 실제 서비스에 배포되는 버전.
branch = "잠깐 복사본에서 작업할게"라는 것. main을 건드리지 않고 따로 작업하는 공간.
왜 브랜치를 쓰나? main에서 직접 작업하면 위험하다. 실수하면 바로 서비스가 망가지니까.
그래서:
1. main에서 브랜치를 만든다 (복사본 생성)
2. 브랜치에서 작업한다
3. 완성되면 main에 합친다 (merge)
4. 브랜치 삭제
비유하면, 원본 문서를 직접 고치지 않고 사본을 만들어서 수정한 다음, 확인 후 원본에 반영하는 것.
여기가 핵심이다.
브랜치가 여러 개 있어도 폴더는 하나다. 브랜치를 전환하면 그 폴더의 파일이 통째로 바뀐다.
main 브랜치 → 폴더에 완성된 코드가 보임
(전환)
feature 브랜치 → 같은 폴더인데 작업 중인 코드로 바뀜
문제는 feature 브랜치에서 작업 중인데 main의 긴급 버그를 고쳐야 할 때다. 작업 중인 걸 저장하고 → main으로 전환 → 버그 고치고 → 다시 feature로 전환. 번거롭고, 저장 안 한 게 날아갈 수도 있다.
Worktree = 물리적으로 폴더를 하나 더 만드는 것.
📁 내-프로젝트/ ← feature 브랜치 (작업 계속)
📁 내-프로젝트-hotfix/ ← main 브랜치 (버그 수정)
두 폴더가 동시에 존재하니까 전환할 필요가 없다. 각각 다른 브랜치를 열어둔 채로 동시에 작업 가능.
Claude Code에서는 에이전트를 여러 개 병렬로 돌릴 때도 쓴다. 같은 폴더에서 두 에이전트가 동시에 작업하면 같은 파일을 동시에 수정해서 충돌이 난다. Worktree로 폴더를 나누면 각자 독립적으로 일할 수 있다.
주방 비유로 정리하면:
주방이 하나인데 요리사 두 명이 동시에 쓰면 부딪힌다. 주방을 두 개 만들면 각자 요리할 수 있다.
나는 1인 프로젝트라 아직 Worktree를 쓸 일이 없었다. 하지만 개념을 이해하니까 "언제 쓸 수 있을지"가 보인다. 디자인 수정하면서 동시에 새 챕터를 쓰고 싶을 때, 그때가 Worktree를 꺼낼 타이밍이다.
비개발자도 AI 코딩 도구를 쓰다 보면 이런 개념이 하나씩 필요해진다. 필요할 때 배우면 된다.
이 글은 Claude Code 플레이북을 만들면서 배운 것을 비개발자 시점으로 정리한 시리즈입니다.