사양보다 워크플로에 맞춰 선택

클라우드 Mac 한 대, 네 가지 활용

개발 워크플로에 전용 Apple Silicon 물리 노드를 더하세요. 가상 머신이 아닌 Mac에서 SSH와 macOS 그래픽 인터페이스를 사용할 수 있습니다. 한 번의 패키징부터 상시 파이프라인, 통합 메모리 기반 추론 실험까지 지원합니다.

세 가지 구성, 다섯 곳의 노드. Shell M4는 일 $21.8 부터 이용할 수 있습니다. 내 프로젝트로 먼저 검증해 보세요.

01 / BUILD

주 사용 컴퓨터는 그대로,
Xcode는 클라우드에서

평소에는 Windows나 Linux에서 코딩하고, 릴리스할 때 저장소를 클라우드 Mac에 동기화한 뒤 SSH로 빌드하세요. 프로젝트 설정, 시뮬레이터, 서명 구성을 확인해야 할 때는 macOS 그래픽 인터페이스로 전환하면 됩니다. 일상적인 개발 환경 전체를 옮길 필요가 없습니다.

Shell M4는 단일 프로젝트의 빌드와 아카이브 흐름을 검증하기에 적합합니다. 통합 메모리 16GB가 충분한지는 프로젝트 규모, 시뮬레이터 수, 동시에 실행하는 도구에 따라 달라집니다. 먼저 최대 메모리 사용량과 클린 빌드 시간을 기록한 뒤 구성을 높일지 결정하세요.

  • 프로젝트에서 고정한 Xcode와 의존성 버전을 확인해 로컬에서는 성공하지만 원격에서는 실패하는 상황을 방지하세요.
  • 먼저 서명 없이 빌드한 다음, 사용 권한이 있는 인증서와 프로비저닝 프로파일을 설정하세요.
  • 아카이브 성공이 곧 릴리스 완료를 뜻하지는 않습니다. 서명 및 배포 권한과 빌드 산출물을 별도로 확인하세요.
02 / AUTOMATE

macOS 빌드에
상시 실행되는 러너

전용 물리 노드를 GitLab 또는 GitHub의 self-hosted runner로 등록해 커밋, 테스트, 아카이브, 산출물 전달을 하나의 파이프라인으로 처리하세요. 노드는 연중 365일 정상 운영됩니다. 작업 스케줄링, 프로세스 관리, 빌드 정리는 팀에서 프로젝트에 맞게 설정해야 합니다.

의존성 확인, 컴파일, 테스트를 여유 있게 처리하고 저장소, 의존성 캐시, 빌드 산출물을 보관하려면 통합 메모리 24GB와 SSD 512GB를 갖춘 Shell M4 Plus를 권장합니다. 동시 실행 수는 우선 1로 설정하세요. CPU, 메모리 압박, 디스크 증가를 관찰한 뒤 높이세요. 논리적 동시 실행 수가 처리량과 같지는 않습니다.

  • CI 전용 macOS 사용자를 만들어 수동 데스크톱 작업과 작업 디렉터리를 분리하세요.
  • 러너 태그에 macOS, 칩 아키텍처, Xcode 버전을 함께 지정해 작업이 잘못 배정되지 않게 하세요.
  • 그래픽 세션이나 서명 키체인이 필요한 작업은 같은 사용자 세션에서 권한을 먼저 확인하세요.
  • 릴리스 자격 증명이 있는 러너에는 신뢰할 수 있는 저장소의 작업만 허용하고 외부 기여 코드는 격리하세요.
03 / VERIFY

야간 테스트 결과를 나중에도 확인하세요

fastlane으로 작업을 구성하고 XCUITest로 UI를 테스트한 뒤, 결과 번들에 실패 당시의 정보를 보관하세요. 테스트 환경을 먼저 고정하고 기기 범위를 넓히세요.

먼저 시뮬레이터에서 회귀 테스트

프로젝트에 필요한 시뮬레이터 런타임을 설치하고 대상 기기와 OS 버전을 고정하세요. 먼저 xcrun simctl list devices available 로 사용 가능한 대상을 확인한 다음, 실제 기기 식별자를 테스트 설정에 입력하세요.

야간 작업 결과로 .xcresult와 스크린샷, 로그를 저장하세요. 실패가 발생하면 무한 재시도로 원인을 덮지 말고 제품 결함, 불안정한 테스트 스크립트, 환경 문제를 구분하세요.

