요약: GPT-5.6 시리즈는 Sol, Terra, Luna라는 세 가지 티어로 공개됐습니다. 실무 개발자에게 중요한 질문은 “어느 모델이 제일 좋은가”가 아니라 “요청을 어떤 기준으로 나눌 것인가”입니다. 이 글은 API 서비스에서 모델 라우터를 설계할 때 쓸 수 있는 기준, 로그 항목, fallback 흐름, 비용 계산 방식을 정리합니다.
핵심 키워드: GPT-5.6 모델 라우터, Sol Terra Luna, OpenAI API 비용 최적화, LLM 라우팅, AI 서비스 운영.
LLM 서비스를 처음 만들 때는 보통 하나의 모델로 시작합니다. 구현이 쉽고 디버깅도 단순합니다. 하지만 사용량이 늘면 곧 문제가 생깁니다. 단순 분류 요청에도 비싼 모델을 쓰고, 복잡한 요청에는 싼 모델을 써서 실패합니다. 비용과 품질이 동시에 흔들립니다.
GPT-5.6 시리즈는 이 문제를 더 분명하게 만듭니다. Sol은 가장 강한 모델이고, Terra는 균형형이며, Luna는 저비용·고속 모델입니다. 가격도 다릅니다. Sol은 100만 토큰 기준 입력 $5, 출력 $30입니다. Terra는 입력 $2.50, 출력 $15입니다. Luna는 입력 $1, 출력 $6입니다.
이 구조에서는 라우터가 사실상 제품 로직의 일부가 됩니다. 라우터가 잘못되면 좋은 모델을 쓰고도 비용이 터집니다. 반대로 라우터가 좋으면 비싼 모델 사용량을 줄이면서도 사용자 체감 품질을 유지할 수 있습니다.
가장 먼저 볼 기준은 실패 비용입니다. 모델 선택은 요청 난이도만으로 정하면 안 됩니다. 틀렸을 때 손해가 큰지 봐야 합니다.
예를 들어 “이 문장을 존댓말로 바꿔줘”는 틀려도 손해가 작습니다. Luna나 Terra로 충분합니다. 반면 “인증 미들웨어의 보안 취약점을 찾아줘”는 틀리면 사고로 이어질 수 있습니다. Sol을 써야 할 가능성이 높습니다.
실패 비용은 다음처럼 점수화할 수 있습니다.
3점 이하는 Luna 또는 Terra로 시작하고, 4점 이상은 Sol 후보로 둡니다. 이 기준은 단순하지만 팀 합의에 좋습니다.
두 번째 기준은 결과를 자동 검증할 수 있는지입니다. 자동 검증이 가능하면 싼 모델을 먼저 써도 됩니다.
예를 들어 JSON 변환, 정규식 추출, 테스트 코드 생성은 검증하기 쉽습니다. 스키마 검사, 테스트 실행, lint로 실패를 잡을 수 있습니다. 이런 작업은 Luna로 먼저 시도하고 실패하면 Terra로 올리는 방식이 비용 효율적입니다.
반대로 기획 판단, 보안 위험 평가, 아키텍처 의사결정은 자동 검증이 어렵습니다. 사람 리뷰가 필요합니다. 이런 작업은 처음부터 Sol이나 Terra를 쓰고, 모델 답변을 여러 관점으로 나눠 검토하는 편이 낫습니다.
라우터에는 verifiable 같은 플래그를 넣을 수 있습니다.
verifiable=true인 작업은 낮은 모델부터 시작할 수 있습니다. false인 작업은 실패 비용과 사용자 등급을 같이 봐야 합니다.
LLM 비용에서 자주 놓치는 것이 출력 길이입니다. Sol의 출력 단가는 입력보다 훨씬 비쌉니다. 긴 보고서, 코드 생성, 다단계 추론은 출력 토큰이 크게 늘어납니다. 그래서 “복잡한 작업은 Sol”만으로는 부족합니다.
긴 출력이 필요한 작업은 두 단계로 나눌 수 있습니다.
예를 들어 50개 고객 문의를 분석한다면 Luna로 1차 분류를 하고, 불확실한 5개만 Terra나 Sol로 보냅니다. 코드 리뷰도 전체 diff를 Sol에 보내기보다, Terra가 위험 파일을 먼저 고르고 Sol이 그 파일만 깊게 보는 구조가 낫습니다.
출력 길이를 줄이는 프롬프트도 중요합니다.
라우터는 모델만 고르는 것이 아니라 출력 형식도 같이 정해야 합니다.
많은 팀이 실패하면 바로 더 비싼 모델로 재시도합니다. 하지만 모든 실패가 모델 성능 문제는 아닙니다. 입력이 부족하거나, 스키마가 잘못됐거나, 도구가 실패했을 수 있습니다.
fallback 전에 실패 원인을 분류해야 합니다.
이렇게 나누면 비용을 아낄 수 있습니다. 예를 들어 JSON 파싱 오류 때문에 Sol로 올리는 것은 낭비입니다. 같은 모델에 스키마 예시를 추가하는 편이 더 싸고 빠릅니다.
모델 라우터는 처음부터 완벽할 수 없습니다. 반드시 로그로 개선해야 합니다. 최소한 다음 항목은 저장해야 합니다.
이 로그가 있으면 “Luna로 충분한 작업”, “Terra에서 자주 실패하는 작업”, “Sol을 써도 품질 개선이 없는 작업”을 찾을 수 있습니다. 한 달 뒤에는 감이 아니라 데이터로 라우팅 규칙을 바꿀 수 있습니다.
특히 cached_tokens는 꼭 봐야 합니다. 같은 prefix를 반복하는 서비스라면 캐시 히트율이 비용에 큰 영향을 줍니다. 모델 라우팅과 prompt caching은 따로가 아니라 같이 설계해야 합니다.
실제 구현은 서비스마다 다르지만, 출발점은 단순해도 됩니다.
function selectModel(job) {
if (job.risk >= 4) return 'gpt-5.6-sol';
if (job.verifiable && job.expectedOutputTokens < 800) return 'gpt-5.6-luna';
if (job.userTier === 'enterprise' && job.intent === 'architecture') return 'gpt-5.6-sol';
if (job.expectedOutputTokens > 3000) return 'gpt-5.6-terra';
return 'gpt-5.6-terra';
}
중요한 것은 코드 자체가 아닙니다. 팀이 risk, verifiable, expectedOutputTokens 같은 공통 언어를 갖는 것입니다. 이 언어가 있어야 모델 변경을 제품 정책으로 다룰 수 있습니다.
결론은 간단합니다. GPT-5.6 시대의 비용 최적화는 프롬프트 튜닝만으로 끝나지 않습니다. 요청을 분류하고, 실패 비용을 계산하고, 검증 가능한 작업부터 싼 모델에 보내는 모델 라우터가 필요합니다. 좋은 라우터는 최신 모델보다 오래 갑니다.
근거: OpenAI GPT-5.6 발표, OpenAI API prompt caching 문서.