Oakmini Cloud Mac · 빠른 시작

구매부터 첫 빌드까지, 클라우드 Mac 워크플로 시작하기

이 가이드는 Oakmini를 처음 사용하는 개발자와 CI/CD 엔지니어를 위한 안내서입니다. 전용 Mac mini 물리 노드를 선택하고 SSH 또는 VNC로 연결한 뒤 Apple Silicon 툴체인을 복원해 재현 가능한 빌드를 완료하고 self-hosted runner를 기존 파이프라인에 연결합니다.

01 구성 선택 모델, 기간, 노드, 스토리지
02 노드 연결 SSH 또는 VNC
03 워크플로 검증 빌드, 아티팩트, runner
클라우드 Mac 개발 워크스테이션 활용 사례
oakmini-bootstrap connected
$ uname -m
arm64
$ sw_vers -productVersion
macOS ready
$ system_profiler SPHardwareDataType
Chip: Apple M4
$ xcodebuild -version
Xcode toolchain detected
$ git --version
git ready
✓ 환경 기준선 기록 완료
준비 단계

시작 전에 여섯 가지 입력 조건을 확정하세요

호환성, 지역, 기간과 권한을 먼저 명확히 기록하면 연결 후 의존성 아키텍처 불일치, 디스크 부족 또는 파이프라인 권한 누락을 피할 수 있습니다. 다음 결과를 프로젝트 마이그레이션 기록에 저장하는 것이 좋습니다.

약 10~20분

Apple Silicon 호환성

의존성이 arm64 버전을 제공하는지 확인하고 바이너리 도구, 컨테이너 이미지, 네이티브 확장과 레거시 스크립트를 중점적으로 점검하세요. Intel 환경에서 이전하는 프로젝트라면 교체하거나 다시 컴파일해야 할 구성 요소를 먼저 정리합니다.

file ./your-binary대상 아키텍처 확인

대상 노드 지역

싱가포르, 일본(도쿄), 한국(서울), 홍콩, 미국 서부 중에서 선택하세요. 대화형 VNC는 주요 사용자의 위치와 가까운 지역을, 무인 빌드는 코드 저장소, 아티팩트 스토리지와 협업 팀의 위치를 우선 고려합니다.

ping / traceroute실제 사무실 네트워크에서 측정

사용 기간과 작업 시간

단위 기간은 단기 검증에, 주 단위는 마이그레이션 집중 작업에, 월 또는 분기 단위는 지속적인 개발과 상시 runner에 적합합니다. 준비, 빌드, 검수와 아티팩트 내보내기에 걸리는 전체 시간을 먼저 산정하고 단일 작업 시간만 계산하지 마세요.

day / week / month / quarter주문 기간을 혼용하지 않기

스토리지 용량

저장소, 의존성 캐시, 시뮬레이터 데이터, 아카이브와 내보낸 아티팩트를 각각 산정하세요. 빌드 디렉터리에는 여유 공간을 남겨 의존성 해석이나 아카이브 중 디스크 부족으로 작업이 중단되지 않게 합니다. 장기 작업에는 캐시 정리 정책도 정의해야 합니다.

df -h연결 후 재확인

원격 연결 도구

명령줄 작업에는 SSH 클라이언트와 키를 준비하고 macOS 그래픽 인터페이스가 필요하면 VNC 클라이언트를 준비하세요. 로컬 네트워크가 해당 연결을 허용하는지 확인하고 회사 방화벽, 프록시 또는 VPN이 연결 경로에 미치는 영향도 기록합니다.

ssh -V먼저 로컬 클라이언트 확인

계정 및 프로젝트 권한

코드 저장소 읽기, 의존성 소스 접근, CI runner 등록, 빌드 서명 자료와 아티팩트 업로드에 필요한 권한을 확인하세요. 작업 전용 자격 증명을 우선 사용하고 자동화에는 최소 권한만 부여합니다.

