엔지니어링 파이프라인 연결

커밋 이후의 엔지니어링 작업을 클라우드 Mac에서 처리하세요

ZoneMini는 가상 머신이 아닌, 지속 실행되는 클라우드 Mac 전용 물리 노드를 제공합니다. 코드 커밋을 고정 노드에서 실행하고 테스트 보고서, 아카이브, 모델 결과 또는 미디어 완성물을 기존 전달 파이프라인으로 전송하세요.

리소스 방식
주문 하나당 선택한 전용 물리 노드 하나 제공
카탈로그 규모
3가지 구성, 판매 중인 노드 5개
접속 방식
SSH, macOS 그래픽 인터페이스 및 CI Runner
BUILD ROUTE 고정 노드 실행
  1. 01
    코드 커밋 저장소 이벤트, 예약 작업 또는 수동 트리거가 큐에 진입
    INPUT
  2. 02
    빌드 실행 의존성 복원, 테스트 실행, 서명 및 아카이브 생성
    RUN
  3. 03
    산출물 전달 IPA, 로그, 보고서, 모델 지표 또는 미디어 파일 반환
    OUTPUT
고정 클라우드 Mac 노드로 엔지니어링 파이프라인 연결 저장소 트리거가 작업 큐에 연결되고, 작업은 전용 Mac 노드에서 실행된 후 산출물 저장소와 로그 시스템으로 결과를 전달합니다.
iOS 자동 패키징

저장소 트리거부터 IPA 검사까지, 재현 가능한 6단계

안정적인 iOS 클라우드 빌드는 단순한 Archive 명령 하나로 끝나지 않습니다. 고정된 도구 체인, 제어 가능한 캐시, 제한된 서명 권한과 명확한 산출물 검사가 필요합니다. 각 단계에 추적 가능한 로그를 남겨야 실패 원인이 의존성, 컴파일, 서명 또는 내보내기 중 어디에 있는지 판단할 수 있습니다.

  1. 01

    저장소 트리거 수신

    기본 브랜치 병합, 릴리스 태그 또는 수동 작업으로 빌드를 시작합니다. 브랜치명, 커밋 해시, 버전 번호와 빌드 번호를 작업 컨텍스트에 기록해 산출물과 소스의 연결이 끊기지 않도록 하세요.

  2. 02

    고정 의존성 복원

    잠금 파일에 따라 Swift Package, CocoaPods 또는 JavaScript 의존성을 설치합니다. 캐시는 프로젝트, 도구 버전과 잠금 파일 요약별로 분리해 브랜치 간 잘못된 의존성 재사용을 막습니다.

  3. 03

    서명 권한 활성화

    빌드 단계에서 필요한 인증서와 프로비저닝 프로파일만 잠금 해제하고 Runner의 접근 범위를 제한합니다. 작업이 끝나면 임시 접근을 차단하며 개인 키, 토큰 또는 전체 비밀번호를 로그에 기록하지 않습니다.

  4. 04

    테스트 및 아카이브 실행

    정적 검사와 단위 테스트를 먼저 실행한 뒤 Xcode Archive를 호출합니다. 테스트가 실패하면 즉시 서명 단계를 중단하고 테스트 결과, 컴파일러 출력과 실패 케이스를 보존합니다.

  5. 05

    IPA 내보내기

    버전 관리되는 내보내기 구성으로 IPA를 생성하고 dSYM, 아카이브 파일과 내보내기 로그를 함께 저장합니다. 최종 설치 패키지만 남기면 크래시 분석과 버전 추적에 필요한 근거가 사라집니다.

  6. 06

    업로드 전 검사 실행

    Bundle ID, 버전 번호, 빌드 번호, 서명 결과, 개인정보 목록과 패키지 변경 사항을 확인합니다. 검사를 통과한 후 산출물을 업로드 또는 출시 승인 단계로 전달하세요.

작업 규모에 맞는 구성 선택

세 가지 카탈로그로 세 가지 빌드 부하에 대응

