전용 Mac 한 대 · 두 가지 접속 경로

SSH로 빌드하고,
VNC로 Xcode를 사용하세요

명령줄과 그래픽 데스크톱에서 같은 물리 Mac mini에 접속합니다. 러너가 작업을 계속 실행하도록 두고, Xcode·시뮬레이터·인증서 설정을 확인할 때 화면 공유를 여세요.

Apple Silicon M4 · 2가지 구성 · 하루 $20부터. 한 대의 Mac을 고객 한 명에게만 배정하며 가상 머신이 아닙니다.

팀 전용 레인

작업은 계속 실행하고, 데스크톱은 필요할 때만

SSH자동화 경로
  1. 프로젝트 동기화
  2. 테스트 실행
  3. 빌드 결과물 보관
VNC대화형 점검 경로
  1. Xcode 열기
  2. 시뮬레이터 확인
  3. 서명 확인

프로젝트, 디스크, 툴체인을 공유하므로 별도로 설정해야 하는 두 대의 머신이 아닙니다. 데스크톱 작업도 전체 머신 리소스를 사용합니다.

역할을 나눈 뒤 연결하세요

자동화는 명령줄에서, 대화형 점검은 데스크톱에서

두 방식을 함께 사용할 수 있습니다. 접속 경로는 컴퓨터 앞에 사람이 있는지가 아니라 작업에 그래픽 인터페이스가 필요한지에 따라 선택하세요.

SSH: 반복 작업에 적합

xcodebuild 빌드와 테스트, 러너 등록 및 로그 확인, scp·rsync 파일 동기화에 사용하세요. 빌드 로그는 텍스트이므로 데스크톱 화면을 계속 전송할 필요가 없습니다.

  • 의존성 설치, 테스트, 아카이브 작업을 파이프라인에 넣어 수동 클릭을 줄이세요.
  • 러너 프로세스, 작업 디렉터리, 남은 디스크 공간, 실패 로그를 확인하세요.
  • 서비스로 러너를 관리해 장시간 작업이 일회성 SSH 세션에 묶이지 않도록 하세요.

적합한 단계: PR 검증, nightly 빌드, 대량 패키징, 빌드 결과물 동기화

VNC: 화면을 직접 확인해야 하는 작업에 적합

Xcode GUI, 시뮬레이터 조작, 키체인 및 인증서 설정에 사용하세요. macOS 내장 화면 공유나 호환 VNC 클라이언트로 연결할 수 있습니다.

  • 프로젝트 타깃, 빌드 설정, 서명 설정의 실제 상태를 확인하세요.
  • 시뮬레이터를 열어 UI 문제를 재현하고 런타임과 기기 유형을 확인하세요.
  • 대화형 확인이 필요한 설정을 처리한 뒤 반복 가능한 절차는 스크립트에 반영하세요.

적합한 단계: 환경 초기 설정, GUI 문제 해결, 출시 전 수동 점검

첫 연결

인증 정보를 한 번 확인하고 두 경로를 각각 테스트하세요

콘솔에 로그인해 해당 인스턴스의 상세 정보를 여세요. 주소, 사용자 이름, 포트, 인증 방식은 인스턴스에 표시된 값을 사용하세요. SSH 포트를 VNC 포트로 간주하지 마세요.

  1. 01

    인스턴스 인증 정보 확인

    인스턴스 ID와 노드를 확인하고 SSH와 VNC 연결 정보를 각각 기록하세요. 처음 연결하기 전에 인스턴스를 사용할 수 있는지 확인하세요. 콘솔에 인증 정보가 아직 표시되지 않으면 주문 정보를 보관하고 콘솔 지원 티켓으로 문의하세요. 주소나 비밀번호를 반복해서 추측하지 마세요.

  2. 02

    명령줄 연결 확인

    인스턴스에서 제공한 포트와 사용자 이름으로 연결하세요. 처음 호스트 키 지문 안내가 나타나면 먼저 확인하세요. 같은 주소의 지문이 갑자기 바뀌면 연결을 중단하고 인스턴스가 재할당되었는지 확인하세요.

    ssh -p "$SSH_PORT" "$MAC_USER@$MAC_HOST"
    sw_vers
    uname -m
    xcode-select -p
    df -h

    로컬 터미널에서 변수를 콘솔에 표시된 실제 값으로 설정하세요. 연결되면 macOS 버전, 아키텍처, 개발자 디렉터리, 디스크 여유 공간을 확인하세요.

  3. 03

    화면 공유 열기

    로컬 Mac에서 ‘화면 공유’를 열고 인스턴스에서 제공한 VNC 주소와 포트를 입력하세요. 다른 운영체제에서는 호환 클라이언트를 사용하세요. 인스턴스의 인증 방식으로 로그인한 뒤 데스크톱이 보이고 마우스를 조작할 수 있는지 확인하고 Xcode를 여세요. 연결에 실패하면 주소, 포트, 인증 정보, 로컬 네트워크 제한을 차례로 확인하세요.

  4. 04

    접근 권한 강화

    처음 로그인한 뒤 인스턴스에서 지원하는 방법으로 초기 인증 정보를 변경하세요. 팀원별로 SSH 키를 관리하고 비밀번호를 저장소에 넣지 마세요. 러너에는 최소 권한의 등록 토큰을 사용하고 인증 정보, 인증서, 개인 키는 통제된 비밀 정보 관리 절차에 보관하세요. 최소 구성으로 한 번 빌드한 다음 정식 파이프라인을 활성화하세요.

