GitHub는 Runner 안내에서 xcode-27을 Public preview로 표시하고 있습니다. 공식 Runner 문서의 라벨 안내를 확인하더라도, 라벨이 있다는 이유만으로 해당 노드가 기업 사설망에 연결된다고 판단해서는 안 됩니다. 공개 자원만 쓰는 작업은 호스팅 Runner를 시험하고, 사설망·고정 출구·등록 기기가 필요한 작업은 자체 관리 Mac 또는 혼합 구성을 먼저 검토하세요.
이 글은 GitHub Actions와 기업 네트워크 정책을 맡은 IT 담당자, iOS CI 작업을 분리하려는 플랫폼 엔지니어, Mac 인프라를 계획하는 기술 책임자를 위한 실무 판단 기준입니다.
마지막 확인: 2026년 9월 28일. xcode-27의 미리 보기 상태와 네트워크 제약은 바뀔 수 있으므로 배포 직전 GitHub Runner 문서와 아래 공식 자료를 다시 확인하세요.
SECTION 01작업별로 호스팅 Runner와 자체 관리 Mac을 나누는 기준
Runner 라벨은 작업을 배정할 때 쓰는 선택 조건입니다. 기업 네트워크 연결이나 특정 장치 등록을 보장하는 기능은 아닙니다. GitHub가 안내하는 Runner의 역할과 네트워크 설명을 네트워크 경계의 근거로 삼고, 실제 접근 가능 여부는 대상 서비스와 Runner 유형별로 검증하세요.
작업 요청이 들어오면 다음 순서로 경로를 정합니다.
- 공개 저장소의 의존성 검증: 외부에서 의존성을 받을 수 있고 기업 전용 네트워크나 등록 기기가 필요하지 않다면 호스팅 Runner를 우선 평가합니다.
- 비공개 코드 저장소의 빌드: 저장소 인증은 별도로 검증하고, 패키지 저장소와 다른 내부 서비스까지 접근되는지는 따로 확인합니다. 코드 저장소를 읽을 수 있다는 것만으로 사설 의존성에 접근할 수 있는 것은 아닙니다.
- 사설 API나 내부 패키지 저장소를 쓰는 작업: Runner에서 해당 서비스까지 네트워크 경로가 확인되지 않으면 자체 관리 Mac으로 보내거나, 의존성을 외부에서 안전하게 사용할 수 있는 구조로 바꿉니다.
- 기업 방화벽의 고정 출구 허용 목록이 필요한 작업: 대상 macOS Runner 유형이 요구하는 출구 주소 정책을 만족하는지 먼저 확인합니다. 다른 운영체제 Runner의 기능을 macOS Runner에 그대로 적용하지 마세요.
- 실기기 등록이나 특정 서명 절차가 필요한 작업: 등록 기기 조건, 개발 서명, 생산 서명 작업을 나눠 검증합니다. 조건을 충족하지 못하면 관리 가능한 Mac 노드를 남깁니다.
이 구분은 “호스팅이냐 자체 관리냐”를 한 번에 결정하는 대신, 각 워크플로의 입력과 권한 경계에 맞춰 노드를 고르게 합니다.
SECTION 02공개 의존성 검증은 실제 워크플로로 시험합니다
공개 의존성을 사용하는 PR 검증은 호스팅 Runner를 평가하기 좋은 후보입니다. 다만 라벨을 설정하는 일과 프로젝트가 정상 빌드되는 일은 별개입니다. 처음에는 코드 변경이 적고 실패 시 영향이 낮은 워크플로 하나를 골라, 평소와 같은 의존성 취득과 테스트를 실행하세요.
확인할 항목은 다음과 같습니다.
- 워크플로가 의도한 Runner 라벨에 실제로 배정되는지 확인합니다.
- 패키지 저장소, 아티팩트 저장소와 외부 서비스의 이름 조회 및 연결을 확인합니다.
- 사용하는 커뮤니티 Actions가 현재 Runner 환경과 호환되는지 검증합니다.
- 빌드 결과뿐 아니라 의존성 취득 실패, 캐시 누락, 작업 취소 시의 로그도 검토합니다.
현장 사례: 일반 PR 빌드는 호스팅 Runner에서 통과하지만, 같은 프로젝트의 내부 패키지를 가져오는 작업은 연결 단계에서 실패할 수 있습니다. 이때 저장소 접근 토큰이 정상이라고 해서 네트워크 문제까지 해결된 것은 아닙니다. 저장소 인증 로그와 패키지 서비스의 연결 결과를 분리해 원인을 찾으세요.
GitHub Actions macOS Runner로 옮길지는 라벨이 아니라 이 검증 결과로 결정합니다. 공개 의존성 경로가 정상이고 필요한 Actions가 호환되면 해당 작업부터 옮길 수 있습니다. 검증하지 않은 내부 서비스 접근을 전제로 다음 작업까지 한꺼번에 이전하지 마세요.
SECTION 03사설망과 고정 출구 요구는 별도로 검증합니다
기업 iOS CI에서 사설 저장소를 사용하는 경우에는 저장소 인증과 네트워크 도달성을 따로 확인해야 합니다. GitHub가 제공하는 저장소 자격 증명이 있어도 Runner가 기업 내부 DNS, 사설 IP 주소, 제한된 서비스 포트에 도달한다는 뜻은 아닙니다.
방화벽 정책도 세 가지 요구를 구분해야 합니다.
- 고정 출구 주소: 허용 목록에 등록할 안정적인 출발지 주소가 필요한 조건입니다.
- 사설망 연결: 회사 내부 주소 공간의 서비스로 가는 실제 네트워크 경로가 필요한 조건입니다.
- 일반 출구 통신: Runner에서 공개 인터넷의 저장소나 서비스로 나가는 연결입니다.
각 요구는 서로 대체되지 않습니다. GitHub의 larger Runner 네트워크 제약 안내와 Runner 관련 관리 문서를 확인하세요. 특히 macOS Runner에 다른 Runner 유형의 사설 네트워크 기능이나 고정 주소 특성을 추정해서는 안 됩니다.
검증할 때는 내부 패키지 저장소, 아티팩트 서비스와 사설 API를 실제 워크플로에서 각각 호출합니다. 통과 여부만 기록하지 말고, 방화벽 로그와 대상 서비스 연결 결과를 함께 보관하세요. 실패하면 어느 단계에서 연결이 끊겼는지 확인하고, 해당 작업을 자체 관리 Mac으로 보내는지 또는 의존성 구조를 바꾸는지 결정합니다.
주의: 저장소 토큰이 유효하다는 로그만으로 사설망 접근을 승인하지 마세요. 네트워크 경로, 대상 서비스 응답과 방화벽 허용 기록이 각각 확인되어야 합니다.
SECTION 04실기기 테스트와 개발 서명은 별도 작업으로 취급합니다
시뮬레이터 테스트와 등록된 실기기 테스트는 요구 조건이 다릅니다. GitHub는 macOS arm64 Runner에 고정 UUID 또는 UDID가 제공되지 않는다고 안내합니다. 따라서 기기 식별 정보를 기준으로 장치를 등록해야 하는 워크플로는 GitHub의 Runner 안내만 확인하고 완료 처리하지 말고, Apple의 기기 등록 절차와 등록 기기용 앱 배포 안내를 함께 대조하세요.
개발 서명도 빌드 성공과 분리해 검수해야 합니다. Apple은 개발 프로비저닝 프로파일을 별도로 만들도록 안내합니다. 개발 프로비저닝 프로파일 생성 절차를 확인하고, 프로파일과 인증서가 어떤 작업에서 사용되는지 기록하세요.
PR 검증, 실기기 테스트, 생산 서명 배포가 같은 자격 증명 경계를 공유하면 안 됩니다. GitHub의 Actions 보안 사용 지침에 따라 신뢰할 수 없는 코드가 비밀 정보에 접근하지 못하게 하고, 생산 서명 자격 증명은 승인된 배포 작업에만 제한하세요. 개발 서명이 가능한 환경이라는 이유만으로 생산 서명 작업까지 같은 노드에 넣지 마세요.
자주 확인하는 운영 질문
- 호스팅 macOS Runner가 비공개 저장소의 의존성을 가져올 수 있나요? 저장소 인증과 서비스 연결이 모두 충족되어야 합니다. 실제 패키지 가져오기와 내부 서비스 연결을 각각 시험하세요.
- 모든 CI 작업을 자체 관리 Mac으로 바꿔야 하나요? 그럴 필요는 없습니다. 공개 의존성 검증은 호스팅 Runner 후보로 두고, 사설 서비스나 등록 기기가 필요한 작업만 자체 관리 노드로 분리할 수 있습니다.
- 기기 등록이 필요한 테스트도 같은 방식으로 처리할 수 있나요? Runner에 고정 UUID나 UDID가 없는 조건이 영향을 줄 수 있습니다. Apple의 등록 흐름과 실제 테스트 요구를 맞춰 별도로 검증하세요.
- 혼합 구성은 어떤 기준으로 운영하나요? 워크플로 조건에 따라 공개 PR, 사설 의존성, 실기기 테스트와 생산 배포를 각각 배정합니다. 각 경로의 권한과 실패 시 되돌릴 노드를 문서화하세요.
SECTION 05혼합 노드 운영은 검수 결과로 승인합니다
xcode-27이 미리 보기 상태인 동안에는 모든 빌드를 한꺼번에 옮기기보다, 작업 유형별로 검증 결과를 남기는 편이 안전합니다. 현재의 라벨 상태와 지원 조건은 Runner reference에서 다시 확인하세요.
아래 항목을 확인한 뒤에만 해당 워크플로의 노드 변경을 승인합니다.
- [ ] 워크플로가 의도한 Runner 라벨에서 실행되는지 확인했습니다.
- [ ] 패키지 저장소와 내부 서비스의 DNS 조회 및 연결 결과를 기록했습니다.
- [ ] 고정 출구 주소나 사설망 연결 요구를 macOS Runner의 현재 문서와 대조했습니다.
- [ ] 실기기 테스트에 등록 기기 식별 조건이 있는지 확인했습니다.
- [ ] 개발 서명과 생산 서명 자격 증명을 서로 다른 작업 경계에 두었습니다.
- [ ] 커뮤니티 Actions 호환성, 로그 수집과 실패 원인을 확인했습니다.
- [ ] 실패 시 자체 관리 Mac으로 되돌리거나 기존 경로를 복구할 절차를 준비했습니다.
호스팅 Runner는 공개 의존성 검증을 빠르게 분리하는 데 유용할 수 있지만, 기업 사설망이나 고정 출구, 장치 등록 조건까지 자동으로 해결하지는 않습니다. 반대로 자체 관리 Mac은 필요한 네트워크 경로를 구성할 여지가 있지만, 호스트 보안과 운영 관리도 팀이 책임져야 합니다.
이미 보유한 빌드 환경을 그대로 유지하면 하드웨어 관리 부담이 남고, 호스팅 Runner만으로 통일하면 사설망과 기기 조건에서 작업이 막힐 수 있습니다. 자체 장비를 추가 구매하는 방식도 용량이 일정하지 않은 팀에는 부담이 될 수 있습니다. 따라서 실제 워크플로를 검증한 뒤 사설 의존성이나 기기 관련 작업에 별도 Mac이 필요하다면, 원격 Mac을 시험 환경으로 비교해 보세요. MACNOX의 한국어 서비스 안내와 요금 안내를 살펴보고, 구매 전 네트워크 경로와 서명 절차가 요구 조건에 맞는지 확인하세요.
SECTION 06자주 묻는 질문 FAQ
GitHub Actions의 xcode-27 Runner에서 회사 내부 서비스에 접속할 수 있나요?
Runner에 xcode-27이라는 라벨을 지정할 수 있다는 사실만으로 회사 사설망에 연결된다고 판단하면 안 됩니다. macOS Runner의 현재 네트워크 제약을 공식 문서에서 확인하고, 내부 패키지 저장소나 API에 실제 연결되는지 별도로 검수하세요. 경로가 없거나 방화벽 정책을 만족하지 못하면 해당 작업은 접근 가능한 자체 관리 Mac으로 보내거나 의존성 구조를 바꿔야 합니다.
GitHub 호스팅 macOS Runner는 사설 의존성 저장소를 가져올 수 있나요?
저장소 인증 정보가 유효한 것과 Runner가 사설 의존성 저장소까지 네트워크로 연결되는 것은 서로 다른 조건입니다. 워크플로에서 사용하는 자격 증명, DNS 조회, 방화벽 허용 정책과 대상 포트 연결을 각각 확인해야 합니다. 실제 빌드에서 패키지 가져오기를 검증하고, 실패 시 로그와 방화벽 기록을 함께 남기세요.
기업 iOS CI에서 자체 관리 Mac Runner를 선택해야 하는 때는 언제인가요?
작업에 사설망 내부 서비스, 기업이 관리하는 고정 출구 주소, 또는 등록된 기기에서만 가능한 절차가 필요하다면 자체 관리 Mac을 우선 검토하세요. 단, 자체 관리 Runner는 네트워크와 호스트 보안 운영 책임도 팀에 남습니다. 공개 의존성 기반의 일반 PR 검증은 호스팅 Runner로 분리하고, 접근 조건이 필요한 작업만 자체 관리 노드로 라우팅할 수 있습니다.
xcode-27 Runner로 실기기 테스트와 개발 서명을 처리해도 되나요?
컴파일이나 시뮬레이터 검증이 된다는 사실만으로 등록 기기를 사용하는 테스트까지 가능하다고 볼 수는 없습니다. GitHub는 macOS arm64 Runner에 고정 UUID 또는 UDID가 제공되지 않는다고 안내하므로, 등록된 기기 식별이 필요한 흐름은 별도로 확인해야 합니다. 개발 서명 자격 증명과 프로비저닝 프로파일도 작업 유형별로 검수하고, 생산 배포용 비밀 정보는 신뢰할 수 있는 작업에만 제한하세요.