윤누리
윤누리
Admin
🧙 AI 위자드
🎻 루키 파트너
🌈 지피터스금손
🚀 SNS 챌린지 달성자
☕ 커피챗 오픈

[사내AX] 터미널 3개로 기능 3개 동시 개발 - Git Worktree + AI 코딩 병렬 작업기

📝 한줄 요약

Git Worktree와 AI 코딩 도구를 조합해서 다국어 지원, Notion 연동, 검색 기능을 동시에 개발했고, 충돌 없이 깔끔하게 머지까지 완료했습니다.

🎯 이런 분들께 도움돼요

  • 여러 기능을 동시에 개발해야 하는 1인 개발자

  • 브랜치 전환하면서 git stash 쓰는 게 번거로운 분

  • AI 코딩 도구로 더 효율적으로 작업하고 싶은 분

😫 문제 상황 (Before)

사이드 프로젝트로 Linear Capture라는 Electron 앱을 개발하고 있었는데요. 추가하고 싶은 기능이 한꺼번에 여러 개 생겼습니다.

  • 다국어(i18n) 지원

  • Gmail 연동

  • Notion/Slack 검색 기능

급한 건 아니었지만, 하나씩 순차적으로 하면 시간이 오래 걸릴 것 같았어요. 더 효율적이고 빠르게 작업하고 싶었습니다.

그러던 중 개발자 황인준 님이 본인 프로젝트(Bkamp.ai)에서 Docker + Git Worktree로 병렬 작업하는 스킬을 공유해줬습니다. 여러 브랜치를 동시에 띄워놓고 비교하며 개발하는 방식이 인상적이어서, 저도 적용해보기로 했습니다.

🛠️ 사용한 도구

  • AI 코딩 도구: OpenCode (Claude 기반)

  • 특이사항: 터미널 3개에서 각각 OpenCode 세션 실행


🔧 작업 과정

Worktree가 뭔지부터 물어봤습니다

사실 Git Worktree라는 개념 자체가 처음이었어요. 그래서 AI한테 먼저 개념 설명을 부탁했습니다.

현재 작업하고 있는 linear-capture를 다양한 기능을 병렬 작업하고 싶은데 가능할까?

  1. 하나는 지메일 연동해서 불러오는거

  2. 하나는 다국어 처리

AI가 Worktree 개념을 쉽게 설명해줬어요. 핵심은 이거였습니다:

"하나의 Git 저장소를 여러 폴더에서 동시에 작업하는 기능"

일반적으로는 한 폴더에서 브랜치를 바꿔가며 작업하는데, Worktree를 쓰면 폴더 자체를 분리해서 각 폴더가 다른 브랜치를 바라보게 할 수 있다는 거죠.


충돌 방지 전략까지 알아서 세워줬습니다

놀라웠던 건, 제가 따로 요청하지 않았는데도 충돌 방지 전략을 먼저 제안해줬다는 점이에요.

AI가 분석한 충돌 가능성:

파일

상태

충돌 위험

.sisyphus/ (계획 파일)

Git 추적됨

⚠️ 위험

.env

gitignore

✅ 안전

CLAUDE.md

Git 추적됨

⚠️ 수정 시 충돌 가능

그리고 해결책도 바로 제시했습니다:

  • 계획 파일은 브랜치별 하위 폴더로 분리 (plans/gmail/, plans/i18n/)

  • 소스 코드는 기능별로 다른 파일 수정 (Gmail은 gmail-client.ts, i18n은 i18n/ 폴더)

  • CLAUDE.md는 master에서만 수정

이 전략 덕분에 나중에 머지할 때 충돌이 하나도 없었습니다.


터미널 3개로 동시 작업 시작

Worktree 설정이 끝나고 나니 작업 구조가 이렇게 됐어요:

터미널 1: linear-capture/ [master]
터미널 2: linear-capture-worktrees/gmail-integration/ [feature/gmail-integration]
터미널 3: linear-capture-worktrees/i18n/ [feature/i18n]

각 터미널에서 OpenCode를 실행하면, 각각 독립적인 AI 세션이 돌아갑니다. 브랜치 전환 없이 터미널만 옮기면 다른 기능 작업으로 바로 넘어갈 수 있었어요.

