Apple Foundation Models와 Claude API로 설계하는 iOS·macOS 혼합 추론

Apple Foundation Models와 Claude API를 Swift에서 통합해 복잡도·개인정보·연결 상태·비용에 따라 추론 경로를 전환하는 설계를 다룬다.

2026-08-14 · 최초 발행 2026-08-02

요청을 어디에서 처리할 것인가

Apple Foundation Models 프레임워크는 iOS 18.1과 macOS Sequoia 15.1 이후부터 온디바이스 LLM 추론을 공식 지원한다. Anthropic이 공개한 Swift 패키지인 anthropic-sdk-swift는 이 프레임워크와 함께 Claude 클라우드 API를 동일한 인터페이스로 호출할 수 있는 추상화 계층을 제공한다.

이 구조에서는 모델을 호출하기 전에 처리 위치부터 정해야 한다. 개인정보가 들어 있거나 오프라인 처리가 필요한 요청은 Apple Intelligence의 파운데이션 모델로 보낸다. 긴 컨텍스트나 고복잡도 추론은 Claude API에 맡긴다. 그 사이의 HybridInferenceRouter가 복잡도와 연결 상태를 평가하고, OfflineFallbackHandler는 네트워크가 끊겼을 때 온디바이스 경로로 전환한다.

레이어 구성 요소 역할
온디바이스 Apple Intelligence (파운데이션 모델) 로컬 추론, 개인정보 보호, 오프라인 처리
라우팅 HybridInferenceRouter 복잡도·연결성 기반 위임 결정
클라우드 Claude API (claude-sonnet-4-5 등) 고복잡도 추론, 긴 컨텍스트, 전문 작업
폴백 OfflineFallbackHandler 네트워크 단절 시 온디바이스 강제 전환
단순 / 개인정보 포함고복잡도 / 컨텍스트연결됨오프라인비용 임계값 초과사용자 입력HybridInferenceRouter복잡도 평가토큰 추정 + 작업 유형Apple Foundation Models온디바이스 추론네트워크 상태 확인Claude API클라우드 추론OfflineFallbackHandler응답 통합 레이어최종 사용자 응답비용 경보 + 온디바이스 전환

라우팅은 온디바이스와 클라우드 중 하나를 고르는 단순 스위치가 아니다. 복잡도 평가, 개인정보 분류, 네트워크 상태, 비용 임계값을 동시에 반영하는 다중 기준 의사결정 계층이다.

Swift에서는 제공자를 인터페이스 뒤에 숨긴다

프로젝트에는 Package.swift 의존성으로 Anthropic Swift 패키지를 추가한다.

// Package.swift
dependencies: [
    .package(
        url: "https://github.com/anthropics/anthropic-sdk-swift",
        from: "1.0.0"
    )
]

Apple Foundation Models의 LanguageModelSession과 Claude API 클라이언트를 각각 직접 호출하면 상위 로직이 특정 모델에 결합된다. 공통 InferenceProvider 프로토콜을 두고 온디바이스와 클라우드 구현체를 분리하면 라우터는 제공자의 내부 동작을 알 필요가 없다.

import AnthropicSDK
import FoundationModels

// 공통 추론 프로토콜 정의
protocol InferenceProvider {
    func generate(prompt: String, context: InferenceContext) async throws -> String
}

// 온디바이스 구현
struct OnDeviceProvider: InferenceProvider {
    private let session = LanguageModelSession()
    
    func generate(prompt: String, context: InferenceContext) async throws -> String {
        let response = try await session.respond(to: Prompt(prompt))
        return response.content
    }
}

// Claude API 구현
struct ClaudeProvider: InferenceProvider {
    private let client = AnthropicClient(apiKey: ProcessInfo.processInfo.environment["ANTHROPIC_API_KEY"] ?? "")
    
    func generate(prompt: String, context: InferenceContext) async throws -> String {
        let message = try await client.messages.create(
            model: .claudeSonnet_4_5,
            maxTokens: context.maxTokens,
            messages: [.user(prompt)]
        )
        return message.content.first?.text ?? ""
    }
}

