Git Worktree 없이 AI 코딩 세션을 병행해서 사용하는 방법

AI 코딩 도구를 사용하다 보면 하나의 프로젝트에서 여러 세션을 동시에 활용하고 싶어집니다. 예를 들어 Claude Code를 두 개 실행해서 하나는 UI를 수정하고, 다른 하나는 버그 원인을 분석하게 하는 식입니다.

이 방식은 잘 사용하면 생산성을 높일 수 있습니다. 하지만 아무 기준 없이 같은 프로젝트 폴더에서 여러 AI 세션이 동시에 파일을 수정하게 하면 문제가 생길 수 있습니다. 같은 파일을 동시에 고치거나, 한 세션의 미완성 변경사항을 다른 세션이 기준으로 삼는 상황이 생길 수 있기 때문입니다.

가장 안전한 방법은 Git worktree입니다. worktree 기반 병렬 작업은 이전 글인 바이브코딩에서 여러 AI 코딩 세션을 동시에 사용할 때 안전하게 작업하는 방법에서 정리했습니다.

하지만 worktree는 새 작업 폴더를 만들고, 브랜치를 관리하고, 작업 공간을 나누어야 하므로 부담스럽게 느껴질 수 있습니다. 그렇다면 Git worktree 없이도 여러 AI 코딩 세션을 병행해서 사용할 수 있을까요?

가능합니다. 다만 핵심은 여러 세션이 동시에 파일을 수정하지 않도록 통제하는 것입니다.

Git Worktree가 부담스러운 이유

Git worktree는 하나의 Git 저장소에서 여러 개의 작업 폴더를 만들어 각각 다른 브랜치로 작업할 수 있게 해주는 기능입니다.

예를 들면 다음과 같은 구조를 만들 수 있습니다.

project/
├── main/
├── wt-login-ui/
└── wt-header-fix/

각 폴더에서 별도 Claude Code 세션을 실행하면 서로의 파일 변경이 섞이지 않습니다. 병렬 작업에는 매우 안전한 방식입니다.

하지만 실제로는 다음과 같은 이유로 부담이 될 수 있습니다.

부담 요소설명
작업 폴더 증가프로젝트 폴더가 여러 개 생김
브랜치 관리 필요세션마다 브랜치를 나누어야 함
명령어가 익숙하지 않음git worktree add, remove, prune 등을 알아야 함
작은 프로젝트에는 과하게 느껴짐간단한 수정에는 절차가 무거울 수 있음
IDE 설정 반복각 작업 폴더에서 환경을 다시 확인해야 할 수 있음

따라서 모든 상황에서 worktree를 쓰는 것이 정답은 아닙니다. 특히 개인 프로젝트나 작은 수정 작업이라면 더 단순한 방식이 현실적일 수 있습니다.

핵심 원칙: 병행하되, 동시에 수정하지 않는다

Git worktree 없이 여러 AI 세션을 사용할 때 가장 중요한 원칙은 다음입니다.

여러 세션을 병행해서 사용할 수는 있지만, 실제 파일 수정 권한은 한 번에 하나의 세션에만 준다.

즉, 세션을 여러 개 실행하더라도 모든 세션이 동시에 코드를 고치게 하면 안 됩니다.

대신 역할을 나누는 것이 좋습니다.

세션역할파일 수정 여부
세션 1코드 분석수정 금지
세션 2실제 구현수정 허용
세션 3리뷰 및 테스트 제안수정 금지

이렇게 하면 여러 AI 세션을 활용하면서도 Git 상태가 복잡하게 섞이는 것을 줄일 수 있습니다.

분석 세션, 구현 세션, 리뷰 세션으로 나누기

Git worktree 없이 병행 작업을 하고 싶다면, 세션별 역할을 분리하는 방식이 가장 안전합니다.

분석 세션

분석 세션은 코드를 직접 수정하지 않습니다. 대신 문제 원인을 찾고, 어떤 파일을 수정해야 하는지, 어떤 방식이 안전한지 제안합니다.

예를 들어 다음과 같이 지시할 수 있습니다.

