세 개의 AI 에이전트를 같은 레포에 동시에 풀었더니, 30초 만에 셋 다 src/main.rs를 손댔다. 이 한 문장이 지금 우리가 직면한 멀티 에이전트 워크플로우의 핵심 문제를 정확히 찌른다. 에이전트가 하나일 때는 '어떻게 잘 쓸까'가 질문이었다면, 여러 개를 동시에 돌리는 순간 질문이 바뀐다. 어떻게 서로 충돌하지 않게 격리할 것인가. 최근 세 편의 실전 레포트가 이 질문에 각기 다른 층위에서 답을 내놓고 있다.
1층: 파일시스템 격리 — Git Worktrees
dev.to의 'Git Worktrees Changed How I Run Parallel AI Agents'는 2015년부터 git에 존재했지만 대부분의 개발자가 모르고 지나쳤던 git worktree 명령을 재조명한다. 아이디어는 단순하다. 같은 .git 디렉토리를 공유하되, 각 에이전트마다 별도의 파일시스템 경로와 브랜치를 부여하는 것. 클론도 아니고 원격 연결도 추가되지 않는다. 그냥 다른 폴더에 다른 브랜치가 체크아웃될 뿐이다.
여기서 실전에서 놓치기 쉬운 포인트가 있다. 태스크마다 worktree를 생성·삭제하는 '직관적인' 방식은 사실 느리고 비효율적이다. node_modules나 target 같은 빌드 산출물까지 매번 복사하기 때문이다. 대신 에이전트당 persistent worktree를 하나씩 고정해 두고, 태스크 사이에 브랜치만 교체하는 패턴이 훨씬 낫다. 브랜치 스위치는 레포 크기와 무관하게 즉각적이고, 빌드 캐시도 태스크 간에 살아남는다.
또 하나 간과하기 쉬운 이점이 있다. 격리의 진짜 가치는 파일 충돌 방지에만 있지 않다. 각 에이전트의 테스트가 완전히 독립된 베이스라인 위에서 돌아간다는 것. 에이전트 2의 테스트가 실패하면, 그건 명확히 에이전트 2의 코드 문제다. 나머지 에이전트는 계속 작업한다. 그리고 머지 시점에는 병렬 머지 대신 락 파일 기반의 직렬 머지 + rebase 패턴으로 충돌을 원천 차단한다.
2층: 팀 문화 이식 — Claude Code Custom Skills
격리 문제를 풀었다면, 다음 질문은 '에이전트가 우리 팀의 방식으로 일하게 할 수 있는가'다. dev.to의 'How to Build Custom Claude Code Skills That Actually Work'는 이 문제를 정면으로 다룬다. Claude Code는 범용 코딩 태스크에는 탁월하지만, 팀 고유의 디버깅 런북이나 PR 리뷰 체크리스트 같은 컨텍스트 특화 워크플로우는 그냥 줘서는 따라오지 않는다.
Custom Skills는 .claude/skills/ 디렉토리에 마크다운 파일로 저장하는 슬래시 커맨드다. 구조 자체는 단순하지만, 실제로 작동하는 스킬을 만들려면 세 가지를 지켜야 한다. 첫째, 명령형 언어를 써야 한다. "Try to"가 아니라 "You MUST". 둘째, 도구 사용 순서·출력 포맷·엣지 케이스를 번호 붙인 스텝으로 명시해야 한다. 셋째, 에이전트가 언제 멈추고 사람에게 물어봐야 하는지 이스케이프 조건을 넣어야 한다. 첫 버전이 항상 너무 모호하다는 게 저자의 경험담이다.
그리고 이 스킬 디렉토리를 git에 커밋하는 순간, 이건 단순한 개인 설정이 아니라 팀의 AI 워크플로우 표준이 된다. 프롬프트 버전이 팀원마다 제각각으로 흘러가는 문제, 새 팀원이 어떤 프롬프트를 써야 할지 모르는 문제가 코드 리뷰와 같은 방식으로 관리된다. 프롬프트를 코드처럼 다뤄야 한다는 명제가 실제로 구현되는 지점이다.
3층: 제어 플레인 — 에이전트 목동의 필요성
Worktree로 격리하고, 스킬로 팀 문화를 이식해도 남는 문제가 있다. 여러 세션과 레포를 넘나드는 혼란 자체다. dev.to의 'AI Agents broke my Dev setup'은 이 혼돈을 가장 솔직하게 털어놓는다. 저자는 완벽하게 최적화된 3스크린 셋업을 갖추고 있었다. 그런데 에이전트를 병렬로 돌리기 시작하자 엉뚱한 세션에 프롬프트를 보내고, 어느 포트가 어느 브랜치를 돌리는지 파악이 안 되는 상황이 반복됐다.
Spec-Driven Development가 이론적 답을 주긴 했지만, 실제 도구들은 너무 느리고 투박했다. 그래서 나온 것이 Shep — '에이전트 무리를 이끄는 목동'이라는 컨셉의 로컬 CLI 도구다. npx @shepai/cli 한 줄로 실행되고, PRD 작성부터 리서치·계획·코딩·테스트·PR 생성·CI 루프까지 전체 라이프사이클을 하나의 흐름으로 묶는다. Claude, Cursor, Gemini, Codex를 모두 지원하고 MIT 라이선스로 공개돼 있다.
시사점: 추상이 아닌 구조의 문제
세 레포트를 관통하는 공통 메시지가 있다. 에이전트를 더 많이 쓰는 것이 문제가 아니라, 어떻게 구조화하느냐가 문제라는 것. Worktree는 파일시스템 층위의 격리를, Custom Skills는 워크플로우 지식의 패키징을, Shep 같은 제어 플레인은 컨텍스트 전환 비용을 각각 다룬다. 이 세 층위 중 하나라도 빠지면 병렬 에이전트는 생산성 도구가 아니라 혼란의 증폭기가 된다.
프론트엔드 개발자 관점에서 특히 주목할 건 Custom Skills의 git 통합이다. .claude/skills/ 디렉토리를 레포에 넣는 순간, AI 에이전트의 행동 방식이 코드베이스와 함께 버전 관리되는 팀 자산이 된다. 컴포넌트 설계 가이드, 접근성 체크리스트, 성능 감사 런북을 스킬로 만들어두면, 에이전트는 매번 새로 가르칠 필요 없이 팀 표준을 따라 동작한다. 이건 단순한 자동화가 아니라 팀의 암묵지를 명시지로 전환하는 과정이다.
전망: 워크플로우 설계가 실력이 되는 시대
앞으로 에이전트 병렬 실행은 예외가 아니라 기본값이 될 가능성이 높다. 그때 병목은 모델의 성능이 아니라 에이전트를 조율하는 구조의 품질이 될 것이다. Git Worktrees처럼 이미 존재하지만 활용되지 않던 도구, Custom Skills처럼 팀 지식을 이식하는 방법, Shep처럼 전체 라이프사이클을 감싸는 제어 플레인—이 세 가지를 조합하고 팀 맥락에 맞게 설계하는 능력이, 에이전트 시대의 시니어 개발자를 가르는 기준이 될 것이다.