최대 메모리, 동시 작업 수와 단일 작업 시간을 먼저 확인한 뒤 기종을 선택하세요. 프로젝트 이름만으로 판단하거나 디스크 캐시 증가를 계산 수요로 오해하지 마세요.

ZoneMini M4 Core M4 · 16GB · 256GB

단일 프로젝트의 경량 패키징, 단위 테스트와 낮은 동시성 아카이브에 적합합니다. 작업 디렉터리가 로컬 저장 공간을 계속 차지하지 않도록 의존성 캐시를 정기적으로 정리하세요.

ZoneMini M4 Core 대여하기
ZoneMini M4 Plus M4 · 24GB · 512GB

일상 개발, 다중 브랜치 파이프라인, React Native 또는 Flutter 네이티브 빌드와 더 많은 의존성 캐시가 필요한 팀에 적합합니다.

ZoneMini M4 Plus 대여하기
ZoneMini M4 Pro M4 Pro · 64GB · 2TB

고부하 병렬 빌드, 대규모 모델 추론, 대형 미디어 작업과 장시간 배치 처리에 적합합니다. 메모리 사용량이 큰 작업은 우선 이 구성에서 검증하세요.

ZoneMini M4 Pro 대여하기
빌드 팜 및 CI/CD

여러 고정 Runner를 공유 워크스테이션이 아닌 예약 가능한 리소스로 운영하세요

빌드 팜의 핵심은 모든 작업을 임의의 머신에 보내는 것이 아니라 노드별 역할을 안정적으로 정의하는 데 있습니다. 태그, 큐, 캐시 경계, 로그 보관과 지역 배치를 함께 설계해야 실패를 추적하고 용량을 판단할 수 있습니다.

RUNNER ASSIGNMENT 태그가 작업 목적지를 결정합니다
ios-light 커밋 검증 및 단위 테스트 짧은 작업 우선, 동시성 제한, 실패 시 즉시 큐 해제
ios-release 서명 아카이브 및 릴리스 후보 패키지 고정 도구 체인과 권한 경계, 전체 내보내기 기록 보존
cross-platform React Native 및 Flutter JavaScript, CocoaPods 및 네이티브 컴파일 캐시 분리
high-memory 모델 추론 및 대규모 병렬 작업 ZoneMini M4 Pro에 연결하고 최대 메모리와 출력 디렉터리를 기록

실행 시간과 권한에 따라 큐 분리

커밋 검증, 릴리스 아카이브와 고메모리 작업을 동일한 무차별 큐에서 처리하지 마세요. 장시간 작업에는 별도 태그를 지정해 짧은 테스트가 오래 기다리지 않도록 합니다.

프로젝트와 버전별로 캐시 격리

의존성 캐시 키에는 최소한 프로젝트, 브랜치 전략, 도구 버전과 잠금 파일 요약이 포함되어야 합니다. 캐시 적중에 문제가 생기면 전체 노드가 아닌 해당 프로젝트만 정리할 수 있어야 합니다.

실패 로그 통합 보관

커밋 식별자, Runner 태그, Xcode 버전, 의존성 요약, 실패 단계와 비식별화 로그를 저장합니다. 로그에는 보존 기간을 설정하고 접근 토큰은 포함하지 마세요.

저장소와 팀 가까이에 노드 배치

싱가포르, 일본(도쿄), 한국(서울), 홍콩, 미국 동부에서 노드를 선택할 수 있습니다. 코드 저장소 위치, 팀 시간대와 산출물 전달 방향을 우선 고려하세요.

크로스 플랫폼 프로젝트

React Native와 Flutter의 병목은 대개 네이티브 계층에 있습니다

JavaScript 또는 Dart 코드는 여러 환경에서 개발할 수 있지만, iOS 의존성 해결, 시뮬레이터 테스트, 서명과 아카이브에는 여전히 macOS와 Xcode가 필요합니다. 고정 클라우드 Mac을 사용하면 이 작업을 개인 컴퓨터에서 팀 파이프라인으로 옮길 수 있습니다.

