AI 에이전트 시대의 작업 공간 분리와 Git 2.5의 재발견
AI 에이전트로 기능을 개발하다가 운영 서버 핫픽스 요청으로 브랜치를 전환하면, 에이전트가 20분 넘게 코드베이스를 읽고 쌓아온 작업 맥락이 초기화된다. 다시 원래 브랜치로 돌아와도 상황을 재설명하고 맥락을 잡는 데 10분 이상의 시간이 추가로 낭비된다. 만약 한 디렉토리에서 두 개의 에이전트를 동시에 돌리면 package.json 같은 파일을 동시에 수정하며 서로의 작업물을 덮어쓰는 충돌이 발생한다. 이러한 문제는 도구의 성능이 아니라 브랜치 전환 시 작업 공간이 하나뿐인 구조에서 발생하며, 이를 해결하는 도구가 Git Worktree(깃 워크트리)다.
전문 개발자의 51%가 AI 도구를 매일 사용할 정도로 도입률은 높지만, AI 에이전트를 통해 팀 협업 개선을 체감하는 비율은 17%에 불과하다. 이는 AI 모델의 지능 문제가 아니라 에이전트가 안정적으로 작업할 수 있는 독립적인 환경을 제공하는 워크플로의 부재 때문이다. 많은 팀이 AI 에이전트를 도입하고도 에이전트별로 독립된 폴더를 할당하는 물리적 작업 공간 분리를 간과하고 있다.
Git Worktree는 2015년 Git 2.5 버전부터 도입된 기능으로, 하나의 .git 폴더를 공유하면서 물리적으로 분리된 여러 작업 디렉토리를 동시에 운영하게 해준다. 각 AI 에이전트에게 독립된 작업 공간을 할당하면 브랜치를 전환할 필요 없이 여러 기능을 동시에 개발할 수 있다. 핫픽스 전용 공간과 기능 개발 전용 공간이 파일 시스템 수준에서 나뉘어 있어, 에이전트들이 서로의 파일을 수정하거나 작업 상태를 간섭하는 일이 차단된다.
이제 개발자는 직접 코드를 작성하는 실무자에서 AI 에이전트들을 관리하는 팀장 체제로 전환해야 한다. AI 에이전트마다 독립된 VS Code 창과 전용 컨텍스트 파일을 할당하는 구조를 갖추면 컨텍스트 스위칭 비용을 제거할 수 있다. 물리적으로 분리된 디렉토리를 통해 여러 AI 에이전트가 병렬로 작업을 수행하게 만드는 것이 AI 시대의 실무 워크플로다.
7가지 명령어로 구축하는 독립 작업 공간
Git 2.5 버전 이상의 환경에서 `git --version`으로 버전을 확인한 뒤 Worktree를 도입한다. `git worktree add` 명령어를 사용하면 하나의 저장소에서 브랜치별로 물리적인 폴더를 분리해 생성할 수 있다.
git worktree add ../myapp-feat-auth feat/auth이 외에도 현재 상태를 확인하는 `git worktree list`, 공간을 삭제하는 `git worktree remove`, 정리 작업을 수행하는 `git worktree prune`, 경로를 바꾸는 `git worktree move`, 그리고 작업 공간을 보호하는 `git worktree lock`과 `git worktree unlock`까지 총 7가지 명령어가 전체 관리 범위를 구성한다.
물리적 폴더가 분리되면 .env 파일이나 node_modules, 파이썬 가상환경 같은 Git 추적 제외 파일들이 자동으로 복사되지 않는다. 각 폴더마다 환경 변수를 설정하고 패키지를 새로 설치해야 하며, 이 과정에서 설정 파일이 누락되면 AI 에이전트는 런타임 에러를 일으키며 엉뚱한 코드를 생성한다.
반복되는 설정 비용을 줄이기 위해 브랜치 생성부터 의존성 설치까지 자동화하는 쉘 스크립트를 구축한다. create-worktree.sh 파일에 브랜치 생성, .env 복사, 패키지 설치 명령을 묶어 실행하면 독립된 작업 공간이 즉시 준비된다. 특히 `${BRANCH////-}` 같은 치환 문법을 사용해 `feat/auth` 같은 브랜치명을 `feat-auth`라는 폴더명으로 자동 변환한다.
bash
create-worktree.sh
#!/bin/bash
BRANCH=$1
DIR_NAME=${BRANCH////-}
git worktree add ../$DIR_NAME $BRANCH
cp .env ../$DIR_NAME/.env
cd ../$DIR_NAME && npm install
스크립트로 환경 구축 시간을 단축하면 개발자는 AI 에이전트마다 독립된 VS Code 창을 할당해 여러 기능을 동시에 개발하는 체제를 갖출 수 있다.
다중 클론 방식과 Git Worktree의 기술적 차이
실무자들은 여러 기능을 동시에 개발하거나 긴급 핫픽스를 처리하기 위해 저장소를 여러 번 복제하는 다중 클론 방식을 흔히 사용한다. 하지만 이 방식은 운영 비용과 동기화라는 병목을 만든다.
다중 클론 방식은 전체 저장소의 모든 데이터를 중복 복제하므로 디스크 공간을 과도하게 사용한다. 프로젝트 규모가 커질수록 복제 시간과 용량 부담이 증가하며, 클론 간에 Git 히스토리가 공유되지 않는다. 한쪽 클론에서 커밋을 수행해도 다른 클론에서는 이를 즉시 확인할 수 없으며, 매번 원격 저장소를 거쳐 pull과 push를 반복해야 하므로 작업 간의 연결성이 단절된다.
반면 Git Worktree는 단 하나의 .git 폴더를 중심에 두고 여러 작업 디렉토리를 연결한다. 모든 워크트리는 동일한 히스토리와 오브젝트, 커밋 정보를 공유하는 단일 Git 백엔드를 사용한다. 새 워크트리를 생성할 때 전체 저장소를 다시 복제하는 것이 아니라 현재 체크아웃된 파일들만 추가 공간에 배치하므로 디스크 낭비를 줄이고 Git 레이어에서의 동기화 비용을 제거한다.
물리적 분리는 각 워크트리가 독립된 인덱스와 작업 상태를 보유함으로써 완성된다. 예를 들어 `my-project-feat-auth/` 디렉토리에서 파일을 수정하는 AI 에이전트는 `my-project-feat-api/` 디렉토리의 상태를 알 수 없다. 이러한 격리 환경은 여러 AI 에이전트가 동시에 서로 다른 기능을 개발해도 파일 덮어쓰기나 충돌 없이 독립적인 컨텍스트를 유지하며 작업할 수 있는 기반이 된다.
MS 해커톤 2025가 증명한 '가상 AI 개발팀' 모델
Microsoft Global Hackathon 2025에서 엔지니어링 리드 Tamir Dresher는 이 방식을 통해 가상 AI 개발팀 모델을 구현했다. 그는 하나의 기능 단위로 하나의 Worktree를 생성하고, 이를 각각 독립된 VS Code 창에 할당한 뒤, 창마다 하나의 AI 에이전트를 배치했다.
이렇게 하면 에이전트 1이 인증 기능을 수정하는 동안 에이전트 2는 API 최적화를 동시에 수행할 수 있다. 각 창의 언어 서버와 린터, 테스트 러너가 독립적으로 작동하므로 파일 충돌이나 설정 꼬임이 발생하지 않는다. AI 에이전트의 작업 맥락이 물리적 공간과 함께 유지되면서 컨텍스트 스위칭 비용이 사라진 것이다.
이 과정에서 인간 개발자의 역할은 직접 코드를 치는 작업자에서 전체 방향을 잡는 테크 리드로 전환된다. 개발자는 각 에이전트에게 작업 범위를 지정하고, 구현 중 막힌 부분을 가이드하며, 결과물을 검토하는 관리 업무에 집중한다. 에이전트가 작업을 마치면 개발자는 변경 사항인 Diff를 리뷰하고 승인한 뒤 풀 리퀘스트(PR)를 생성한다. 이는 숙련된 인간 엔지니어가 제출한 코드를 리뷰하고 병합하는 기존의 팀 협업 방식과 동일한 흐름이다.
Dresher는 이번 해커톤을 통해 AI 에이전트의 맥락 유지로 인한 스위칭 비용 제거, 병렬 개발을 통한 속도 가속화, 인간의 최종 검수를 통한 코드 품질 관리라는 세 가지 이점을 기록했다. 이제 개발자는 개별 함수 구현 대신, 분산된 AI 팀의 작업물을 어떻게 통합하고 검증할 것인지에 대한 판단 기준을 세우는 데 시간을 쓴다.
실무 적용을 위한 컨텍스트 설계와 Claude Code 최적화
ICSE 2026 연구 결과에 따르면 아키텍처 문서가 포함된 컨텍스트를 제공했을 때 AI 에이전트의 기능적 정확성과 코드 모듈성이 향상되었다. 시스템의 설계 의도와 구조적 제약 사항을 명시적으로 전달하는 것이 결과물의 품질을 결정한다. 이를 위해 프로젝트 루트 경로에 `AGENTS.md` 혹은 `CLAUDE.md` 파일을 배치하여 에이전트가 세션 시작 시 프로젝트의 전체 아키텍처와 작업 범위를 먼저 파악하게 한다.
컨텍스트 파일의 이름은 도구에 따라 결정된다. OpenAI Codex나 일반적인 에이전트는 `AGENTS.md`를, Claude Code는 `CLAUDE.md`를 참조한다. 파일 하단에 각 워크트리별로 할당된 구체적인 작업 범위를 명시하는 전용 섹션을 두는 것이 핵심이다. 새 워크트리를 생성한 후 에이전트를 실행하기 전, 현재 작업의 목표와 수정 금지 모듈을 짧게 기록하면 AI가 불필요한 리팩토링을 수행하며 컨텍스트를 낭비하는 현상을 막을 수 있다.
Claude Code는 워크트리 생성과 세션 시작을 한 번에 처리하는 전용 플래그를 제공한다.
claude --worktree이 명령어를 실행하면 `.claude/worktrees/feat-auth-redesign/`와 같은 경로에 독립된 공간을 자동으로 생성하고 `worktree-feat-auth-redesign` 브랜치에서 즉시 세션을 시작한다. 여기에 `.worktreeinclude` 파일을 추가하고 `.env`나 특정 설정 파일 목록을 적어두면, 새 워크트리가 생성될 때마다 지정된 파일들이 자동으로 복사되어 즉시 실행 가능한 상태가 된다.
브랜치를 전환하며 AI의 작업 맥락을 초기화하던 소모적인 과정은 이제 선택의 문제다. 물리적으로 분리된 워크트리에 독립된 VS Code 창을 할당하는 것만으로 개발자는 개별 구현자가 아닌 AI 팀의 결과물을 통합하고 검증하는 관리자의 위치로 올라선다. 오늘 바로 `create-worktree.sh` 스크립트를 설정해 AI 에이전트 간의 간섭이 없는 병렬 개발 환경을 구축해 보길 권한다. 결국 AI 에이전트에게 어떤 코드를 짜게 할 것인가보다, 그들이 효율적으로 움직일 물리적 환경을 어떻게 설계할 것인가가 실무자의 생산성을 결정한다.