적합한 용도: 커밋 검사와 야간 회귀 테스트

iOS 실기기는 별도 확인이 필요합니다

물리 Mac을 대여해도 iPhone이나 iPad가 함께 제공되는 것은 아닙니다. 이 서비스의 상품에는 iOS 기기가 포함되지 않으며, 기기 연결도 기본 제공되지 않습니다. 주문 전에 기기 소유자, 연결 방식, 테스트 도구를 확인하세요.

내 컴퓨터에 연결된 USB 기기가 SSH 로그인만으로 원격 Mac에 나타나지는 않습니다. 테스트에는 연결 가능한 기기, 페어링과 신뢰 설정, 적절한 서명 권한이 필요합니다. 가능 여부를 먼저 이메일로 확인하세요.

실행할 때마다 결과 번들 저장

프로젝트에서 fastlane 테스트 lane을 설정한 뒤 실행하세요. 결과 디렉터리를 작업 번호별로 분리하고 테스트가 끝나면 다른 곳으로 옮겨 노드에 장기간 쌓이지 않게 하세요.

bundle exec fastlane scan \
  --scheme App \
  --result_bundle true \
  --output_directory build/test-results
04 / EXPERIMENT

통합 메모리로
추론 가설 검증

M4 Pro 칩, 통합 메모리 64GB, SSD 2TB를 탑재한 Shell M4 Pro는 MLX 또는 llama.cpp로 모델 로딩, 양자화 버전, 컨텍스트 길이, Metal 추론 경로를 검증하기에 적합합니다. CPU와 GPU가 통합 메모리를 사용하지만, 전체 메모리를 모델 가중치에 쓸 수 있다는 뜻은 아닙니다.

모델을 선택할 때는 먼저 가중치 메모리를 계산하고 실행 여유 공간을 남겨 두세요. 4비트 가중치를 기준으로 대략 계산하면 8B 파라미터는 약 4GB, 32B는 약 16GB가 필요합니다. 이는 파라미터 수에 파라미터당 0.5바이트를 곱한 값일 뿐이며, 양자화 메타데이터, KV 캐시, 런타임, 시스템 사용량은 포함하지 않습니다. 이 계산만으로 특정 모델의 로딩을 보장할 수는 없습니다.

  • 짧은 컨텍스트와 단일 요청으로 첫 토큰 지연 시간과 안정적인 생성 속도를 측정한 뒤 컨텍스트나 동시 실행 수를 늘리세요.
  • 모델 버전, 양자화 형식, 도구 버전, 샘플링 매개변수를 기록해 설정이 다른 결과를 한데 비교하지 않도록 하세요.
  • CUDA 생태계나 멀티 GPU 학습이 필요한 작업은 이 Mac을 같은 용도의 대체품으로 간주해서는 안 됩니다.
로컬에서 클라우드로

세 단계로 이전하고 각 단계를 따로 검증하세요

사용자 디렉터리 전체를 그대로 복사하지 마세요. 먼저 프로젝트를 옮기고, 툴체인을 복원한 뒤, 마지막으로 작업을 전환하세요. 아래 시간은 수동 작업을 위한 예상치이며, 서비스 개통 시간은 아닙니다. 다운로드, 전송, 컴파일 시간은 별도입니다.

01

데이터: 저장소를 다시 구성할 수 있게

작업 예상 시간: 10~30분, 전송 시간 제외

처음 이전할 때는 저장소를 클론하는 방법을 우선하세요. 커밋하지 않은 리소스만 별도로 증분 동기화합니다. 아래 명령은 로컬에서 실행합니다. cloud-mac 은 미리 설정한 SSH 별칭이며, 저장소 주소는 프로젝트 자체 환경 변수에서 가져옵니다.

ssh cloud-mac 'mkdir -p ~/work'
rsync -av --exclude '.git' \
  ./App/ cloud-mac:~/work/App/
ssh cloud-mac
git clone "$REPOSITORY_URL" ~/work/repo

검증 기준: 커밋 번호가 일치하고 필요한 리소스가 모두 있어야 합니다. 캐시와 다시 만들 수 있는 빌드 디렉터리는 옮길 필요가 없습니다.

02

툴체인: 버전과 권한 고정