read / build / upload권한 범위를 항목별로 표시
시작 전에 프로젝트 아키텍처 요구 사항, 대상 노드, 예상 기간, 디스크 예산, 연결 방식, 필요한 권한과 검수 담당자를 포함한 기준선 기록을 작성하세요. 이후 모든 단계는 이 기록과 대조합니다.
1단계 · 구매

부하에 맞는 모델을 선택한 뒤 기간과 노드를 정하세요

Oak Core와 Oak Forge는 모두 전용 Mac mini 물리 노드이며 가상 머신이 아닙니다. 선택할 때는 최대 메모리, 동시 빌드 수, 워크로드 크기와 아티팩트 용량을 기준으로 판단하세요. 모호한 성능 배수만으로 결정하지 마세요.

포털에서 구성 선택하기
Oak Core
m4-16-256
개인 개발 및 가벼운 빌드
M4
메모리16GB
스토리지256GB SSD

단일 프로젝트 디버깅, 의존성 검증, 저동시성 자동화 작업과 단기 마이그레이션 점검에 적합합니다. 저장소, 시뮬레이터와 아카이브가 크다면 주문 시 스토리지를 추가하세요.

$19.5/일$52.5/주$97.3/월$264.7/분기
주문 항목 선택 옵션 선택 기준 확인 결과
결제 기간 일, 주, 월, 분기 환경 준비, 작업 실행, 검수와 아티팩트 내보내기 포함 주문에 표시된 시작 및 종료 범위가 계획과 일치
노드 싱가포르, 일본(도쿄), 한국(서울), 홍콩, 미국 서부 사용자, 코드 저장소와 아티팩트 대상 간 실제 네트워크 경로 지역명이 기준선 기록과 일치
스토리지 확장 +1TB SSD 또는 +2TB SSD 저장소, 의존성 캐시, 작업 디렉터리, 아카이브와 내보낸 아티팩트의 총량 정리 및 임시 파일 공간 확보
병렬 구성 옵션 Thunderbolt 5 병렬 연결(대당) 계획된 다중 노드 워크플로에서만 선택 수량과 토폴로지를 장비별로 확인
결제 기준:USDT-TRC20 및 Visa / Mastercard / Amex(Stripe)만 지원하며 모든 주문은 USD로 결제됩니다. 실제 사용 가능한 결제 게이트웨이는 포털 응답을 따릅니다.
2단계 · 연결

호스트 상태를 확인한 후 SSH 또는 VNC 세션을 시작하세요

포털에서 현재 호스트 상태, 주소, 포트와 자격 증명 안내를 확인하세요. 이전 주문이나 로컬 기록으로 파라미터를 추측하지 마세요. 명령줄 작업에는 SSH를, 그래픽 인터페이스에는 VNC를 사용합니다.

SSH 기준선 first-session.sh
ssh -p <PORT> <USER>@<HOST>

hostname
sw_vers
uname -m
system_profiler SPHardwareDataType
df -h
systemsetup -gettimezone
date

출력을 마이그레이션 기록에 저장하세요. 최소한 호스트 이름, macOS 버전,arm64 아키텍처, 칩 모델, 디스크 용량, 시간대와 현재 시간을 확인할 수 있어야 합니다.

  1. 01

    포털 상태 확인

    호스트가 연결 가능한 상태인지 확인하세요. 상태가 계속 변경 중이면 포털 업데이트를 기다리고 자격 증명을 연속해서 재시도하지 마세요.

  2. 02

    연결 파라미터 복사

    호스트 주소, 포트, 사용자 이름과 연결 방식을 항목별로 확인하세요. 키 파일은 관리되는 장치에만 저장합니다.

  3. 03

    호스트 지문 확인

    첫 SSH 연결 시 지문을 기록하세요. 이후 지문이 비정상적으로 변경되면 연결을 중지하고 콘솔 티켓으로 확인합니다.

  4. 04

    그래픽 세션 시작

    VNC를 사용할 때는 현재 네트워크에 적합한 해상도와 화질로 먼저 연결한 뒤 키보드 레이아웃, 클립보드 정책과 잠자기 설정을 확인하세요.

IDhostname주문과 일치
시스템sw_vers전체 버전 기록
하드웨어arm64 / M4선택한 구성 확인
리소스df -h사용 가능한 공간 확인
3단계 · 환경