React Native

JavaScript와 네이티브 의존성 분리 관리

  • 의존성 복원:잠금 파일에 따라 Node.js 패키지를 설치한 뒤 iOS 디렉터리로 이동해 CocoaPods 의존성을 복원합니다.
  • 캐시 경계:패키지 관리자 캐시, Pods 캐시와 DerivedData에 각각 키를 설정하고 전체 작업 디렉터리를 캐시로 사용하지 않습니다.
  • 테스트 순서:타입 검사와 JavaScript 테스트를 먼저 실행한 뒤 네이티브 단위 테스트 또는 시뮬레이터 검사를 실행합니다.
  • 서명 빌드:릴리스 브랜치에서 고정 Scheme을 호출해 Archive, IPA, dSYM과 내보내기 로그를 생성합니다.
  • 다중 브랜치 전략:기능 브랜치는 검증만 수행하고 후보 브랜치에서만 서명 권한을 열어 모든 커밋마다 릴리스 패키지가 생성되지 않도록 합니다.
Flutter

Dart 단계와 Xcode 단계를 별도로 기록

  • 환경 확인:Flutter, Dart, CocoaPods와 Xcode 버전을 고정하고 작업 시작 시 버전 요약을 출력합니다.
  • 네이티브 의존성:iOS 플러그인 의존성을 복원하고 추가 시스템 권한 또는 최소 배포 버전이 필요한지 확인합니다.
  • 시뮬레이터 테스트:컴포넌트 테스트와 iOS 시뮬레이터 테스트를 분리하고 실패 시 테스트 보고서와 스크린샷을 보존합니다.
  • 서명 아카이브:제어된 구성으로 iOS Archive를 생성한 뒤 내보내기 옵션과 서명 결과를 다시 확인합니다.
  • 브랜치 격리:안정 브랜치와 실험 브랜치에 서로 다른 작업 디렉터리를 사용해 빌드 산출물과 캐시가 서로 덮어쓰지 않도록 합니다.
CHECK 01 커밋과 함께 잠금 파일도 업데이트되었나요

의존성 선언은 변경됐지만 잠금 파일이 업데이트되지 않으면 로컬 성공과 CI 실패를 재현하기 어렵습니다.

CHECK 02 네이티브 모듈에 새 도구 체인이 필요한가요

플러그인을 업그레이드하기 전에 Xcode, 배포 대상과 CocoaPods 조건을 확인한 후 고정 노드를 업데이트하세요.

CHECK 03 캐시를 안전하게 무효화할 수 있나요

모든 캐시는 삭제 후 재생성할 수 있어야 하며, 캐시를 유일한 의존성 원천으로 사용해서는 안 됩니다.

Apple Silicon 추론

고메모리 노드에서 지속적인 모델 실험을 실행하세요

클라우드 Mac은 모델 준비, 추론 실행, 지표 기록과 결과 내보내기를 고정된 Apple Silicon 환경에 배치하는 데 적합합니다. 학습 플랫폼을 대체하는 것이 아니라 로컬 추론 경로 검증, 실험 일괄 실행과 macOS 대상 환경의 리소스 성능 관찰에 적합합니다.

권장 고메모리 구성

ZoneMini M4 Pro

M4 Pro · 64GB · 2TB

01 모델 및 검증 파일 준비

모델 버전, 출처, 파일 요약, 양자화 방식과 실행 스크립트 버전을 기록합니다. 대용량 파일은 실험 디렉터리에 넣기 전에 무결성을 확인하세요.

02 실행 환경 격리

실험별 독립 환경을 만들고 Python 패키지와 네이티브 의존성을 고정합니다. 검증된 기준 환경이 임시 업그레이드로 바뀌지 않도록 하세요.

03 배치 추론 실행

배치 크기, 입력 길이와 동시성에 따라 부하를 단계적으로 높이고 최대 메모리, 실행 시간, 실패 샘플과 재시도 횟수를 기록합니다.

04 지표 및 결과 내보내기