이 경계를 유지하면 모델을 교체하거나 다른 제공자를 추가할 때 변경 범위를 라우팅 계층으로 제한할 수 있다. 온디바이스 세션과 Claude 클라이언트가 같은 계약을 구현하므로 호출부도 하나의 처리 흐름을 유지한다.

복잡도와 데이터 성격으로 경로를 나눈다

라우터가 먼저 확인할 조건은 개인정보다. 개인식별정보가 포함된 요청은 온디바이스로 강제하고, 클라우드에는 익명화한 데이터만 보낸다. 다음으로 네트워크 연결을 확인한 뒤 작업 유형과 예상 토큰을 평가한다.

평가 항목 온디바이스 기준 클라우드(Claude) 기준
예상 입출력 토큰 1,000 토큰 이하 1,000 토큰 초과
작업 유형 텍스트 요약, 간단 분류 코드 생성, 복잡 추론, 다단계 분석
개인정보 포함 여부 개인정보 포함 시 강제 온디바이스 익명화 데이터만 클라우드 허용
네트워크 상태 오프라인 폴백 안정적 연결 필요

이 기준을 코드에 옮기면 개인정보 검사, 연결 확인, 복잡도 분기가 차례로 이어진다.

struct HybridInferenceRouter {
    private let onDevice = OnDeviceProvider()
    private let claude = ClaudeProvider()
    
    func route(prompt: String, context: InferenceContext) async -> InferenceProvider {
        // (1) 개인정보 검사 — 온디바이스 강제
        guard !context.containsPersonalData else { return onDevice }
        
        // (2) 네트워크 연결 확인
        guard NetworkMonitor.shared.isConnected else {
            Logger.log("오프라인 폴백: 온디바이스 전환")
            return onDevice
        }
        
        // (3) 복잡도 기반 분기
        let estimatedTokens = TokenEstimator.estimate(prompt)
        if estimatedTokens > 1000 || context.taskType == .complexReasoning {
            return claude
        }
        
        return onDevice
    }
}

오프라인 폴백의 목적은 연결 오류를 그대로 노출하는 데 있지 않다. 온디바이스 모델이 처리할 수 있는 범위에서 응답을 생성해 사용 흐름을 이어가는 것이다. 다만 클라우드 모델과 능력 차이가 있으므로, 폴백이 발생했을 때는 제한된 처리 경로라는 점을 UI에서 알려야 한다.

비용과 개인정보 정책도 라우팅 조건이다

Claude API는 토큰 기반으로 과금된다. 따라서 모바일 앱에서는 어떤 요청을 클라우드로 보낼지가 곧 비용 정책이 된다. 동일한 시스템 프롬프트가 반복된다면 Prompt Caching으로 호출 비용을 최대 90% 줄일 수 있다. 단순 작업을 우선 온디바이스에서 처리하면 전체 Claude API 호출의 60~70%를 전환할 수 있으며, 비실시간 작업은 Message Batches API를 이용해 비용을 50% 절감할 수 있다. 중간 복잡도 작업에는 claude-haiku-4-5를 배치해 모델 계층별로 비용을 관리한다.

GDPR과 개인정보보호법을 고려한 데이터 경계도 분명해야 한다. 개인식별정보는 온디바이스 모델에서만 처리하고, 클라우드로 전송하는 데이터에는 익명화·가명화를 적용한다. 앱은 요청이 온디바이스와 클라우드 중 어디에서 처리되는지 사용자에게 공개해야 하며, 클라우드 처리는 별도의 명시적 동의를 받아야 한다.

App Store Review Guidelines 4.2의 최소 기능 요건과 5.1.1의 개인정보 수집 기준도 설계에 반영한다. AI 생성 콘텐츠라는 사실을 사용자에게 표시하고, 네트워크 의존 기능에는 오프라인 대체 기능이나 명확한 안내를 제공한다. 개인정보 처리 목적과 경로는 Privacy Nutrition Label에 기재한다. 외부 AI API 키는 앱 번들에 하드코딩하지 않고 서버 사이드 프록시를 거치게 한다.

모바일 AI SDK를 선택할 때 달라지는 경계