정해진 순서로 툴체인을 복원하고 버전 목록을 생성하세요

먼저 검토 가능한 기본 환경을 만든 다음 프로젝트 의존성을 설치하세요. 기존 머신의 사용자 디렉터리 전체를 복사하지 말고 목록, 설정과 잠금 파일을 우선 이전해 아키텍처 차이와 불필요한 캐시를 줄입니다.

L1

Homebrew 및 명령줄 기본 구성

소프트웨어 목록을 복원한 뒤 진단을 실행하고 설치 경로와 셸 환경을 확인하세요. Apple Silicon의 일반적인 경로가 스크립트의 하드코딩 경로와 일치하는지 확인하거나 교체합니다.

brew bundle check && brew doctor
L2

Git 및 저장소 구성

커밋 사용자 정보, 줄바꿈 정책과 자격 증명 읽기 방식을 설정하세요. 먼저 읽기 전용 테스트 저장소를 가져와 네트워크와 권한을 확인한 후 운영 프로젝트를 처리합니다.

git config --list --show-origin
L3

언어 런타임

잠금 파일에 따라 Ruby, Node.js, Python 또는 기타 런타임 버전을 복원하세요. 버전 관리자, 전역 도구와 프로젝트별 버전을 기록하고 ‘최신 버전’이라는 표현에 의존하지 마세요.

ruby -v; node -v; python3 --version
L4

Xcode 툴체인

현재 선택된 개발자 디렉터리, Xcode 버전, SDK와 명령줄 도구를 확인하세요. 여러 프로젝트에 서로 다른 버전이 필요하다면 파이프라인에 전환 절차를 명시적으로 기록합니다.

xcode-select -p; xcodebuild -version
L5

프로젝트 의존성

저장소의 잠금 파일로 의존성을 복원하고 전체 해석 로그를 보존하세요. 의존성에서 네이티브 확장을 컴파일해야 한다면 출력 아키텍처가 arm64인지 확인합니다.

file ./path/to/native-extension
환경 목록 environment-baseline.txt
date
hostname
sw_vers
uname -m
xcode-select -p
xcodebuild -version
git --version
brew --version
brew list --versions
ruby -v
node -v
python3 --version
df -h

목록을 프로젝트와 함께 관리하세요

  • ‘설치 완료’라고만 기록하지 말고 명령 출력도 저장하세요.
  • 의존성 잠금 파일과 패키지 관리자 목록을 보존하세요.
  • 수동 설정이 필요한 경로와 권한을 표시하세요.
  • Xcode 버전 전환 명령을 명확히 작성하세요.
  • 목록에 키, 토큰과 서명 자료를 포함하지 마세요.
첫 빌드

최소 테스트 프로젝트를 먼저 실행한 뒤 실제 파이프라인을 실행하세요

첫 빌드의 목표는 가장 짧은 시간이 아니라 의존성 해석, 서명 권한, 출력 디렉터리와 로그가 재현 가능한지 확인하는 것입니다. 먼저 고정 커밋으로 테스트한 뒤 성공하면 전체 프로젝트로 확대하세요.

01

입력 고정

지정된 커밋 또는 태그를 가져오고 서브모듈, 비공개 의존성과 대용량 파일 객체가 완전한지 확인하세요. 저장소 커밋 해시를 기록해 테스트 중 입력이 변경되지 않게 합니다.

git rev-parse HEAD
02

의존성 해석

잠금 파일로 의존성을 복원하고 표준 출력과 오류 출력을 로그에 기록하세요. 아키텍처 문제가 발생하면 전체 환경을 반복해서 초기화하지 말고 특정 바이너리부터 찾습니다.

command 2>&1 | tee dependency.log
03

서명 권한 확인

빌드 프로세스가 작업에 필요한 서명 자료와 설정 파일을 읽을 수 있는지 확인하세요. 자동화 계정에는 해당 프로젝트와 빌드 단계에 필요한 권한만 부여합니다.

security find-identity -v -p codesigning
04