컨텍스트 스위칭 비용이 확 줄어드는 느낌이었습니다.


인준님의 스킬을 내 상황에 맞게 수정했습니다

황인준님이 공유해준 스킬은 Docker 기반이었는데, 제 프로젝트는 Electron 앱이라 상황이 달랐어요. 그래서 AI한테 스킬 파일을 범용적으로 수정해달라고 했습니다.

변경된 내용:

  • Docker 포트 매핑, OAuth 설정 등 Docker 특화 내용 제거

  • Electron, 웹앱, Docker 등 다양한 프로젝트 타입 예시 추가

  • 폴더명도 bkamp-worktree → git-worktree로 변경

이제 다른 프로젝트에서도 바로 쓸 수 있는 범용 스킬이 됐습니다.


예상 못한 문제: Electron 앱이 동시에 안 뜬다?

병렬 작업은 잘 됐는데, 테스트할 때 문제가 생겼습니다.

수동 확인을 위해서 띄워줄래? 근데 내가 지금 병렬 작업을 하고 있는데 git worktree로 여러개 앱을 실행해서 확인해도 되는지 모르겠네?

AI가 테스트해보더니 문제를 발견했어요:

macOS에서 동일한 Bundle ID를 가진 앱은 1개만 실행 가능

Docker는 컨테이너별로 완전히 격리되는데, Electron 앱은 그렇지 않았던 거죠.

항목

Docker

Electron

파일시스템

컨테이너별 격리

호스트 공유

앱 ID

없음

Bundle ID 충돌


해결책까지 계획해줬습니다

AI가 바로 해결책을 제안했어요:

브랜치별로 Bundle ID를 다르게 하면 됩니다

그리고 자동화 계획까지 수립해줬습니다:

  • scripts/get-dev-app-id.js - git branch 자동 감지

  • electron-builder.dev.js - 동적 appId 설정

  • npm run pack:dev - 개발 테스트용 빌드 스크립트

master/main은 원래 Bundle ID 유지하고, feature 브랜치만 -{브랜치명} suffix가 붙는 방식이에요. 기존 배포 스크립트는 건드리지 않아서 머지 충돌도 없습니다.


✅ 결과 (After)

Before vs After

항목

Before

After

작업 방식

브랜치 전환하며 순차 작업

터미널 3개로 동시 작업

컨텍스트 스위칭

git stash → checkout → git stash pop

터미널만 옮기면 끝

머지 시 충돌

걱정됨

충돌 0건 (전략 덕분)

동시 진행 기능

1개

3개 (i18n, Notion, Gmail)

결과물

  • ✅ 다국어(i18n) 기능 완성 → master 머지 완료

  • ✅ Notion 본문 검색 기능 완성

  • ✅ Gmail 연동 완료

  • ✅ 범용 git-worktree 스킬 생성

💬 이 과정에서 배운 AI 활용 팁

효과적이었던 것

  1. 터미널 여러 개 띄워서 각각 AI 세션 돌리면 병렬 작업 가능 - 각 세션이 독립적으로 돌아가서 서로 영향 없이 작업할 수 있었어요

  2. 충돌 방지 전략을 미리 세워달라고 하면 알아서 해줌 - 어떤 파일이 위험한지, 어떻게 분리해야 하는지 분석해줍니다

  3. 다른 사람 스킬을 내 상황에 맞게 수정해달라고 하기 - Docker 특화 → 범용으로 변환해줬어요

이렇게 하면 안 돼요

  1. 충돌 방지 전략 없이 무작정 병렬 작업 시작하면 나중에 머지할 때 고생합니다

  2. Electron 앱은 Bundle ID가 같으면 동시 실행 안 되니까 미리 확인하세요

🌍 다른 업무에 적용한다면?

  • 프론트엔드 + 백엔드 동시 개발: 각각 다른 worktree에서 작업하고 나중에 머지

  • 버그 수정 + 신규 기능 동시 진행: 급한 버그 수정하면서 새 기능도 개발

  • 여러 클라이언트 프로젝트 병렬 관리: 비슷한 구조의 프로젝트들을 효율적으로

3개의 답글
지피터스 뉴스레터

이번 주 AI, 딱 쓸 것만

매주 월요일 아침,
읽고 바로 써먹을 AI 소식만