2026년 기업 Mac CI: Bazel·Gradle 원격 캐시, repository_cache, disk_cache, xcodebuild 병렬, NVMe

Bazel·Gradle 캐시는 키와 쓰기 패턴이 달라 동일 호스트 다중 Job에서 NVMe가 먼저 포화됩니다. repository_cachedisk_cache를 분리하고 원격은 읽기 전용으로 두면 xcodebuild 경합이 줄어듭니다. 서명 격리·아티팩트는 각각 다중 Job codesign·Keychain 격리 FAQ, 대용량 산출물·S3/MinIO 근접 캐시 FAQ와 함께 보세요.

1. Bazel vs Gradle 원격 캐시

Bazel은 액션 digest 중심, Gradle은 태스크 출력에 가깝습니다. TLS·압축이 CPU를 쓰므로 RTT가 길면 이득이 줄고, CI에서는 메인만 업로드 같은 쓰기 게이트가 안전합니다.

한 줄: 원격은 읽기 위주, NVMe는 실행·중간 산출.

2. repository_cache·disk_cache NVMe 분리

전자는 아카이브·해시가 커지고 후자는 churn이 큽니다. 마운트 분리로 정리·I/O 예산을 나누고, GRADLE_USER_HOME·--disk_cache를 Job 접두와 함께 두며 wear·메타 IOPS를 함께 봅니다.

3. 다중 Job·xcodebuild 병렬

-parallelizeTargets와 시뮬레이터가 큐를 소모합니다. 원격 적중이 높아도 링크·서명은 로컬에 몰리므로 Job당 상한을 두고 iowaitgRPC P95를 분리 측정하세요.

  • 원격 실패 시 멱등 폴백을 런북에 적습니다.
  • 툴체인 변경 시 키를 같이 올립니다.

4. 읽기 전용 원격·병렬 FAQ

  • 읽기 전용: 오염 확산·쓰기 P95 폭주 완화.
  • 병렬 상한: 코어보다 디스크·시뮬레이터가 먼저 한계인 경우가 많음.
  • 동일 머신 혼용: 캐시 루트·포트·tmp 분리, Job 쿼터 분리.
  • 고NVMe: 지속 쓰기·랜덤 읽기와 여유 공간, 로컬 레인 우선.

Mac mini·macOS에 올릴 때

Mac mini(Apple Silicon)는 통합 메모리·빠른 SSD로 동시 컴파일에 유리하고 유휴 전력이 낮습니다(M4급 약 4W). macOS는 Xcode·서명 재현이 쉽고 Gatekeeper·SIP로 보안 운영이 단순해 총소유비용에도 유리합니다.

읽기 전용·로컬 파티션을 고정한 뒤 워커를 늘리면 확장이 예측됩니다. Macstripe 홈에서 전용 머신을 비교하고, Mac mini M4로 이 런북을 옮기면 체감 속도가 바로 따라옵니다. 하단 카드에서 다음 단계를 진행해 보세요.