매개변수, 환경 요약, 출력 파일과 비식별화 로그를 함께 내보냅니다. 최종 평균값만 남기지 말고 이상 샘플도 추적하세요.

ZoneMini M4 Pro 선택하기
오디오·비디오 배치 처리

장시간 트랜스코딩은 고정 노드에서 처리하고 완성물을 아카이브 시스템으로 전달하세요

오디오·비디오 작업은 일반적으로 프로세서, 메모리와 디스크를 동시에 사용합니다. 입력 동기화, 임시 처리, 품질 검사와 최종 반환을 분리해 클라우드 Mac의 작업 디스크를 장기 미디어 저장소로 사용하지 않도록 하세요.

입력 목록 1개

미디어 동기화 및 요약 확인

작업 목록에 따라 원본 파일, 자막, 오디오 트랙과 처리 매개변수를 동기화합니다. 전송 후 파일 크기 또는 요약을 확인해 불완전한 미디어로 장시간 작업을 시작하지 않도록 합니다.

입력
원본 영상, 오디오 트랙, 자막, 매개변수표
기록
파일 요약, 인코딩 요구 사항, 출력 이름
배치 작업 N개

트랜스코딩 및 프록시 파일 생성

해상도, 인코딩 형식 또는 프로젝트 배치별로 작업을 나눕니다. 파형, 프록시 파일 또는 썸네일이 필요하면 동일한 작업 기록에 생성 매개변수를 저장합니다.

처리
일괄 트랜스코딩, 파형, 프록시 파일, 썸네일
격리
배치별 독립 임시 디렉터리와 실패 목록
품질 검사 2회

자동 검사 후 수동 샘플 검사

먼저 재생 시간, 해상도, 오디오 트랙 수와 출력 파일의 완전성을 확인한 뒤 핵심 구간을 수동으로 샘플 검사합니다. 실패 파일은 해당 배치만 다시 실행합니다.

자동
재생 시간, 크기, 오디오 트랙, 파일 무결성
수동
화면, 음성, 자막 및 핵심 구간
전달 디렉터리 1개

완성물 반환 및 임시 디스크 정리

완성물, 처리 로그와 실패 목록을 팀이 지정한 저장소로 반환합니다. 반환이 완료되면 임시 파일을 정리해 로컬 디스크가 계속 차지되지 않도록 합니다.

산출물
완성 파일, 로그, 실패 작업 목록
경계
작업 디스크는 장기 보관 위치로 사용하지 않음
출시 전 준비

제출 전 검사를 파이프라인 게이트로 운영하세요

아카이브 성공이 곧 제출 조건 충족을 의미하지는 않습니다. 버전 정보, 서명, 개인정보 목록, 아카이브 검증, 스크린샷 자료와 릴리스 설명을 전달 전에 항목별로 확인해야 합니다. ZoneMini는 실행 환경을 제공하며 앱 배포 플랫폼의 심사 규정을 대신하지 않습니다.

RELEASE GATE

6가지 검사를 모두 통과한 후 후보 패키지를 전달하세요

각 후보 빌드의 검사 결과, 커밋 해시, 버전 번호와 빌드 번호를 저장합니다. 문제가 발견되면 해당 단계로 돌아가고 최종 제출 직전에 기록되지 않은 구성을 임시로 변경하지 마세요.

  1. 01
    버전 번호 및 빌드 번호

    릴리스 브랜치, 변경 기록과 후보 패키지에 일치하며 빌드 번호가 중복되지 않는지 확인합니다.

  2. 02
    서명 및 프로비저닝 프로파일

    Bundle ID, 서명 ID, 권한 선언과 내보내기 방식이 대상과 일치하는지 검증합니다.

  3. 03
    개인정보 목록

    앱과 의존성에 포함된 개인정보 선언을 확인하고 새 SDK가 검사 범위에 포함됐는지 확인합니다.

  4. 04
    아카이브 검증

    검증 출력을 저장하고 누락된 심볼, 권한 불일치 또는 지원되지 않는 빌드 설정을 처리합니다.

  5. 05
    스크린샷 및 메타데이터 자료

    대상 기기, 언어와 버전에 맞춰 스크린샷, 설명과 업데이트 내용을 준비하고 파일 이름을 확인합니다.

  6. 06
    제출 전 회귀 테스트

    후보 패키지에서 시작, 로그인, 핵심 경로, 네트워크 오류와 업그레이드 시나리오를 점검합니다.