이 세션에서는 파일을 수정하지 마세요.
현재 코드 구조를 분석하고, 문제 원인과 수정 후보만 제안하세요.
수정이 필요한 파일 목록, 예상 영향 범위, 리스크를 정리하세요.

분석 세션의 목적은 “무엇을 고칠지”를 정하는 것입니다.

구현 세션

구현 세션은 실제로 파일을 수정하는 세션입니다. 단, 분석 세션이 제안한 범위 안에서만 수정하도록 제한합니다.

예시는 다음과 같습니다.

이 세션에서만 실제 파일을 수정합니다.
아래 분석 결과를 바탕으로 최소 변경만 수행하세요.

수정 가능 파일:
- src/components/LoginForm.tsx
- src/pages/Login.tsx

수정 금지:
- package.json
- lock file
- global.css
- routing
- shared API client
- 관련 없는 컴포넌트

수정 후 변경 파일과 주요 변경 내용을 요약하세요.

구현 세션의 목적은 정해진 범위 안에서 최소한으로 고치는 것입니다.

리뷰 세션

리뷰 세션은 구현이 끝난 뒤 변경사항을 검토합니다. 이 세션도 직접 수정하지 않게 하는 것이 좋습니다.

예시는 다음과 같습니다.

이 세션에서는 파일을 수정하지 마세요.
현재 변경사항을 리뷰만 하세요.

확인할 항목:
- 의도하지 않은 파일이 수정되었는지
- 기존 기능이 깨질 가능성이 있는지
- 더 단순한 구현 방법이 있는지
- 테스트가 필요한 부분은 어디인지

수정 제안만 하고 실제 변경은 하지 마세요.

리뷰 세션의 목적은 수정 결과가 안전한지 확인하는 것입니다.

같은 폴더에서 동시에 두 세션을 실행해도 되는 경우

원칙적으로 같은 프로젝트 폴더에서 두 개 이상의 Claude Code 세션이 동시에 파일을 수정하는 것은 권장하지 않습니다.

다만 다음 조건을 만족한다면 제한적으로 사용할 수 있습니다.

  1. 각 세션의 수정 파일이 명확히 다르다.
  2. 공통 파일을 수정하지 않는다.
  3. package.json, global.css, routing, 설정 파일을 건드리지 않는다.
  4. 각 세션이 수정 가능한 파일 목록을 명확히 알고 있다.
  5. 작업 후 반드시 git diff를 확인한다.

예를 들어 아래와 같은 병행 작업은 비교적 안전합니다.

세션작업수정 가능 파일
세션 A로그인 문구 수정src/pages/Login.tsx
세션 BREADME 정리README.md
세션 C버튼 테스트 코드 추가src/components/Button.test.tsx

반대로 아래와 같은 작업은 위험합니다.

세션작업위험한 이유
세션 A전체 UI 리팩토링수정 범위가 너무 넓음
세션 B공통 Button 수정여러 화면에 영향
세션 CTailwind 설정 수정전체 스타일에 영향
세션 Dpackage 업데이트lock file 충돌 가능성 높음

즉, worktree 없이 같은 폴더에서 병행 작업을 하려면 파일 소유권을 명확히 해야 합니다.

수정 금지 파일을 정해두기

AI 코딩 세션을 병행할 때는 특히 다음 파일들을 조심해야 합니다.