노드 5곳 · 네트워크 참고치

데스크톱 작업은 왕복 지연, 빌드는 데이터 경로를 확인하세요

VNC의 클릭 반응은 왕복 지연의 영향을 받습니다. 지속적인 빌드에서는 저장소, 의존성 소스, 빌드 결과물 저장 위치도 중요합니다. 아래 수치는 노드별 참고 범위이며 현재 위치에서 측정한 결과나 연결 지연 보장이 아닙니다.

노드, 서비스 권역, 왕복 지연 참고 범위. 주요 작업 방식에 맞춰 접속 위치를 선택하세요
노드 서비스 권역 왕복 지연 참고 범위 적합한 작업 방식
싱가포르 동남아시아 20~50ms 동남아시아 팀의 대화형 개발. 저장소와 의존성 다운로드 경로도 함께 확인하세요.
일본(도쿄) 동아시아 30~60ms 동아시아 팀의 Xcode 조작. 러너와 빌드 결과물 저장소는 가능한 한 가까운 곳에 두세요.
대한민국(서울) 동북아시아 30~50ms 동북아시아 팀의 시뮬레이터 확인, 원격 문제 해결, 프로젝트 동기화
홍콩 화남 및 동남아시아 20~40ms 화남 및 동남아시아 팀의 화면 공유와 일상적인 빌드 작업
미국 동부 북미 동부 및 서유럽 25~35ms 해당 권역에 있는 팀의 협업. 코드와 빌드 결과물 위치를 고려해 노드를 선택하세요.

참고 범위이며 실제 값은 접속 네트워크에 따라 달라집니다.

주로 사용하는 사무실 네트워크에서 데스크톱 작업, 의존성 다운로드, 빌드 결과물 업로드를 각각 한 번씩 실행하세요. 상호작용 반응, 전송 시간, 빌드 시간을 따로 기록하고 이를 하나의 ‘머신 속도’로 뭉뚱그리지 마세요.

화면 부하를 먼저 줄이고 네트워크 경로를 확인하세요

현재 작업에 대역폭을 확보하세요

화면 설정은 필요한 수준부터 시작하세요. 원격 화면이 크고 자주 바뀔수록 인코딩과 전송 부담이 커집니다. 데스크톱 설정을 조정해도 컴파일러의 작업량은 줄지 않지만 상호작용 중 대기 시간은 줄일 수 있습니다.

작업 영역에 맞춰 해상도 설정

먼저 1440 × 900 또는 1600 × 900으로 설정해 편집기와 로그를 모두 읽을 수 있는지 확인하세요. 패널을 더 표시해야 할 때만 해상도를 높이고, 처음부터 고해상도 전체 화면을 전송하지 마세요.

한 번에 한 가지씩 바꾸고 글자 선명도와 창을 드래그할 때의 반응을 비교하세요.

클라이언트에서 색상 심도와 화질 조정

클라이언트에 색상 심도, 화질, 압축 옵션이 있다면 대역폭이 부족할 때 먼저 화면 화질을 낮추세요. 코드가 읽힐 정도의 선명도는 유지하고 동영상 재생이나 불필요한 창의 지속적인 새로 고침은 피하세요.

클라이언트마다 옵션 이름이 다르므로 실제로 제공되는 설정을 사용하세요.