2026년 현재 Anthropic Claude Swift, Google Gemini Nano, OpenAI Edge는 온디바이스 지원과 하이브리드 처리 방식에서 차이가 있다.

항목 Anthropic Claude Swift Google Gemini Nano OpenAI Edge
온디바이스 지원 Apple Foundation Models 연동 Android AICore 네이티브 온디바이스 미지원 (클라우드 전용)
주요 플랫폼 iOS·macOS Android iOS·Android·Web
하이브리드 라우팅 공식 HybridRouter 제공 Gemini API Hybrid 직접 구현 필요
오프라인 폴백 네이티브 지원 네이티브 지원 제한적
프라이버시 처리 온디바이스 우선 전략 명시 온디바이스 우선 클라우드 기본
비용 최적화 Prompt Caching + Batch API Gemini API 캐싱 Tier 기반
App Store 가이드라인 대응 가이드 문서 제공 Play Store 가이드 별도 가이드 미비
컨텍스트 윈도우 (클라우드) 200K 토큰 (claude-sonnet) 1M 토큰 (Gemini 1.5) 128K 토큰 (GPT-4o)

Anthropic Claude Swift 패키지는 iOS·macOS 환경에서 Apple Foundation Models와 네이티브로 연동된다는 점이 두드러진다. Gemini Nano가 Android 중심이라면 이 패키지는 Apple 플랫폼 개발자가 온디바이스 추론을 도입하는 경로를 제공한다. 클라우드 중심으로 설계된 OpenAI Edge는 개인정보를 기기 안에서 처리하거나 오프라인 동작이 필요한 시나리오에서 한계가 있다.

품질 속성과 운영 기준으로 다시 읽기

이 아키텍처는 엣지와 클라우드를 결합한 분산 시스템 패턴이다. InferenceProvider 프로토콜은 추상화와 단일 책임 원칙, 개방-폐쇄 원칙을 적용하는 경계가 된다. 온디바이스 처리는 응답성을, 오프라인 폴백은 가용성을, PII 격리는 보안성을 담당한다.

개인정보 처리 측면에서는 최소 수집과 목적 외 사용 금지 원칙을 온디바이스 경로로 구현한다. 클라우드 전송 전에는 k-익명성과 차분 프라이버시를 포함한 가명처리를 적용한다. PII를 기기에 남겨 두는 방식은 데이터 레지던시와 국경 간 데이터 이전 문제를 피하는 수단이기도 하다.

TCO 관점에서는 온디바이스와 클라우드의 처리 비율이 비용 구조를 결정한다. 온디바이스 60%를 목표로 하면 API 비용은 ~60% 절감된다. SLA는 온디바이스 지연 목표 < 300ms, Claude API 목표 < 2s, 오프라인 폴백 전환 < 500ms로 설계한다.

HybridInferenceRouter는 요청을 적절한 처리 경로로 전달한다는 점에서 API 게이트웨이 역할을 수행한다. 네트워크 오류가 발생했을 때 온디바이스로 전환하는 흐름은 서킷 브레이커 패턴과 같은 원리다. 복잡도 기반 라우팅, 프라이버시 격리, 비용 최적화, 오프라인 탄력성을 함께 다뤄야 단순 API 호출을 넘어선 모바일 AI 아키텍처가 된다.

단일 모델보다 조율 계층이 중요해진다

Anthropic의 Apple Foundation Models 연동 Swift 패키지는 iOS·macOS 앱에서 온디바이스와 클라우드 AI를 결합하는 경로를 제공한다. 이때 중심에 놓이는 것은 특정 모델이 아니라 개인정보 보호, 오프라인 가용성, API 비용을 함께 조율하는 HybridInferenceRouter다.

이 패턴은 모바일 AI 아키텍처의 표준으로 자리 잡을 것으로 예상된다. 2026년 이후에는 단일 제공자에 고정된 구조보다 온디바이스와 클라우드를 동적으로 배치하는 하이브리드 전략이 모바일 AI 개발의 필수 역량으로 요구될 것이다.

Sources

Apple Foundation ModelsClaude API온디바이스 AISwift하이브리드 추론