실행 환경과 심사 규정을 분리해 관리

클라우드 Mac은 빌드, 검증과 산출물 정리를 지속 실행할 수 있지만 앱 콘텐츠, 메타데이터, 규정 준수 요건과 최종 심사 결과는 해당 플랫폼의 규정에 따라 결정됩니다. 팀 자체의 출시 승인 담당자와 롤백 절차를 유지하세요.

워크플로 조합 권장 사항

큐, 권한과 협업 범위에 따라 노드를 조합하세요

노드 수를 팀 인원만 보고 결정해서는 안 됩니다. 동시에 실행되는 작업 수, 독립적인 서명 경계의 필요 여부, 캐시 공유 가능 여부와 구성원·저장소 분포를 먼저 확인한 뒤 단일 노드 또는 다중 노드를 선택하세요.

지속 실행 노드 1개

개인 개발자

하나의 고정 환경에서 일상 개발, 테스트와 후보 패키지 아카이브를 처리하세요. 의존성 버전, 서명 단계와 정리 스크립트를 저장소에 기록해 로컬 컴퓨터와 원격 환경의 차이를 줄입니다.

  • 경량 단일 프로젝트는 ZoneMini M4 Core부터 시작
  • 크로스 플랫폼 프로젝트 또는 캐시가 많다면 ZoneMini M4 Plus 우선 고려
  • 아카이브, 로그와 보관할 프로젝트 자료를 정기적으로 내보내기
작업 큐 2종

CI 팀

최소한 커밋 검증과 릴리스 아카이브를 분리하세요. 작업량이 늘면 태그에 따라 노드를 추가하고, 서명 권한이 있는 Runner가 모든 일반 테스트를 맡지 않도록 합니다.

  • 짧은 테스트 큐는 우선 처리하고 장시간 아카이브는 별도 큐로 분리
  • 노드 캐시는 프로젝트별로 격리하고 실패 로그는 통합 보관
  • 고메모리 또는 병렬 작업은 ZoneMini M4 Pro에 연결
선택 가능한 노드 5개

분산 팀

싱가포르, 일본(도쿄), 한국(서울), 홍콩, 미국 동부 중 코드 저장소, 주요 구성원 또는 전달 경로에 가까운 위치를 선택하세요. 구성원 위치만 기준으로 균등 배분하지 마세요.

  • 저장소와 상호작용이 잦다면 저장소가 있는 지역에 가까운 노드 우선
  • 그래픽 인터페이스 협업이 많다면 주요 작업자의 위치도 고려
  • 다중 노드에서 동일한 도구 체인 목록과 로그 형식 사용
먼저 확인 작업 유형 및 최대 동시성

빌드, 테스트, 추론과 미디어 작업이 동시에 실행되는지 나열하세요.

다음으로 확인 메모리, 저장 공간 및 실행 시간

프로젝트 이름이 아니라 실제 최대 사용량을 기준으로 세 가지 카탈로그 구성 중 선택하세요.

마지막으로 확인 노드, 기간 및 결제 방식

모든 주문은 USD로 결제되며 USDT-TRC20 및 Visa / Mastercard / Amex(Stripe를 통해)만 지원됩니다.

주문 전 준비

작업 규모에 맞춰 노드와 구성을 선택하세요

용도, 동시 작업 수, 대상 노드, 대여 기간과 저장 공간 요구 사항을 준비하세요. 먼저 연결 방식을 확인하려면 원격 접속 가이드를 참고하고, 구성 추천이 필요하면 팀에 문의하세요.