연결한 뒤 테스트 실행

SSH로 명령을 실행하고 VNC로 데스크톱을 확인하세요.
두 가지 모두 연결할 수 있습니다

가상 머신이 아닌 전용 물리 Mac에 연결합니다. 먼저 콘솔의 머신 상세 페이지에서 IP 주소, 연결 포트, 접속 정보를 확인하세요. SSH로 빌드와 테스트를 실행하고 VNC로 macOS 그래픽 인터페이스를 확인할 수 있습니다. 두 방식을 함께 사용하면 매번 원격 데스크톱에서 빌드 작업을 할 필요가 없습니다.

주문을 완료했다면 먼저 머신이 준비됐는지 확인한 다음 연결하세요. 포트, 사용자 이름, 인증 방식은 해당 인스턴스의 상세 정보에 표시된 내용을 따르세요. 예시를 보고 추측하지 마세요.

작업에 맞는 접속 방식 선택

빌드는 SSH로, 화면 문제는 VNC로

먼저 명령줄 연결을 안정화한 뒤 데스크톱을 여세요. 그러면 네트워크 문제와 인증 문제를 따로 파악할 수 있고, 데스크톱 화면 갱신이 빌드 로그 전송에 필요한 대역폭을 차지하는 것도 방지할 수 있습니다.

SSH: 머신에서 명령 실행

xcodebuild 실행, 스크립트 구동, 로그 확인, 빌드 결과물 관리에 적합합니다. macOS 터미널, Windows Terminal의 OpenSSH, Linux용 SSH 클라이언트를 사용할 수 있습니다.

  • 인스턴스 상세 정보에서 SSH 포트를 확인하세요. 22는 흔히 사용하는 기본값이지만, 사용 중인 인스턴스에도 반드시 적용된다고 볼 수는 없습니다.
  • 처음 연결할 때 호스트 키를 검증하세요. 접속 대상이 맞는지 확인한 뒤 인증을 진행합니다.
  • 공개 키 로그인을 설정하세요. 개인 키는 로컬에 보관하고 프로젝트 저장소나 지원 티켓에 첨부하지 마세요.
  • 장시간 작업에는 설정해 둔 영구 세션이나 파이프라인 실행기를 사용하세요. 로컬 터미널이 계속 연결된 상태라고 해서 작업이 보장되는 것은 아닙니다.
SSH 및 빌드 예시 보기

VNC: macOS 데스크톱을 바로 확인

프로젝트 설정 변경, 시뮬레이터 화면 확인, 그래픽 인터페이스에서만 발생하는 문제를 파악할 때 적합합니다. macOS 화면 공유나 RealVNC 등 호환 클라이언트를 사용할 수 있으며, 지원되는 인증 방식은 클라이언트와 인스턴스 설정에 따라 다릅니다.

  • 클라이언트에 인스턴스 IP와 VNC 포트를 입력하세요. 데스크톱 연결에 SSH 포트를 사용하지 마세요.
  • 상세 페이지에 표시된 데스크톱 인증 정보를 사용하세요. SSH와 인증 방식이 같다고 가정하지 마세요.
  • 처음에는 1440 × 900 해상도로 시작한 뒤 로컬 화면과 네트워크에 맞게 조정하세요.
  • 클라이언트에서 지원한다면 먼저 16비트 색 심도를 사용해 보세요. 색상 세부 정보를 확인해야 할 때 화질을 높이면 됩니다.
데스크톱 설정 순서 보기

VNC를 로컬 USB 기기 연결의 대체 수단으로 사용하지 마세요. 시뮬레이터 테스트와 원격 데스크톱은 바로 계획할 수 있지만, 외부 기기가 필요한 테스트는 기기 연결 조건을 먼저 확인한 뒤 대여 방식을 결정하세요.

연결부터 테스트 결과까지

호스트 키를 확인한 뒤 프로젝트 명령 실행

아래 내용은 교육용 예시이며 현재 노드의 실시간 실행 결과가 아닙니다. 명령에 사용되는 환경 변수는 실제 인스턴스 값으로 로컬에서 설정해야 합니다. App은 예시 scheme이므로 실행 전에 프로젝트에 실제로 있는 이름으로 바꾸세요.