작업 예상 시간: 20~60분, 다운로드 시간 제외

원격 환경에서 Xcode 경로와 SDK를 확인하세요. Brewfile이 있다면 Homebrew로 도구를 복원합니다. 인증서와 프로비저닝 프로파일은 팀에서 승인한 안전한 경로로 전달하고, 저장소나 작업 로그에는 넣지 마세요.

xcode-select -p
xcodebuild -version
xcodebuild -showsdks
brew bundle --file Brewfile
security list-keychains -d user

검증 기준: 의존성 버전이 일치하고 대상 SDK를 사용할 수 있어야 합니다. 실제 작업 실행 사용자로 서명 아카이브를 한 번 만드세요.

03

CI: 먼저 시험 실행한 뒤 태그 전환

작업 예상 시간: 15~45분, 빌드 시간 제외

조직에서 발급한 등록 정보로 러너를 연결하세요. 아래는 GitLab 명령입니다. GitHub Runner는 조직에서 제공하는 설정 스크립트를 사용하고 노드에서 서비스 상태를 확인하세요. 토큰은 신뢰할 수 있는 세션에서만 입력하세요.

gitlab-runner register
gitlab-runner install
gitlab-runner start
gitlab-runner verify

검증 기준: 테스트 브랜치에서 새 태그를 사용하고 산출물을 다운로드할 수 있어야 합니다. 확인이 끝나면 정식 파이프라인으로 전환하고, 롤백을 위해 기존 실행 환경을 유지하세요.

이전 성공 여부는 “SSH 로그인 가능”이 아니라 동일한 커밋으로 의존성 설치, 빌드, 테스트, 산출물 전달을 완료할 수 있는지로 판단하세요. 어느 단계에서든 실패하면 로그를 보존한 뒤 다음 단계로 진행하세요.

시간대가 다른 팀의 인수인계

공유할 것은 일정이지, 비밀번호가 아닙니다

팀이 한 노드를 시간대별로 나눠 쓸 수 있지만 CPU, GPU, 메모리, 디스크는 같은 리소스를 공유합니다. 여러 시스템 사용자가 가상 머신과 같은 격리 경계를 만드는 것은 아닙니다. 릴리스 자격 증명과 민감한 프로젝트에는 더 엄격한 권한 설계가 필요합니다.

  1. 01

    개인별 계정 사용

    팀원마다 별도의 macOS 사용자 계정과 SSH 공개 키를 사용해 개인 키를 공유하지 마세요. CI에는 전용 계정을 사용하세요. 팀원이 떠나면 해당 키를 제거하고 관련 토큰도 확인하세요.

  2. 02

    작업 시간에 맞춰 인수인계

    일정은 공통 시간대를 사용하고, 인수인계 기록에는 커밋 번호, 작업 디렉터리, 실행 중인 프로세스, 다음 작업을 명시하세요. 오래 걸리는 작업은 Runner나 관리되는 세션에 맡기고 데스크톱 연결을 계속 열어 두지 마세요.

  3. 03

    서명 권한 별도 관리

    실행 사용자별로 키체인 권한을 확인하고 잠금 해제 암호를 셸 기록에 남기지 마세요. 인수인계 전에 대화형 서명 요청이 남아 있지 않은지 확인하고, 다른 사람의 릴리스 작업 도중 사용자 세션을 종료하지 마세요.

  4. 04

    데이터 사본 확보

    코드는 저장소에 푸시하고 산출물은 팀 스토리지로 전달하며 자격 증명은 별도로 안전하게 보관하세요. 만료 전에 백업을 완료하고 노드를 유일한 보관 장소로 사용하지 마세요. 갱신 및 만료 정보는 콘솔에 표시되는 내용을 기준으로 확인하세요.

NEXT / RUN YOUR PROJECT

먼저 작업을 선택하고
첫 노드를 시작하세요

단일 프로젝트 빌드는 Shell M4, 팀 파이프라인은 Shell M4 Plus, 대용량 메모리 추론 실험은 Shell M4 Pro로 시작하세요. 주문 페이지에서 이용 기간, 노드, 추가 옵션을 확인하세요.

USDT-TRC20 및 Visa / Mastercard / Amex(Stripe)만 지원하며 모든 결제는 USD로 처리됩니다. 실제 이용 가능한 결제 수단은 백엔드 응답을 기준으로 합니다.