출력 디렉터리 지정

DerivedData, 아카이브, 테스트 결과와 내보낸 아티팩트를 명확한 디렉터리에 저장해 다른 작업의 관리되지 않는 임시 경로와 공유하지 않게 합니다.

mkdir -p build logs artifacts
05

전체 로그 보존

로그에는 최소한 커밋 버전, Xcode 버전, SDK, 명령, 시작 시간, 종료 시간과 종료 코드를 포함하세요. 업로드 전에 민감한 필드를 비식별화합니다.

echo "$?" > logs/exit-code.txt
06

한 번 더 실행

동일한 커밋과 구성으로 다시 실행해 의존성, 경로와 권한이 첫 세션의 임시 작업에 의존하지 않는지 확인하세요. 두 결과를 설명하고 비교할 수 있어야 합니다.

./scripts/verify-build.sh
xcodebuild \
  -project Example.xcodeproj \
  -scheme Example \
  -configuration Release \
  -derivedDataPath ./build/DerivedData \
  build 2>&1 | tee ./logs/first-build.log
성공 기준

명령 종료 코드가 0이고 로그에서 고정 커밋과 툴체인 버전을 확인할 수 있으며 출력 디렉터리에 예상 아티팩트가 존재하고 두 번째 실행이 기록되지 않은 수동 작업에 의존하지 않아야 합니다.

마이그레이션 로드맵

마이그레이션을 데이터, 툴체인과 CI 세 경로로 나누세요

세 경로는 병렬로 준비할 수 있지만 공통 기준선에서 합쳐야 합니다. 저장소 버전 고정, 툴체인 버전 기록, runner 태그 정의 후 재현 가능한 검증 작업을 실행하세요.

DATA

데이터 경로

설명 가능한 데이터만 이전하고 추적할 수 없는 과거 상태는 옮기지 마세요.

  1. 저장소고정 커밋을 복제하고 서브모듈과 대용량 파일 객체를 확인하세요.
  2. 캐시패키지 관리자와 프로젝트 버전별 디렉터리로 나누고 만료된 캐시는 이전하지 마세요.
  3. 작업 디렉터리소스, 임시 파일, 로그와 최종 아티팩트를 구분하세요.
  4. 검증 지점git status / checksum / df -h
TOOL

툴체인 경로

목록에서 도구를 복원하고 버전 출력으로 결과를 확인하세요.

  1. Homebrew소프트웨어 목록을 복원하고 진단을 실행하세요.
  2. 런타임프로젝트 파일에 따라 Ruby, Node.js, Python 등의 버전을 설치하세요.
  3. Xcode선택 경로, 버전, SDK와 빌드 구성을 확인하세요.
  4. 검증 지점brew doctor / xcodebuild -version
CI

CI 연동 경로

스케줄링 규칙이 이 전용 물리 머신으로 명확히 연결되도록 하세요.

  1. runner 등록작업 전용 등록 자격 증명을 사용하고 서비스 계정을 기록하세요.
  2. 태그 설정지역, 아키텍처, 툴체인과 부하 유형 태그를 사용하세요.
  3. 검증 실행최소 빌드를 실행하고 비식별화한 로그와 테스트 아티팩트를 업로드하세요.
  4. 검증 지점online / matched / exit 0
MERGE GATE 세 경로의 통합 조건
  • 저장소 커밋 버전이 고정됨
  • 환경 목록이 저장됨
  • runner 태그가 작업과 일치함
  • 검증 작업 종료 코드가 0임
  • 지정 디렉터리에서 로그와 아티팩트를 내보낼 수 있음
보안 마무리

운영 저장소에 연결하기 전에 자격 증명과 권한을 강화하세요

환경이 실행된다고 해서 장기간 사용하기에 적합한 것은 아닙니다. 첫 빌드 후 초기 자격 증명, 키 저장, 저장소 범위와 스크립트의 민감한 정보를 즉시 정리하세요.