metalvnc — tokyo-node — zsh
$ ssh -p "$SSH_PORT" "$MAC_USER@$MAC_IP"

The authenticity of host cannot be established.
ED25519 key fingerprint is displayed by your SSH client.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
yes
Authenticated using publickey.

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

$ xcrun simctl list devices available
== Devices ==
Available simulators are listed by the installed runtime.

$ xcodebuild -scheme App -destination 'platform=iOS Simulator' test
Test Suite 'AppTests' started.
Executed 128 tests, with 0 failures.
** TEST SUCCEEDED **

$ fastlane beta
Build processing completed.
Upload completed successfully.
fastlane finished successfully.

읽는 순서: SSH 인증 성공 확인 → 툴체인 확인 → 시뮬레이터 확인 → 테스트 실행 → 빌드 및 업로드 결과 확인

예시의 테스트 128개 통과, 실패 0개는 로그 읽는 법을 설명하기 위한 내용입니다. 실제 테스트 개수와 소요 시간, 업로드 결과는 프로젝트에 따라 다릅니다.

호스트 키가 다르면 먼저 확인하세요

처음 연결할 때 터미널에 표시된 호스트 키를 신뢰할 수 있는 출처의 기록과 대조하세요. 상세 페이지에 키 정보가 없다면 콘솔에서 지원 티켓을 제출해 확인하세요. 이후 호스트 신원이 변경되었다는 알림이 표시되면 기존 기록을 바로 삭제해 검사를 우회하지 마세요. 재설치나 인스턴스 교체가 있었는지 먼저 확인하세요.

명령이 실행돼도 프로젝트 설정이 끝난 것은 아닙니다

테스트를 실행하기 전에 Xcode 경로, 시뮬레이터 런타임, 프로젝트 의존성, 공유 scheme을 확인하세요. fastlane beta를 실행하려면 프로젝트에 해당 lane, 서명 자료, 업로드 자격 증명이 미리 설정되어 있어야 합니다. 어떤 프로젝트에서나 바로 쓸 수 있는 범용 업로드 명령은 아닙니다.

같은 기준으로 노드 비교

왕복 지연 시간을 측정한 뒤 데스크톱 반응 확인

선택 가능한 노드는 싱가포르, 도쿄, 서울, 홍콩입니다. 출발 도시와 노드 간 네트워크 경로가 실제 거리에 비해 작업 반응에 더 큰 영향을 줄 수 있습니다. 같은 도시에서도 통신사에 따라 결과가 다를 수 있습니다.

데이터 상태: 현재는 도시별로 검증할 수 있는 측정 샘플이 제공되지 않습니다. 표에는 실제 상태대로 ‘미측정’이라고 표시했으며, 추정 범위를 실측 중앙값처럼 기재하지 않았습니다. 선택 전에 사용 중인 네트워크로 직접 측정하세요. 회선을 미리 확인하려면 이메일이나 콘솔 지원 티켓으로 문의할 수 있습니다.

출발 도시 × 노드: ICMP 왕복 지연 시간 중앙값(ms)
측정 출발 도시싱가포르도쿄서울홍콩
상하이미측정미측정미측정미측정
선전미측정미측정미측정미측정
타이베이미측정미측정미측정미측정
방콕미측정미측정미측정미측정
시드니미측정미측정미측정미측정
로스앤젤레스미측정미측정미측정미측정
측정 기준: 가정용 인터넷에서 저녁 피크 시간대에 각 대상에 ICMP 요청을 100회 보내고, 응답이 성공한 왕복 시간의 중앙값과 패킷 손실률을 기록합니다. 이 표는 측정 전 기록이며 완료된 측정 보고서가 아닙니다. 추후 결과는 노드 선택을 위한 참고 자료이며 지연 시간을 보장하지 않습니다.

로컬에서 측정하세요. 원격 머신에서 원격 머신을 측정하지 마세요

macOS 또는 Linux에서는 아래 명령을 로컬에서 실행할 수 있습니다. Windows에서는 ping -n 100 뒤에 대상 IP를 입력하세요. 출발 통신사, 시간대, 성공 응답 수, 원본 출력을 기록하고 비교할 때는 네트워크와 조건을 동일하게 유지하세요.

ping -c 100 "$MAC_IP"

중앙값뿐 아니라 지터와 패킷 손실도 확인하세요

