2026년 기업 Mac CI: git worktree와 Job별 독립 clone 비교

병렬 PR에서 병목은 체크아웃디스크 피크가 대부분입니다. git worktree는 객체를 공유해 fetch·저장을 줄이고, Job별 clone은 격리는 좋지만 중복 비용이 큽니다. Apple Silicon 고메모리 풀 기준으로 정리했습니다. 디스크 설계는 DerivedData·SwiftPM 디스크 FAQ, 러너 운영은 GHA 다중 러너 실전을 보세요.

1. 모델 요약: worktree는 공유, 독립 clone은 복제

worktree는 작업 디렉터리만 나누고 객체 DB는 하나라 fetch 한 번으로 여러 트리가 같은 그래프를 봅니다. Job별 clone.git까지 분리되어 shallow·partial·미러 없으면 디스크·대역폭이 선형으로 늘어납니다. 완전 격리면 clone, 한 노드 PR 폭주면 worktree+락이 흔합니다.

실무 팁: 객체 공유·동시 쓰기 허용 범위를 보안·감사와 먼저 고정하세요.

2. 체크아웃 지연: 네트워크와 작업 트리 쓰기

RAM이 넉넉해도 대형 트리 동시 펼침은 APFS 메타데이터 지연을 만듭니다. worktree는 객체 재다운로드는 줄이나 LFS·서브모듈은 남습니다. clone은 --filter=blob:none·번들로 네트워크를 줄이고, shallow+필요 시 unshallow를 문서화하세요.

3. 디스크 피크: 객체 공유 vs .git 곱셈

worktree는 객체는 공유하지만 작업 트리는 트리마다 복제됩니다. clone은 .git/objects까지 곱셈이 되어 병렬도×저장소가 예산입니다. APFS로 작업 루트·캐시·아티팩트를 나누고 스냅샷 시 CI 경로 제외를 확인하세요.

4. 의존성 캐시: 전역과 Job 오버레이

노드 전역 캐시는 이득이 크나 락·버전 키 없으면 오염됩니다. 읽기 전용 상위+Job 쓰기 오버레이가 흔한 절충입니다. 히트율과 함께 최악 디스크를 지표로 두세요.

5. 적용 FAQ

  • 같은 브랜치를 두 worktree가? 지양하세요. PR마다 브랜치·경로 규칙을 강제합니다.
  • 완전 격리가 필요하면? 사용자·볼륨·egress를 Job 단위로 쪼갠 독립 clone이 감사에 유리합니다. 캐시 계층으로 비용을 상쇄합니다.
  • RAM은 넉넉한데 느림? 디스크 대기·LFS를 먼저 의심하세요.

Mac mini·macOS로 체크아웃 기준선을 단순화

NVMe와 안정적인 FS는 체감 시간을 줄입니다. Apple Silicon 통합 메모리는 병렬 인덱싱에 유리하고, macOS는 Gatekeeper·SIP·FileVault로 무인 운영에 적합합니다. 유휴 전력이 낮은 Mac mini M4는 상시 러너에 맞습니다.

worktree·캐시 파티션을 한 노드에서 검증한 뒤 풀을 넓히세요. 전용 노드는 Macstripe 홈에서 비교할 수 있습니다. Mac mini M4로 기준선을 잡으면 병렬 PR 대응 비용을 줄이기 쉽습니다.