메인이 Windows·Linux인데 iOS를 정기적으로 배포해야 한다면 호스트 Runner만으로 충분한지, Mac mini를 살지, 키체인 허용은 누가 누를지가 핵심입니다. 이 글은 2026년 기준 결정 매트릭스를 제시합니다: GitHub 호스트 macOS, 사무실 셀프호스트, VNC로 접속하는 임대 원격 Mac. 어떤 파이프라인 단계가 그래픽 세션을 반드시 요구하는지, 하이브리드로 잡을 나누는 방법, 큐·인증서 회전·환경 드리프트 같은 숨은 비용을 함께 정리합니다.
비교표 외에 워크플로 YAML과 러너 라벨에 바로 옮길 수 있는 일곱 가지 배치 패턴과, 인증서 만료·concurrency·온콜 알림용 운영 체크리스트도 포함했습니다. 배포 프로비저닝이 돌아오는 밤마다 「누군가의 실물 Mac」을 비공식 의존성으로 두지 않는 것이 목표입니다.
1. 숨은 비용 다섯 가지
- 분 과금과 큐: 브랜치와 Archive가 늘면 대기 시간과 청구가 급증하고, 릴리스 창과 겹치면 파이프라인 자체가 병목이 됩니다.
- 키체인·인증서 상호작용: 배포 인증서 가져오기, 프로비저닝 교체, 「항상 허용」— 첫 시도에 전부 스크립트로 끝나지 않습니다. 첫 CI는 통과했다가 회전 밤에 막히는 경우가 많습니다.
- 자체 Mac의 고정비·운영: 감가, macOS/Xcode 업그레이드, 디스크 관리—Mac mini도 사람 시간이 듭니다.
- SSH만으로 Organizer 맥락 부족: 컴파일은 SSH로 되지만 TestFlight 업로드나 검증 오류는 화면·메일 맥락이 있으면 해결이 빠릅니다.
- Xcode·도구 버전 드리프트: 노트북과 CI의 패치가 다르면 「로컬은 초록, CI는 빨강」이 반복됩니다. 볼 수 있는 빌드 호스트가 수렴을 돕습니다.
2. 비교표
기능 경계 중심입니다. 금액은 조직별 과금을 적용하세요.
| 항목 | 호스트 | 셀프호스트 | VNC 임대 |
|---|---|---|---|
| 도입 속도 | 매우 빠름 (YAML) | 느림 (구매·설치) | 빠름 |
| 적합 작업 | 빌드·테스트·lint·소형 Archive | 전체 체인·맞춤 캐시 | 빌드 + 필수 GUI + 조합 |
| GUI | 대화형 데스크톱 기대 낮음 | KVM/원격 데스크톱 가능 | VNC |
| 비용 | 분당 OPEX 변동 | CAPEX + 운영 | 프로젝트 단위 OPEX |
| 리스크 | 큐·쿼터 | 단일 장애점·업그레이드 | 지연(대역폭 글 참고) |
| Actions 연동 | 기본 | 셀프호스트 라벨 | 원격 Mac 러너 또는 브리지 |
3. GUI가 필요한 단계
- 배포 인증서·프로비저닝 변경 후 키체인 대화.
- Xcode에서 Capabilities·팀을 처음 맞출 때.
- Organizer·Transporter 업로드와 처리 대기·심볼·컴플라이언스.
- 보안 업데이트 후 CLT·플러그인 라이선스 확인.
반대로 단위 테스트, 정적 분석, SPM 해석, 미서명 Debug는 호스트나 SSH 우선이 효율적입니다.
4. 일곱 가지 패턴
GUI 필수 잡 목록 문서화
월간 회전·릴리스 Archive 등 헤드리스 금지 잡만 명시해 자동화 ROI를 높입니다.
PR는 호스트 러너
pull_request에 테스트·lint, 무거운 잡은 main/release로.
원격 Mac에 셀프호스트(선택)
mac-vnc 라벨로 서명·Archive만 할당, Xcode는 VNC에서 유지보수.
시크릿 최소 권한·분리
빌드용/업로드용 분리, VNC에서 한 번 검증 후 무인 전환.
DerivedData·SPM 캐시
고정 경로로 콜드 스타트 감소, 디스크 쿼터와 대형 Xcode 업데이트 주의.
실패 유형 분류
컴파일/서명/업로드 구분, 업로드는 Organizer·메일 맥락과 함께 보면 MTTR이 짧아집니다.
롤백 문서
메이저 Xcode 상향 후 전부 빨강이면 CLT 다운그레이드 절차가 적힌 원격 한 대가 노트북 여러 대보다 빠릅니다.
5. 참고 값과 체크리스트
concurrency나 큐 잠금으로 직렬화하세요.- GUI 필수 잡 이름·트리거가 문서화됐는가
- 인증서 만료가 담당자·캘린더에 있는가
- main/release 러너 라벨이 분리됐는가
- 알림이 자동 재시도와 「사람 로그인 필요」를 구분하는가
6. FAQ
Q. iOS CI를 100% Mac 없이? 일부 플로우는 가능하지만 서명·시스템 대화에는 최소 한 대의 macOS를 두는 팀이 많습니다. VNC 임대는 구매 전 장벽을 낮춥니다.
Q. 긴급 핫픽스 글과 차이? 그쪽은 단발 릴리스 경로, 여기서는 반복되는 일상 CI 설계입니다. 첫 사용·TestFlight 체크리스트와 병행하세요.
Q. SSH만으로? 스크립트 빌드에는 종종 충분하지만 Organizer·키체인·시각 검증은 VNC가 유리합니다. 도움말 SSH vs VNC를 보세요.
맺음말
일상 CI의 적은 YAML이 아니라 보이지 않는 macOS 상태입니다. 호스트는 가볍고, 셀프호스트는 자산·운용이 붙고, 클라우드 경량 + VNC 고정 Mac은 중소팀에 현실적인 타협입니다. 연결 가이드가 정돈된 VNCMac 같은 서비스는 첫 연결 불안과 문서 파편화를 줄이고, 회전 밤마다 노트북을 빌리는 일을 줄이는 데 도움이 됩니다.