📝 한줄 요약
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를 다양한 기능을 병렬 작업하고 싶은데 가능할까?
하나는 지메일 연동해서 불러오는거
하나는 다국어 처리
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 활용 팁
효과적이었던 것
터미널 여러 개 띄워서 각각 AI 세션 돌리면 병렬 작업 가능 - 각 세션이 독립적으로 돌아가서 서로 영향 없이 작업할 수 있었어요
충돌 방지 전략을 미리 세워달라고 하면 알아서 해줌 - 어떤 파일이 위험한지, 어떻게 분리해야 하는지 분석해줍니다
다른 사람 스킬을 내 상황에 맞게 수정해달라고 하기 - Docker 특화 → 범용으로 변환해줬어요
이렇게 하면 안 돼요
충 돌 방지 전략 없이 무작정 병렬 작업 시작하면 나중에 머지할 때 고생합니다
Electron 앱은 Bundle ID가 같으면 동시 실행 안 되니까 미리 확인하세요
🌍 다른 업무에 적용한다면?
프론트엔드 + 백엔드 동시 개발: 각각 다른 worktree에서 작업하고 나중에 머지
버그 수정 + 신규 기능 동시 진행: 급한 버그 수정하면서 새 기능도 개발
여러 클라이언트 프로젝트 병렬 관리: 비슷한 구조의 프로젝트들을 효율적으로