최소 권한 기준선

  • 초기 자격 증명을 교체하고 이전 자격 증명이 더 이상 연결에 사용되지 않는지 확인하세요.
  • 개인 관리, 자동화 빌드와 아티팩트 업로드에 서로 다른 자격 증명을 사용하세요.
  • 개인 키는 관리되는 장치 또는 관리되는 키 저장소에만 보관하고 엄격한 파일 권한을 설정하세요.
  • 저장소 접근 범위를 실제 프로젝트로 제한하고 무관한 조직이나 저장소 권한은 부여하지 마세요.
  • 서명 자료는 서명이 필요한 프로세스와 계정에만 공개하세요.
  • 스크립트, 환경 목록, 로그와 빌드 아티팩트에 비밀번호, 개인 키 또는 결제 자격 증명을 기록하지 마세요.
스크립트 점검

커밋 전에 일반적인 민감 필드를 검색하고 셸 기록, 환경 파일, CI 구성과 로그를 확인하세요. 평문 자격 증명이 발견되면 먼저 폐기하고 교체한 다음 파일 기록을 정리합니다.

SSH 권한

개인 키 파일 권한을 제한하고 더 이상 사용하지 않는 공개 키를 삭제하세요. 자동화 연결에는 식별 가능한 키 이름과 용도 기록을 설정합니다.

chmod 600 ~/.ssh/private_key
로그 비식별화

시간, 명령, 버전, 종료 코드와 오류 스택은 보존하고 액세스 토큰, 개인 키 내용, 서명 자료 원문과 직접 권한 부여에 사용할 수 있는 정보를 삭제하세요.

검수 체크리스트

7가지 결과로 일상 작업 투입 가능 여부를 판단하세요

검수는 ‘현재 세션에서 작동함’이 아니라 재현 가능한 결과를 기준으로 해야 합니다. 세션을 끊고 다시 연결한 뒤 깨끗한 셸에서 핵심 명령을 다시 실행하세요.

7개 항목 모두 통과
  1. 01

    원격 재연결

    SSH와 VNC를 직접 연결 해제한 뒤 저장된 올바른 파라미터로 다시 연결하세요. 호스트 지문, 사용자 이름, 포트와 그래픽 세션이 모두 기록과 일치해야 합니다.

    재현 가능
  2. 02

    의존성 설치

    잠금 파일로 의존성을 복원하고 명령 종료 코드가 0인지 확인하세요. 네이티브 구성 요소의 아키텍처가 올바르고 설치 로그가 저장되며 민감한 정보가 없어야 합니다.

    추적 가능
  3. 03

    프로젝트 빌드

    고정 커밋과 툴체인 버전으로 빌드를 완료하고 출력 디렉터리를 명확히 하세요. 두 번째 실행이 기록되지 않은 수동 작업에 의존해서는 안 됩니다.

    종료 코드 0
  4. 04

    아티팩트 내보내기

    아카이브, 테스트 결과 또는 기타 대상 아티팩트를 지정 디렉터리에서 내보낼 수 있어야 하며 파일 이름, 버전과 검증 방식이 팀의 규칙을 충족해야 합니다.

    배포 가능
  5. 05

    Runner 온라인

    self-hosted runner 상태가 온라인이고 태그가 대상 작업과 일치하며 승인되지 않은 프로젝트의 작업을 수신하지 않아야 합니다.

    태그 일치
  6. 06

    로그 보존

    환경 기준선, 의존성 로그, 빌드 로그, 종료 코드와 아티팩트 경로를 모두 보관하고 민감한 필드를 비식별화해야 합니다.

    위치 확인 가능
  7. 07

    포털 관리

    포털에서 호스트 상태, 주문 정보와 관리 메뉴를 확인할 수 있어야 합니다. 모든 노드는 365일 연중 정상 운영됩니다.

    관리 가능
재현 가능한 기준선부터 시작하세요

전용 Mac mini를 선택하고 첫 빌드를 시작하세요

포털에서 현재 이용 가능한 노드를 확인하고 Oak Core 또는 Oak Forge, 결제 기간과 스토리지 옵션을 선택하세요. 주문 후 이 페이지의 단계에 따라 연결, 툴체인 복원과 검수를 완료합니다.