조작하지 않을 때는 화면 연결을 끊으세요

대용량 파일을 동기화하거나 네트워크가 불안정할 때는 SSH로 텍스트 로그를 확인하고 서비스로 설정된 러너에 빌드를 맡기세요. 장시간 작업을 그래픽 터미널 창에 의존하지 말고 대화형 세션이 끊겨도 작업이 실행되는지 먼저 확인하세요.

점검이 끝나면 데스크톱 연결을 끊되 시스템에서 로그아웃하거나 종료하지 마세요.

Xcode 원격 개발의 한계

데스크톱에서 확인하고 파이프라인에서 재현하세요

수동 점검을 추적 가능한 환경 변경으로 남기세요. Xcode 버전, 시뮬레이터 런타임, 서명 설정을 기록한 뒤 같은 프로젝트를 명령줄에서 검증하세요. 데스크톱에서 한 번 클릭한 설정만 남겨두지 마세요.

로컬 작업 환경에서 클라우드 Xcode에 접속하는 방식을 보여주는 원격 개발 워크스페이스의 컴퓨터와 데스크톱 기기
원격 개발 워크스페이스 예시. 화면 공유는 클라우드 데스크톱을 전송하며 로컬 주변 기기를 원격 머신에 자동으로 연결하지 않습니다.

클라우드에서 가능한 작업

Xcode 프로젝트 점검, 빌드 및 아카이브, 시뮬레이터 테스트, 인증서 설정은 모두 원격 macOS 환경에서 실행됩니다. SSH와 VNC는 같은 파일을 사용하므로 러너가 사용 중인 작업 디렉터리를 수동으로 수정하지 않도록 주의하세요.

실기기 디버깅은 별도로 준비하세요

로컬에 연결된 iPhone은 VNC를 켜도 클라우드 Xcode에 표시되지 않습니다. 실기기 테스트에는 별도의 기기 연결과 테스트 절차가 필요합니다. 먼저 클라우드에서 서명된 빌드를 만든 뒤 팀의 기존 배포 절차에 따라 테스트 기기로 전달할 수 있습니다.

프로젝트, 캐시, 빌드 결과물을 각각 관리하세요

작은 파일은 직접 전송하고 반복 동기화에는 증분 방식을 사용하세요

저장소는 버전 이력을 관리하고 파일 동기화는 작업 사본과 빌드 결과물을 관리합니다. 인증서, 개인 키, 토큰을 일반 프로젝트 디렉터리에 섞어 전송하지 마세요. 업로드 전에 제외 규칙과 대상 경로를 확인하세요.

scp: 빌드 결과물 한 번 전송

특정 아카이브나 리소스 패키지 하나를 전송할 때 적합합니다. 아래 예시는 원격에서 생성된 압축 파일을 다운로드합니다. 원격 디렉터리와 파일 이름은 실제 경로로 바꾸세요.

scp -P "$SSH_PORT" \
  "$MAC_USER@$MAC_HOST:build/ios-build.zip" \
  ./ios-build.zip

scp의 포트 옵션은 대문자 -P입니다. 완료 후 파일 크기를 확인하고, 내용이 일치하는지 검증하려면 양쪽의 체크섬을 비교하세요.

rsync: 프로젝트 작업 사본 동기화

같은 디렉터리를 반복해서 동기화할 때 적합합니다. 처음에는 미리보기를 실행해 대상 경로와 제외 항목을 확인하세요. 끝에 붙는 슬래시는 디렉터리 안의 내용을 동기화한다는 뜻입니다.

rsync -avn \
  -e "ssh -p $SSH_PORT" \
  --exclude '.git/' \
  --exclude 'DerivedData/' \
  ./project/ "$MAC_USER@$MAC_HOST:project/"

미리보기 결과를 확인한 뒤 -avn 을 -av 로 바꿔 실행하세요. 삭제 옵션은 사용하지 않았으므로 로컬에 없는 파일이 원격에서 바로 제거되지 않습니다.

접속 위치를 정한 뒤 첫 작업을 실행하세요

가장 가까운 노드를 선택하세요

대화형 개발은 사무실 네트워크를, 지속적인 빌드는 저장소와 결과물 위치를 기준으로 선택하세요. 주문할 때 노드를 선택하고 실제 사용 가능 여부는 콘솔에 실시간으로 표시되는 정보를 확인하세요.