Apple의 공식 문서에는 프롬프트 평가와 언어 모델 응답 평가가 별도 항목으로 정리되어 있습니다. 프롬프트 평가 문서와 응답 평가 문서를 기준으로 보면, Foundation Models framework CI 테스트는 일반적인 Xcode 컴파일 하나로 끝낼 수 없습니다. 컴파일, 모델 사용 가능성, 프롬프트와 도구 호출, 클라우드 모델 대체 경로, 생산 서명을 서로 다른 작업 풀로 나누고, 평가 작업이 계속 밀릴 때만 실제 기록에 따라 원격 맥을 늘리는 방식이 안전합니다.
이 글은 애플리케이션에 Foundation Models 기능을 넣고 자동 회귀 관문을 만들려는 연구 생산성 책임자를 위한 내용입니다. Xcode 27, 테스트 기기와 기업 네트워크 경계를 관리하는 IT 팀, 그리고 맥 용량과 운영 비용을 판단해야 하는 기술 총괄과 구매 담당자도 대상입니다.
마지막 업데이트: 2026년 9월 10일. 버전 상태와 평가 방법은 Apple 개발자 출시 문서와 Foundation Models 및 Evaluations 공식 문서를 기준으로 확인해야 합니다. Xcode 27 정식판과 운영 체제 변경 뒤에는 이 글의 절차를 다시 검증해야 합니다.
먼저 세 가지 작업 풀로 나누기
Foundation Models 기능을 포함한 CI는 아래처럼 분리하는 것이 좋습니다.
변경 요청
├─ 컴파일 관문과 일반 단위 테스트 → 일반 맥 빌드 풀
├─ 모델 사용 가능성·프롬프트·도구 호출 평가 → 독립 평가 맥 풀
└─ 보관·서명·출시·되돌리기 확인 → 신뢰할 수 있는 서명 맥 풀
이 구조에서 평가 통과는 출시 자격과 같은 뜻이 아닙니다. 평가 코드와 외부 모델 인증 정보가 생산 서명 신원에 접근하지 못하도록 막아야 합니다. 특히 평가 작업이 사용하는 테스트 데이터와 내부 도구 권한은 신뢰할 수 없는 변경 요청 작업 공간과 분리해야 합니다.
변경 요청에서는 컴파일 실패와 모델 실패를 분리하기
작업 목표
모든 변경 요청에서 먼저 확인할 것은 Foundation Models API, 타입, 의존성, 대상 플랫폼이 Xcode 27에서 컴파일되는지입니다. 이 단계는 모델의 응답 품질을 판단하는 작업이 아닙니다.
일반 단위 테스트는 입력 검증, 상태 관리, 오류 처리와 같은 결정적인 코드를 검사합니다. 반면 모델 행동 평가는 프롬프트, 응답 구조와 도구 호출을 검사하므로 실행 시간과 결과 변동성이 더 큽니다. 두 종류를 한 작업에 넣으면 단순한 코드 오류 때문에 평가 전체가 실패하거나, 모델 변동을 컴파일 오류처럼 처리하게 됩니다.
실행 위치와 필요한 증거
컴파일 작업에는 독립 태그를 붙이고, 생산 서명 노드와 다른 동시 실행 풀에 배치합니다. 로그에는 다음 항목을 남겨야 합니다.
- Xcode 27과 운영 체제 식별 정보
- 빌드 대상과 의존성 해석 결과
- 컴파일 로그와 일반 단위 테스트 결과
- 생성된 빌드 산출물의 식별자
- 실패한 단계와 재실행 결과
컴파일 관문이 실패하면 코드 담당 작업으로 돌려보냅니다. 이 단계에서 전체 모델 평가를 자동으로 시작하지 않는 것이 핵심입니다. 평가 노드의 대기열을 불필요하게 늘리지 않기 때문입니다.
운영 체크리스트
- [ ] 컴파일 작업과 모델 평가 작업에 서로 다른 태그가 있습니다.
- [ ] 변경 요청의 기본 관문이 API와 타입 검증에 집중합니다.
- [ ] 컴파일 로그와 산출물을 보존합니다.
- [ ] 생산 서명 맥은 일반 변경 요청 풀에서 보이지 않습니다.
- [ ] 컴파일 실패가 평가 실패로 잘못 집계되지 않습니다.
실제 모델 경계는 기기와 상태별로 검사하기
작업 목표
모델 사용 가능 여부는 컴파일 성공만으로 알 수 없습니다. 기기 능력, 운영 체제 상태, 지역 조건과 모델 사용 가능 상태를 나누어 정상 경로와 사용할 수 없는 경로를 모두 검사해야 합니다.
Foundation Models의 시스템 언어 모델 사용 방식과 지원 조건은 공식 SystemLanguageModel 문서를 기준으로 확인해야 합니다. 문서에 없는 기기 범위나 성능을 기업 전체의 보장 조건으로 확대해서는 안 됩니다.
실행 위치
컴파일과 단위 테스트는 맥 시뮬레이터 또는 일반 빌드 노드에서 시작할 수 있습니다. 그러나 실제 기기 능력, 운영 체제 상태와 모델 제공 상태는 실제 기기에서 별도로 확인해야 합니다.
따라서 다음 결과를 서로 대체해서는 안 됩니다.
- 시뮬레이터에서 API가 호출된 결과
- 실제 기기에서 모델이 사용 가능한 결과
- 특정 운영 체제와 지역 조건에서 정상 응답을 받은 결과
시뮬레이터에서 성공했다고 모든 최종 사용자의 환경이 사용 가능하다고 결론 내릴 수 없습니다. 반대로 특정 테스트 기기에서 모델을 사용할 수 없었다고 전체 제품의 대체 화면이 잘못되었다고 단정해서도 안 됩니다.
필요한 증거와 실패 방향
각 실행에는 운영 체제 버전, 테스트 대상, 기기 조건, 모델 사용 가능 상태, 단정 결과와 실패 로그를 저장합니다. 모델을 사용할 수 없는 경우에는 대체 화면, 로컬 오류 처리 또는 재시도 정책이 제품 설계대로 동작하는지 확인합니다.
사용 가능 상태가 예상과 다르면 기능 개발 담당이 아니라 환경 담당 작업으로 분류합니다. 같은 오류가 반복되면 평가 노드의 문제가 아니라 기기와 운영 체제 조합의 지원 범위 문제일 수 있습니다.
Evaluations로 프롬프트와 도구 호출을 평가하기
작업 목표
Evaluations는 대표 입력, 기대 구조와 평가 기준을 반복 실행하는 데 사용합니다. 프롬프트의 결과를 일반 문자열 완전 일치로만 검사하면 표현이 조금 달라진 정상 결과를 실패로 분류할 수 있습니다.
Apple은 프롬프트를 평가해 모델 응답을 측정하고 개선하는 방법을 별도로 설명합니다. 따라서 기업 팀은 먼저 통과 조건을 문서화해야 합니다.
- 응답이 필요한 구조를 갖추었는가
- 금지된 내용이나 누락된 필드가 없는가
- 코드형 점수가 기준을 넘었는가
- 도구 호출 순서와 인자가 허용 범위에 있는가
- 실패 뒤 대체 경로가 실행되었는가
변경 요청과 예약 실행의 분리
변경 요청에서는 핵심 입력으로 구성된 작은 평가 집합만 실행합니다. 전체 입력 집합은 예약 실행이나 모델 변경 뒤에 실행하는 편이 적절합니다. 이렇게 해야 모든 코드 변경이 평가 맥을 오래 점유하지 않으면서도 중요한 회귀를 빠르게 포착할 수 있습니다.
결과가 기준을 벗어나면 자동 재실행 횟수를 미리 정해야 합니다. 재실행에서 통과했다고 첫 실패를 지우지 말고, 최초 결과와 재실행 결과를 모두 보존합니다. 반복해서 결과가 흔들리는 항목은 자동 차단 대상과 수동 검토 대상으로 나누어야 합니다.
도구 호출 경로
도구 호출을 사용하는 기능은 응답 문장만 저장하면 부족합니다. 도구 호출 확장 문서를 참고해 호출된 도구, 입력 인자, 반환 상태와 호출 순서를 별도 기록으로 남겨야 합니다.
내부 도구의 인증 정보는 평가 작업에 직접 넣지 않습니다. 제한된 테스트 계정과 최소 권한 도구를 사용하고, 신뢰할 수 없는 변경 요청이 운영 데이터에 접근하지 못하도록 네트워크와 작업 공간을 나눕니다.
모델 경로와 장애 시나리오를 따로 검증하기
작업 목표
애플리케이션이 사용하는 경로는 기기 내 모델만이 아닐 수 있습니다. Private Cloud Compute나 LanguageModel 규약을 따르는 다른 모델 경로가 있다면 각각 필요한 네트워크, 신원 확인과 데이터 접근 조건을 기록해야 합니다.
Private Cloud Compute 연동 문서는 서버 쪽 지능 기능을 다루지만, 해당 경로가 기업 환경의 모든 조건을 자동으로 해결한다는 뜻은 아닙니다. 조직은 실제로 사용하는 경로만 허용하고, 사용하지 않는 경로의 인증 정보는 평가 노드에 배치하지 않아야 합니다.
성공 응답만 검사하지 않기
다음 상황을 의도적으로 만들어 제품의 대체 동작을 확인합니다.
- 네트워크 연결이 끊긴 경우
- 모델을 사용할 수 없는 경우
- 서비스 오류가 발생한 경우
- 할당량이나 인증 조건을 충족하지 못한 경우
- 내부 도구가 제한된 경우
실패 시나리오의 결과는 정상 응답과 같은 방식으로 저장합니다. 어느 모델 경로가 실행되었는지, 어떤 데이터가 외부 경로로 전달되었는지, 사용자에게 어떤 안내가 표시되었는지까지 확인해야 합니다.
민감한 테스트 데이터, 모델 인증 정보와 내부 도구 권한은 통제된 평가 노드에만 둡니다. 비신뢰 변경 요청과 평가 노드를 같은 작업 공간에서 재사용하면 테스트 편의를 위해 데이터 경계를 허무는 결과가 될 수 있습니다.
평가 노드와 서명 노드를 분리해 출시 위험 줄이기
작업 목표
모델 평가가 통과해도 앱이 생산 출시 조건을 모두 만족한다는 뜻은 아닙니다. 출시 작업은 보관, 서명, 산출물 검증과 되돌리기 확인을 별도 단계로 수행해야 합니다.
평가 노드는 추적 가능한 결과를 내보내고, 신뢰할 수 있는 전용 맥이 생산 서명을 담당하도록 구성합니다. 평가 코드나 외부 모델 인증 정보가 배포 신원과 같은 노드에 접근하지 않게 해야 합니다.
버전 전환 절차
Xcode 27 RC와 이후 정식 버전 또는 운영 체제 변경은 하나의 출시 노드에서 즉시 교체하지 않습니다. 기존 환경과 새 환경에서 같은 핵심 빌드와 평가를 이중으로 확인한 뒤, 산출물 차이와 실패 로그를 비교합니다.
공식 문서가 바뀌면 Foundation Models와 Evaluations의 기능 및 제한을 다시 확인해야 합니다. 특히 Apple은 시스템 모델이 운영 체제 업데이트에 따라 바뀔 수 있음을 안내하고 있으므로, 기존 프롬프트 결과를 영구적인 기준으로 취급해서는 안 됩니다. 관련 변경은 새 모델 버전에 맞춘 프롬프트 갱신 문서로 확인합니다.
출시 체크리스트
- [ ] 평가 결과와 출시 승인 상태가 별도 필드로 관리됩니다.
- [ ] 생산 서명 노드는 평가 코드와 외부 모델 인증 정보를 받지 않습니다.
- [ ] 보관, 서명, 산출물 검증과 되돌리기를 각각 기록합니다.
- [ ] 새 Xcode와 기존 Xcode에서 핵심 경로를 비교했습니다.
- [ ] 모델 변경 뒤 프롬프트 평가를 다시 실행했습니다.
실제 기록으로 맥 용량을 결정하기
Foundation Models framework CI 테스트에 필요한 맥 수는 개발자 수가 아니라 작업 흐름으로 계산해야 합니다. 컴파일 작업, 핵심 평가, 전체 평가와 생산 출시를 따로 집계합니다.
기록해야 할 항목은 다음과 같습니다.
- 작업별 대기 시간
- 실제 실행 시간
- 실패 뒤 재실행 횟수
- 작업별 맥 점유 시간
- 평가 노드 재시작 뒤 복구 결과
- 서명 작업이 평가 대기로 영향을 받은 횟수
초기에는 격리된 원격 맥 한 묶음으로 시험하고, 업무 기록을 기준으로 다음 세 가지 중 하나를 선택합니다.
| 선택지 | 적합한 조건 | 장점 | 주의할 점 |
|---|---|---|---|
| 공유 고정 풀 | 컴파일과 작은 평가가 주로 실행되는 팀 | 운영 구조가 단순하고 작업 태그를 관리하기 쉽습니다. | 전체 평가가 몰리면 대기열이 길어질 수 있습니다. |
| 전용 평가 풀 | 프롬프트 회귀와 도구 호출 평가가 자주 실행되는 팀 | 평가와 서명 작업의 간섭을 줄일 수 있습니다. | 사용하지 않는 시간에도 노드 운영 비용을 검토해야 합니다. |
| 탄력형 원격 맥 | 모델 변경이나 예약 평가 때만 부하가 커지는 팀 | 시험 기간에 필요한 만큼 환경을 늘릴 수 있습니다. | 환경 재현, 인증 정보 격리와 회수 절차를 먼저 정해야 합니다. |
고정 풀을 늘리기 전에 평가 집합을 줄이거나 예약 실행 시점을 분산할 수 있는지 검토합니다. 반대로 평가 대기가 반복되고 서명 작업까지 밀린다면 노드 추가를 미루지 않는 편이 낫습니다. 판단 기준은 “몇 명의 개발자가 있는가”가 아니라 “허용 대기 시간을 넘긴 작업이 얼마나 자주 발생했는가”여야 합니다.
처음 시험할 기업 팀은 원격 맥 환경 선택 페이지에서 격리된 환경의 요구 조건을 정리한 뒤, 컴파일과 평가를 같은 노드에 둘지 먼저 결정할 수 있습니다. 운영 비용을 비교할 때에는 맥 서비스 요금 안내와 함께 실제 평가 실행 기록, 재시작 복구 기록과 데이터 격리 조건을 확인해야 합니다.
자주 확인하는 운영 질문
FAQ에서는 자동화 가능성, 실제 기기 필요성, Xcode 27 연결 방식, 모델 변경 뒤 회귀 검사와 맥 수 산정 문제를 각각 분리해 다룹니다. 특히 평가 통과를 생산 서명 승인으로 해석하지 않는 원칙이 모든 답변의 전제입니다.
장기간 고정 부하가 발생하고 물리 기기나 특정 주변 장치가 항상 필요한 조직이라면 자체 장비가 더 적합할 수 있습니다. 반대로 새 Foundation Models 기능을 시험하거나 모델 변경 시점의 평가 용량을 임시로 확보해야 한다면, 원격 맥을 격리된 평가 풀로 먼저 사용하는 방식이 현실적입니다.
현재 방식이 개발자별 맥에 의존하면 환경 편차와 장비 유휴 시간이 커지고, 공유 사내 맥 한 대에 집중하면 평가 대기와 권한 충돌이 생기며, 일반 클라우드 인스턴스만으로 처리하면 실제 Apple 플랫폼 동작과 서명 조건을 재현하기 어려울 수 있습니다. 이런 이유로 시험 단계에서는 RUVCLOUD의 원격 맥을 평가 전용으로 분리해 실행 시간, 대기열, 재시작 복구와 데이터 경계를 기록한 뒤, 고정 노드 풀이나 탄력 확장이 필요한지 결정하는 편이 안전합니다. 기업 환경 조건은 한국용 맥 환경 요청 페이지에서 먼저 확인할 수 있습니다.