오케스트레이션

워크트리 격리로 에이전트 충돌 없이 병렬 작업하기

여러 에이전트가 같은 저장소를 동시에 만지면 서로의 변경을 밟습니다. git worktree 격리로 병렬 작업을 안전하게 만드는 법.

문제부터

여러 에이전트를 병렬로 굴릴 때 가장 흔한 사고는 같은 작업 트리를 공유해서 생기는 충돌입니다. 한 에이전트가 파일을 고치는 사이 다른 에이전트가 브랜치를 바꾸거나 같은 파일을 덮으면, 커밋 안 된 작업이 조용히 사라집니다.

해법: git worktree

git worktree는 하나의 저장소에서 여러 작업 디렉터리를 만들어 각기 다른 브랜치를 체크아웃하게 합니다. 에이전트마다 독립된 워크트리를 주면, 서로의 파일을 밟지 않고 병렬로 일할 수 있습니다.

git worktree add ../agent-a feature/agent-a
git worktree add ../agent-b feature/agent-b

각 워크트리는 자기 브랜치·자기 파일 상태를 가지므로, A의 미완성 변경이 B에게 보이지 않습니다.

언제 격리하나

  • 두 에이전트가 같은 파일·모듈을 만질 가능성이 있을 때.
  • 위험한 리팩터링을 본체와 분리해 시험할 때.
  • 실패해도 메인 작업 공간을 오염시키지 않아야 할 때.

반대로, 서로 다른 파일만 만지는 게 확실하면 격리는 과할 수 있습니다 — 격리에는 디스크·설정 비용이 따릅니다.

병합할 때

각 워크트리에서 자주 커밋하고, 작업이 끝나면 PR로 통합합니다. 변경 안 한 워크트리는 정리합니다.

마블로에서

마블로는 필요할 때 에이전트를 격리된 워크트리에서 스폰해, 병렬 작업이 서로 충돌하지 않도록 합니다. 통제 가능한 병렬성 — 격리는 그 토대입니다.

댓글

댓글 기능은 곧 제공됩니다.