ping 요약에 표시되는 평균은 중앙값이 아닙니다. 각 응답의 원본 시간으로 중앙값을 계산해야 합니다. 패킷 손실이 지속되거나 간헐적으로 지연 시간이 크게 튀면 중앙값이 낮더라도 VNC 화면이 끊길 수 있습니다. ICMP가 차단됐다고 해서 SSH나 VNC도 사용할 수 없는 것은 아니므로 실제 연결 포트를 계속 확인하세요.

마지막으로 같은 해상도, 색 심도, 작업 순서로 데스크톱을 테스트하세요. 텍스트를 입력하고 창을 움직여 화면 갱신이 안정적인지 확인합니다.

한 번에 하나씩 변경

실제로 확인할 화면에 데스크톱 트래픽을 집중하세요

먼저 부하가 낮은 설정으로 기준을 잡은 뒤 화질을 하나씩 높이세요. 설정을 바꿀 때마다 입력, 스크롤, 창 이동을 반복하세요. 네 가지 옵션을 한꺼번에 조정하면 어떤 변경이 효과가 있었는지 파악하기 어렵습니다.

  1. 01

    색 심도 낮추기

    클라이언트에서 지원한다면 먼저 16비트 색 심도나 낮은 화질 설정을 선택해 화면 갱신에 전송되는 데이터를 줄이세요. 디자인 시안, 색상, 스크린샷을 확인할 때는 화질을 높이면 됩니다. 낮은 색 심도 화면을 색상 검수 기준으로 사용하지 마세요.

  2. 02

    움직이는 배경 화면 끄기

    정적 배경 화면을 사용하고 불필요한 동영상과 애니메이션을 중지하세요. 배경까지 계속 갱신되면 현재 작업과 무관한 화면에 대역폭이 사용됩니다. 시뮬레이터 애니메이션을 확인할 때는 필요한 창만 열어 두세요.

  3. 03

    해상도 제한하기

    1440 × 900에서 시작해 편집기와 테스트 창이 잘 보이면 해상도를 높이세요. 로컬 모니터가 고해상도를 지원한다는 이유만으로 원격 데스크톱 해상도까지 높일 필요는 없습니다. 픽셀이 늘어나면 전송과 디코딩에 필요한 부하도 커집니다.

  4. 04

    네트워크가 불안정하면 명령줄 우선

    빌드, 의존성 설치, 로그 확인은 SSH로 처리하고 인터페이스가 필요할 때만 VNC를 여세요. 빌드 결과물과 로그를 따로 전송해 대용량 파일 전송과 데스크톱 화면 갱신이 업링크를 함께 사용하지 않도록 하세요.

연결한 뒤 권한부터 점검하세요

문제가 생겼을 때를 대비한 뒤 인증을 변경하세요

전용 물리 머신의 환경은 직접 관리해야 하며, 공용 인터넷 연결이 자동으로 안전해지는 것은 아닙니다. 인증이나 방화벽 설정을 변경하기 전에는 연결된 세션을 하나 유지하고, 두 번째 세션에서 새 설정을 확인하세요.

초기 비밀번호 변경

머신을 받은 뒤 가능한 한 빨리 초기 비밀번호를 변경하세요. 다른 비밀번호와 겹치지 않는 충분히 긴 비밀번호를 사용하고 코드 저장소나 이메일 비밀번호를 재사용하지 마세요. 접속 정보는 신뢰할 수 있는 비밀번호 관리자에만 보관하고 빌드 로그나 저장소에 기록하지 마세요.

확인: 새 세션을 열어 새 접속 정보로 테스트하고, 연결에 성공한 뒤 기존 세션을 종료하세요.

SSH는 키 인증만 사용

공개 키를 설치하고 개인 키 로그인이 되는지 확인한 뒤 SSH 인증 정책을 조정하세요. 자동화 작업에는 별도의 키를 사용하고 작업별로 권한을 나누세요. 담당자가 바뀌거나 키가 유출되면 해당 공개 키를 즉시 폐기하세요.

확인: 두 번째 터미널에서 지정한 개인 키로 연결할 수 있고, 기존 세션에 의존하지 않는지 확인하세요.

필요한 포트만 개방

