가이드
전용 Mac mini로 Mac CI 팜 운영하기
팀이 전용 Mac mini 5대에서 20대를 CI 팜으로 운영하는 방법: 프로젝트별 Runner, 계정 하나, 인보이스 하나, 직접 답하는 엔지니어.
2026-09-20 업데이트
Mac mini 한 대면 한 팀의 iOS 빌드를 여유 있게 처리합니다. 앱이 세 개가 되고, 두 브랜치가 병렬로 빌드되고, 릴리스 트레인이 생기는 순간 팜이 필요하며, 그 구조를 어떻게 잡느냐에 따라 CI가 계속 빠를지, 모두가 불평하는 대상이 될지가 결정됩니다.
MacDuty에서 팀들이 전용 Mac 5대에서 20대를 운영하는 방식은 다음과 같습니다.
인원수가 아니라 빌드 동시성에서 시작하기
중요한 숫자는 하나뿐입니다: 가장 바쁜 시간대에 동시에 실행되어야 하는 빌드 수입니다. 개발자 수도, 저장소 수도 아닌 동시 빌드 수입니다.
대부분의 iOS 팀에 들어맞는 대략적인 구성:
| 상황 | 머신 수 |
|---|---|
| 앱 하나, 팀 하나, PR 빌드 | 1~2 |
| 앱 두세 개, PR과 야간 빌드 병렬 | 3~5 |
| 릴리스 트레인, 기기 매트릭스에서 UI 테스트 | 6~10 |
| 여러 제품을 지원하는 에이전시 또는 플랫폼 팀 | 10~20 이상 |
대기 시간이 신호입니다. 피크 때 빌드가 몇 분 넘게 기다린다면 머신을 추가하세요. 모든 개발자가 기다리며 보내는 한 시간보다 저렴합니다.
머신당 Runner 하나, 아니면 여러 개?
각 Mac mini는 머신 전체를 고객의 작업에 씁니다: 하이퍼바이저도, 자원을 나눠 쓰는 이웃도 없습니다. 그래서 유효한 패턴이 두 가지 있습니다.
머신당 Runner 하나
가장 깔끔합니다. 빌드가 CPU, GPU, 메모리 전체를 씁니다. Xcode 빌드와 UI 테스트에 쓰세요. 이런 빌드는 주어진 코어를 모두 기꺼이 소모합니다.
머신당 Runner 두세 개
작업이 작고 I/O 위주일 때 적합합니다: 유닛 테스트, 린트, 패키징. 32 GB M4 또는 M6에서는 가벼운 작업 두 개를 병렬로 돌려도 여유가 있습니다.
둘을 섞는 것도 일반적입니다: 무거운 머신은 릴리스 빌드 전용으로, 가벼운 머신에는 빠른 작업을 몰아서 씁니다.
팀과 프로젝트별로 팜 나누기
머신에 라벨을 붙이고 파이프라인이 그 머신으로 작업을 보내게 하세요. 유용한 분할 방식:
프로젝트별
ios-app, sdk, internal-tools. 저장소마다 자체 라벨을 지정하므로, 한 제품의 빌드가 깨져도 다른 제품을 막지 않습니다.
용도별
빠르고 항상 준비된 pr 머신, 서명 빌드 전마다 지우는 release 머신.
고객사별
에이전시는 고객사마다 자체 자격 증명과 인증서를 가진 전용 머신을 줍니다. 공유하는 것이 없으니 계정 사이에 새어 나갈 것도 없습니다.
이 모든 것이 MacDuty 계정 하나에 있고, 월말에 인보이스 하나로 청구됩니다.
팜을 건강하게 유지하기
프로젝트 사이에는 재설치하세요. 아예 하지 않는 것은 피하세요
1년 동안 빌드를 해 온 Mac에는 Xcode 버전, 시뮬레이터, 캐시가 쌓입니다. 머신을 새 프로젝트로 돌릴 때는 지원팀에 클린 재설치를 요청하세요. Mac이 지워지므로 고객의 승인이 있을 때만 진행합니다.
툴체인 고정하기
풀의 모든 머신에서 같은 Xcode 버전을 쓰고, 업그레이드는 의도적으로 합니다. 머신마다 버전이 어긋나는 팜에서는 한 Runner에서는 통과하고 다른 Runner에서는 실패하는 빌드가 나옵니다.
CPU가 아니라 대기열 보기
빌드 머신의 CPU 그래프는 늘 불안해 보이지만 조치할 근거가 되는 경우는 드뭅니다. 하드웨어를 추가할 시점은 대기열 대기 시간이 알려 줍니다.
예비 머신 한 대 두기
머신이 10대라면 한 대가 멈춘 것은 장애가 아니라 불편 정도여야 합니다.
오케스트레이션 Mac 클라우드와의 비교
오케스트레이션 플랫폼은 가상화된 macOS 위에 Kubernetes 방식의 스케줄링을 얹고, 그 계층에 비용을 지불하게 됩니다. 대규모로 작업마다 임시 VM을 띄워야 한다면 실제로 유용합니다.
머신 20대 미만인 팀 대부분은 그렇지 않습니다. 이들에게 필요한 것은 계속 켜져 있고, 캐시가 따뜻하게 유지되며, 매달 같은 비용이 드는 빠른 전용 Mac 몇 대입니다. 전용 팜이 바로 그것입니다: 고정 가격의 물리 머신 전체이고, 빌드 캐시는 VM과 함께 버려지지 않고 다음 작업을 위해 남아 있습니다.
릴리스 전 새벽 2시에 드러나는 차이도 있습니다: 랙을 운영하는 사람이 이메일에 답합니다.
팜 구축하기
구성을 알려 주세요: 머신 수, 모델, 설치해야 할 것. 요청하시면 고객의 Xcode 버전, Runner 에이전트, 키와 인증서로 설정해 드리고, 이후 재설치와 머신 구성 변경도 매번 고객의 승인을 받아 처리합니다.
오늘 재고 있음
지금 랙에 있는 Mac입니다. 하나를 골라 구성을 확인하고, 계정은 주문할 때 만드세요.
랙 확인 중
나만의 Mac mini
구성을 고르세요. 재고가 없으면 이메일을 남겨 주세요. 랙에 설치되는 날 연락드립니다.
연 단위: 월 단위 결제보다 최소 19% 저렴
질문
- MacDuty 계정 하나로 Mac mini 여러 대를 운영할 수 있나요?
- 네. 계정 하나에 필요한 만큼 머신을 둘 수 있고 인보이스는 하나이며, 본인용으로도, 소유한 회사마다도 가능합니다.
- iOS CI에 Mac mini가 몇 대 필요한가요?
- 팀 규모가 아니라 피크 시 동시 빌드 수로 정하세요. 앱 하나에는 1대에서 2대, 여러 앱을 병렬로 빌드하면 3대에서 5대, 릴리스 트레인이나 에이전시라면 6대에서 20대입니다.
- Mac mini 한 대에서 CI Runner 여러 개를 실행할 수 있나요?
- 네. 머신 전체가 고객의 것입니다. 무거운 Xcode 빌드에는 머신당 Runner 하나, 가볍고 I/O 위주인 작업에는 32 GB 머신에서 두세 개입니다.
- 팀이나 고객사마다 별도 머신을 둘 수 있나요?
- 네. 머신은 프로젝트별 또는 고객사별로 라벨을 붙여 분리하고, 각자 자격 증명을 가지며, 계정과 인보이스는 하나입니다.
- 전용 Mac 팜이 오케스트레이션 Mac 클라우드보다 저렴한가요?
- 꾸준한 CI 부하라면 그렇습니다: 물리 머신당 월 고정 가격이며, 시간당 과금도, 비용을 내야 할 오케스트레이션 계층도 없습니다.
다음