package.json
package-lock.json
pnpm-lock.yaml
yarn.lock
vite.config.ts
next.config.js
tailwind.config.js
tsconfig.json
src/router/*
src/store/*
src/api/*
src/styles/global.css

이 파일들은 프로젝트 전체에 영향을 줄 가능성이 높습니다.

예를 들어 package.json이 바뀌면 의존성 문제가 생길 수 있고, global.css가 바뀌면 여러 페이지의 UI가 동시에 영향을 받을 수 있습니다. tailwind.config.jsvite.config.ts 역시 프로젝트 전체 빌드와 스타일에 영향을 줍니다.

따라서 병행 세션에서는 이런 파일을 기본적으로 수정 금지로 두는 것이 좋습니다. 공통 파일을 수정해야 한다면 해당 작업은 별도로 분리해서 하나의 세션에서만 처리하는 것이 안전합니다.

Worktree 없이 사용할 수 있는 간단한 워크플로우

Git worktree를 쓰지 않는다면 아래 흐름이 가장 현실적입니다.

  1. 먼저 작업을 작은 단위로 나눈다.
  2. 각 작업의 수정 예상 파일을 정리한다.
  3. 충돌 가능성이 낮은 작업부터 선택한다.
  4. 분석 세션은 수정 없이 원인과 방향만 제안한다.
  5. 구현 세션 하나만 실제 파일을 수정한다.
  6. 수정 후 git diff를 확인한다.
  7. 문제가 없으면 commit한다.
  8. 다음 작업을 진행한다.

실제 예시는 다음과 같습니다.

1단계: Claude에게 작업을 나누게 한다.
2단계: 충돌 가능성이 낮은 작업을 고른다.
3단계: 구현 세션에 수정 가능 파일을 제한한다.
4단계: 수정 결과를 diff로 확인한다.
5단계: commit한다.
6단계: 다음 작업을 반복한다.

이 방식은 완전한 병렬 개발은 아니지만, AI 세션을 여러 개 활용하면서도 변경사항이 뒤섞이는 위험을 줄일 수 있습니다.

작업을 먼저 나누는 프롬프트

가장 먼저 사용할 수 있는 프롬프트는 다음과 같습니다.

이 프로젝트를 수정하기 전에 먼저 작업을 작은 단위로 나누어 주세요.
각 작업에 대해 아래 항목을 표로 정리하세요.

- 작업명
- 예상 수정 파일
- 충돌 가능성: 낮음 / 중간 / 높음
- 선행 작업 여부
- 병행 작업 가능 여부

아직 파일은 수정하지 마세요.

이 프롬프트의 목적은 곧바로 코드를 고치는 것이 아니라, 어떤 작업을 어떤 순서로 처리할지 정하는 것입니다.

예상 결과는 다음과 같은 형태가 됩니다.

작업예상 수정 파일충돌 가능성병행 가능 여부
README 실행 방법 정리README.md낮음가능
LoginForm 문구 수정LoginForm.tsx낮음가능
Header 모바일 메뉴 수정Header.tsx, Header.css중간제한적 가능
전역 스타일 정리global.css높음비추천

이렇게 먼저 나누어두면 AI에게 무작정 “전체를 개선해줘”라고 지시하는 것보다 훨씬 안전합니다.

단일 작업 실행 프롬프트

작업을 하나 골랐다면 구현 세션에는 아래처럼 지시합니다.

아래 작업만 수행하세요.

작업:
[작업 내용 입력]

수정 가능 파일:
[파일 목록 입력]

수정 금지:
- package.json
- lock file
- global.css
- routing
- shared API client
- 관련 없는 컴포넌트

작업 방식:
1. 관련 파일을 먼저 확인하세요.
2. 최소 변경으로 수정하세요.
3. 수정 후 변경 파일 목록을 요약하세요.
4. 테스트 또는 빌드 명령어가 있으면 실행하세요.

예시는 다음과 같습니다.

아래 작업만 수행하세요.

작업:
로그인 화면의 validation 메시지를 더 명확하게 수정하세요.

수정 가능 파일:
- src/components/LoginForm.tsx

수정 금지:
- package.json
- lock file
- global.css
- routing
- shared API client
- 관련 없는 컴포넌트

작업 방식:
1. 관련 파일을 먼저 확인하세요.
2. 최소 변경으로 수정하세요.
3. 수정 후 변경 파일 목록을 요약하세요.
4. 테스트 또는 빌드 명령어가 있으면 실행하세요.

핵심은 “이것만 수정하라”는 경계를 명확히 주는 것입니다.

리뷰 전용 프롬프트

작업 후에는 리뷰 세션을 따로 사용할 수 있습니다.

이 세션에서는 파일을 수정하지 마세요.
현재 변경사항을 리뷰만 하세요.

확인할 항목:
- 의도하지 않은 파일이 수정되었는지
- 기존 기능이 깨질 가능성이 있는지
- 더 단순한 구현 방법이 있는지
- 테스트가 필요한 부분은 어디인지
- 공통 파일이 변경되었는지

수정 제안만 하고 실제 변경은 하지 마세요.

이때 먼저 사람이 아래 명령어로 변경사항을 확인하는 것이 좋습니다.

git status
git diff

그리고 diff 내용을 리뷰 세션에 전달하면 됩니다.

리뷰 결과 문제가 없다면 커밋합니다.

git add .
git commit -m "Improve login validation message"

같은 폴더 병행 작업 시 지켜야 할 규칙

Git worktree 없이 같은 폴더에서 병행 작업을 하려면 아래 규칙을 지키는 것이 좋습니다.

  1. 실제 파일 수정은 한 번에 하나의 세션만 수행한다.
  2. 여러 세션을 쓰더라도 분석, 구현, 리뷰 역할을 나눈다.
  3. 각 작업의 수정 가능 파일을 미리 정한다.
  4. package.json, lock file, global.css, routing, 설정 파일은 병행 수정하지 않는다.
  5. 작업 후 반드시 git diff를 확인한다.
  6. 작업 단위마다 commit한다.
  7. 큰 리팩토링은 병행 작업으로 처리하지 않는다.

이 규칙을 지키면 worktree를 쓰지 않아도 어느 정도 안전하게 AI 코딩 세션을 병행할 수 있습니다.

언제 Worktree 없이 작업해도 괜찮을까?

다음과 같은 경우에는 worktree 없이도 충분합니다.

상황추천 방식
혼자 작업하는 작은 프로젝트같은 폴더에서 순차 작업
간단한 UI 문구 수정파일 범위 제한 후 진행
README나 문서 수정병행 가능
특정 컴포넌트 테스트 추가병행 가능
여러 세션을 참고용으로만 사용분석/리뷰 세션으로 활용

반대로 다음 상황에서는 worktree를 쓰는 것이 더 낫습니다.

상황추천 방식
여러 기능을 실제로 동시에 수정worktree 권장
대규모 리팩토링worktree 또는 별도 브랜치 관리 필요
공통 컴포넌트와 페이지를 동시에 수정worktree 권장
여러 명이 같은 프로젝트를 함께 수정브랜치/PR/worktree 기반 권장
설정 파일이나 의존성을 자주 수정worktree 또는 별도 브랜치 권장

즉, worktree 없이도 병행은 가능하지만, 진짜 병렬 수정이 필요한 상황에서는 worktree가 더 안전합니다.

정리

Git worktree는 여러 AI 코딩 세션을 안전하게 병렬로 운영할 수 있는 좋은 방법입니다. 하지만 항상 필수는 아닙니다.

작은 프로젝트이거나, 수정 범위가 제한적이거나, 여러 세션을 분석과 리뷰 용도로 활용하는 정도라면 worktree 없이도 충분히 효율적으로 작업할 수 있습니다.

핵심은 다음입니다.

Worktree 없이 병행 작업을 하려면, 여러 세션을 동시에 수정자로 쓰지 말고 분석자, 구현자, 리뷰어로 나누어 사용해야 한다.

AI 코딩 도구는 코드를 빠르게 작성해 주지만, 작업 범위를 나누고 변경사항을 병합 가능한 단위로 관리하는 역할은 여전히 사람에게 있습니다.

가장 현실적인 운영 방식은 다음과 같습니다.

  1. 작업을 작게 나눈다.
  2. 수정 가능 파일을 제한한다.
  3. 구현 세션 하나만 실제로 수정한다.
  4. 다른 세션은 분석과 리뷰에 사용한다.
  5. 수정 후 diff를 확인한다.
  6. 작업 단위마다 commit한다.

이 방식만 지켜도 Git worktree 없이 AI 코딩 세션을 훨씬 안정적으로 병행 사용할 수 있습니다.