Claude Code 모델 전환 훅으로 정책 게이트 설계하기
Claude Code의 모델 전환 훅을 활용해 폴백, 재라우팅, 원가 한도와 승인 정책을 실행 시점에 통제하는 방법
2026-09-14 · 최초 발행 2026-09-05
Claude Code 9월 체인지로그에는 PreModelSwitch와 PostModelSwitch 훅 이벤트가 추가됐다. 모델이 바뀌는 순간을 차단하거나 확인하고, 전환 사유를 남길 수 있게 된 것이다. 에이전트가 상위 모델로 폴백하면 원가가 급등할 수 있고, 반대로 하위 모델로 내려가면 오류 메시지 없이 결과 품질만 낮아질 수 있다. 청구서나 주간 리포트에서 이를 발견하는 방식으로는 이미 발생한 소모를 되돌릴 수 없다.
모델 정책은 이제 설정 파일의 기본 모델을 지정하는 문제만이 아니다. 실제 전환이 일어나는 시점에 조건을 평가하고 개입하는 실행 통제가 필요하다.
전환 직전에 정책을 강제하는 구조
PreModelSwitch는 모델 변경이 확정되기 전에 호출되므로 허용 여부를 판단하는 지점으로 쓸 수 있다. PostModelSwitch는 변경이 끝난 뒤 전환 결과와 사유를 기록하는 역할에 맞는다. 전환 이후에만 훅을 두면 관측은 가능하지만 통제는 할 수 없다.
정책 게이트에는 승인된 모델 목록이 필요하다. 목록에는 모델별 용도, 단가, 데이터 처리 조건을 함께 관리한다. 벤더가 제공하는 모든 모델을 기본 허용하면 승인되지 않은 모델로의 폴백이 규정 위반으로 이어질 수 있다.
작업 종류에 따라 허용 범위도 달라진다. 대화형 보조, 배치 처리, 코드 편집, 검토 작업은 상향과 하향 전환에 서로 다른 조건을 둘 수 있다. 배치 처리에 맞춘 단일 규칙을 대화형 응답에 그대로 적용하면 응답 품질이나 가용성을 해칠 수 있다.
상위 모델 전환은 세션 누적 사용량과 예산 잔여를 함께 보고 결정한다. 같은 전환이라도 예산 상태에 따라 허용 여부가 달라질 수 있으므로 정적 규칙만으로는 부족하다. 위험이 큰 상향 전환이나 미승인 모델 사용에만 사람 확인을 요구하고, 모든 전환에 승인을 붙여 확인 피로가 쌓이지 않게 해야 한다.
차단된 전환이 곧바로 실패가 되어서는 안 된다. 재시도, 대기, 큐 적재, 사용자 확인 중 어떤 경로로 이어질지를 함께 정해야 통제가 가용성 사고가 되는 일을 막을 수 있다.
전환 기록에는 이전 모델과 신규 모델뿐 아니라 발생원도 남긴다. 폴백 체인, 안전 분류기의 재라우팅, 사용자 지시를 구분해야 원가 급증의 원인을 추적할 수 있다. 전환 빈도, 사유별 분포, 차단 건수, 전환으로 생긴 추가 원가는 주기적으로 집계해 정책 조정에 사용한다.
기록에서 시작해 차단 범위를 좁힌다
처음부터 차단을 켜기보다 훅을 기록 전용으로 연결해 실제 전환 빈도와 사유를 수집한다. 폴백 발생 빈도는 예상보다 높을 수 있으므로, 추정으로 정책을 세우면 현실의 작업 흐름과 어긋나기 쉽다.
계측 결과에서 대다수를 차지하는 전환은 허용하고, 예외적인 상향 전환을 우선 통제 대상으로 정한다. 이후 한 팀이나 한 작업 유형에서만 차단 규칙을 시험해 가용성 영향과 불만을 관찰한다. 규칙의 부작용은 특정 워크플로에 집중될 수 있어 전사 적용부터 시작하면 원인을 분리하기 어렵다.
정당한 상향이 필요한 작업에는 일정 기간 예외를 허용받는 등록 경로가 있어야 한다. 예외를 매번 개별 협의로 처리하면 정책은 비공식적인 방식으로 우회된다.
원가 효과는 정책 전후의 모델별 사용 비중과 요청당 평균 원가를 비교해 본다. 총액만 비교하면 사용량 변동과 정책 효과가 섞여 판단이 흐려진다. 신규 모델 출시나 단가 변경이 생길 때 허용 목록과 조건을 갱신하는 주기도 정해둬야 한다. 갱신되지 않은 목록은 신모델 도입 자체를 막을 수 있다.
조직 표준에는 허용 모델 목록, 작업 유형별 조건, 승인 기준, 차단 시 대체 경로를 포함한다. 전환 빈도, 차단율, 예외 승인 건수, 정책으로 절감된 원가는 정기 보고 항목으로 관리할 수 있다.
사전 게이트와 사후 리뷰의 역할
| 구분 | 훅 기반 사전 차단 | 사후 사용량 리뷰 |
|---|---|---|
| 원가 통제력 | 강함 | 없음 |
| 운영 개입 부담 | 큼 | 작음 |
| 가용성 영향 | 있음 | 없음 |
| 인지 시점 | 즉시 | 지연 |
| 구현 복잡도 | 큼 | 작음 |
| 정책 우회 | 어려움 | 해당 없음 |
훅 기반 사전 차단은 승인되지 않은 전환이 실행되기 전에 막히므로 원가와 규정 위반을 실제로 통제한다. 정책이 코드로 강제되고, 차단 시점에 대체 경로로 유도할 수도 있다. 반면 규칙이 과하면 정당한 폴백까지 막아 가용성을 떨어뜨릴 수 있으며, 훅 로직이 별도 장애 지점이 되고 예외 처리 부담도 생긴다.
사후 사용량 리뷰는 실행을 방해하지 않고 구현 부담이 작으며 전체 흐름을 놓고 판단할 수 있다. 다만 이미 발생한 소모를 되돌릴 수 없고, 인지까지 며칠이 걸려 같은 패턴이 반복될 수 있다. 개선 역시 권고에 그친다. 위험이 큰 상향 전환만 사전에 차단하고 나머지는 기록 후 리뷰하는 이원 통제가 통제력과 가용성을 함께 다룬다.
작업별 자동 전환은 간단한 작업에 저비용 모델을, 어려운 작업에 상위 모델을 배정할 수 있다. 과부하가 생겨도 대체 모델로 이어지고 신모델을 특정 작업부터 도입하기 쉽다. 대신 같은 요청도 실행 시점에 따라 다른 모델로 처리될 수 있어 결과와 원가 예측이 흔들리며, 전환 규칙 자체를 계속 관리해야 한다.
단일 모델 고정은 결과가 일관되고 원가 예측이 쉬우며 검증 대상이 하나여서 품질 관리가 단순하다. 그러나 쉬운 작업에도 상위 단가를 지불할 수 있고, 어려운 작업에서는 품질이 부족할 수 있다. 해당 모델이 과부하 상태이면 서비스도 함께 멈춘다. 기본 모델은 고정하되 명시적으로 승인한 폴백 경로만 자동 전환하도록 두는 방식은 예측 가능성과 적합도를 절충한다.
차단과 주석 기록을 병행하면 허용·차단 여부와 관계없이 전환 사유가 남는다. 원가 급증의 원인을 찾고, 정책 개정의 근거를 쌓으며, 감사 요구에 대응할 수 있다. 기록 항목과 보관 정책을 설계해야 하고 이벤트가 많은 환경에서는 저장 부담과 훅 처리 시간이 응답에 더해질 수 있다. 차단만 두면 구현은 단순하지만 조정 근거가 남지 않고, 부작용은 사용자 신고로만 알게 된다. 전환 시도는 최소 항목으로 기록하고 상세 주석은 표본에만 남기는 방식이 추적성과 부담을 함께 관리한다.
변경·비용·접근 통제로 보는 모델 정책
허용 모델 목록과 승인 필요 구분은 변경 유형별 승인 권한 체계에 해당한다. 신규 모델 출시나 단가 변경에 맞춘 정책 갱신 주기는 변경 관리 절차의 정기 검토 활동으로 볼 수 있다.
세션 누적 사용량과 예산 잔여를 반영하는 판정은 예산 통제를 실행 시점에 강제하는 수단이다. 전환 통계는 비용이 발생한 요인을 분석하는 기초 자료가 된다.
미승인 모델 차단은 자원 사용 권한을 강제하는 접근 통제다. 전환 사유 주석은 통제 활동이 실제로 수행됐음을 보여 주는 감사 증적 역할을 한다.
전환 정책이 향하는 방향
모델 전환 훅은 에이전트 런타임의 표준 확장점으로 자리잡고, 이를 중심으로 한 정책 도구가 형성되는 방향이다. 허용 모델 목록은 조직 자산 목록의 한 항목으로 관리되며 계약과 연동되는 흐름도 나타난다.
전환 사유별 원가 귀속은 리포트 기본 항목으로 편입되고, 안전 분류기에 따른 재라우팅은 별도 유형으로 구분해 관측하는 흐름이 이어질 수 있다.
에이전트의 상향 전환은 원가를, 하향 전환은 품질을 흔들 수 있지만 둘 다 오류로 드러나지 않을 수 있다. PreModelSwitch와 PostModelSwitch는 바로 그 순간에 조건을 평가하고 개입할 수 있게 한다. 허용 목록, 작업별 조건, 원가 한도, 대체 경로, 사유 주석을 함께 설계해야 정책 게이트가 실제 통제로 작동한다.