작업에 필요한 포트만 남기고 가능하다면 허용할 출발지 IP를 제한하세요. 원격 데스크톱에는 보호된 연결 방식을 우선 사용하세요. SSH와 VNC 규칙을 각각 확인하고 문제 해결을 위해 모든 보호 기능을 장시간 끄지 마세요.

확인: 필요한 포트는 연결되고 불필요한 접속 경로는 닫혀 있는지 확인하세요.

자리를 비울 때 데스크톱 잠금

디버깅이 끝나면 화면을 잠그고 클라이언트 연결을 끊은 뒤 임시로 내려받은 민감한 자료를 삭제하세요. 팀에서 같은 개인 키를 공유하지 마세요. 빌드에 필요한 키와 인증서는 팀의 기존 절차에 따라 관리하세요.

확인: 데스크톱에 다시 접속할 때 인증이 필요한지, 로그와 스크린샷에 비밀 정보가 없는지 확인하세요.

연결 경로를 단계별로 점검

연결되지 않아도 시스템부터 재설치하지 마세요

먼저 연결 시간 초과, 연결 거부, 인증 실패를 구분하세요. 한 번에 한 단계씩 확인하고 원본 오류 메시지를 보관하세요. 비밀번호, 포트, 방화벽을 반복해서 바꾸면 처음 문제의 단서를 놓칠 수 있습니다.

  1. 01

    IP 주소와 인스턴스 확인

    콘솔에서 머신 상세 페이지를 다시 열어 인스턴스가 준비됐는지, 대상 주소가 현재 머신의 주소인지 확인하세요. 오래된 메모나 스크린샷, 다른 머신의 주소를 사용하지 마세요. 예시에 나온 변수명을 클라이언트에 그대로 입력하지도 마세요.

  2. 02

    프로토콜과 포트 확인

    SSH 클라이언트에는 SSH 포트를, VNC 클라이언트에는 데스크톱 포트를 사용하세요. ‘시간 초과’라면 네트워크와 규칙을 먼저 확인하고, ‘연결 거부’라면 포트와 서비스가 대기 중인지 확인하세요. ping이 된다고 앱 포트까지 연결되는 것은 아닙니다.

  3. 03

    사용자 이름과 접속 정보 확인

    인증에 실패하면 사용자 이름, 키 파일, 클라이언트에서 선택한 인증 방식을 확인하세요. 복사 과정에서 공백이 추가되지 않았는지, 현재 인스턴스의 접속 정보를 사용하는지 확인하세요. 호스트 키가 달라 보이면 경고를 무시하지 말고 먼저 신원을 확인하세요.

  4. 04

    로컬 네트워크 정책 확인

    기기 방화벽, 프록시, 회사 네트워크의 외부 연결 정책, 클라이언트 권한을 확인하세요. 허가된 다른 네트워크에서 다시 테스트해 회선에 따라 문제가 달라지는지 확인할 수 있습니다. 한 번 연결하려고 보안 소프트웨어를 계속 꺼 두지 마세요.

계속 연결되지 않으면 재현 가능한 지원 티켓을 제출하세요

인스턴스 ID, 연결 프로토콜, 대상 포트, 원본 오류 메시지, 발생 시각과 시간대를 적고 지금까지 확인한 단계를 설명하세요. ‘SSH는 되지만 VNC는 안 됨’처럼 구체적으로 작성하면 단순히 ‘연결 안 됨’이라고 적는 것보다 문제 파악에 도움이 됩니다. 스크린샷과 로그에서 비밀번호, 개인 키, 토큰 및 기타 민감한 정보를 먼저 제거하세요.

구매한 머신에 관한 문제는 콘솔에서 지원 티켓을 제출하면 인스턴스를 연결해 확인하기 쉽습니다. 구매 전 회선이나 클라이언트 호환성 문의는 이메일로 보내세요: support@metalvnc.com。

접속 방식을 확인했다면

가까운 노드를 선택해 시작하세요

두 가지 M4 구성의 메모리와 저장 공간을 비교한 뒤 노드와 요금제를 선택하세요. 실제 네트워크에서 SSH와 데스크톱 사용 경험을 확인한 다음 지속적인 빌드 작업을 시작하세요. 이용 가능 여부는 콘솔에 표시되는 실시간 정보를 따릅니다.