Claude Code Mods와 Jev를 활용한 모델 라우터 입문
요약
본 글은 Claude Code Mods와 Jev를 활용하여 모델 라우터(Model Router)를 구현하는 개념을 다룹니다. 모델 라우터는 요청의 난이도에 따라 Opus, Sonnet, Haiku 등 적절한 성능의 AI 모델을 선택적으로 사용하는 메커니즘입니다. 이는 자원 효율성을 높이고 응답 속도를 개선하며 구독 사용 한도를 관리하는 데 도움을 줍니다.
핵심 포인트
- 모델 라우터는 요청 난이도에 따라 최적의 모델을 분배합니다.
- Claude Code Mods는 세션 중 함수 후크를 통해 개입 가능한 확장 기능입니다.
- 가벼운 작업에는 빠른 Haiku, 어려운 작업에는 강력한 Opus 사용이 효율적입니다.
- Claude Code Mods는 Claude Code 내에서 작동하는 함수 후크 형식의 플러그인으로, 세션 중에 핫 리로드(hot reload)가 가능한 확장 기능입니다.
- 모델 라우터란 요청의 난이도에 따라 Opus, Sonnet, Haiku 등의 모델을 다르게 사용하는 메커니즘입니다. Mods와 Jev를 조합한 구현 예시가 Qiita에서 소개되었습니다 (https://qiita.com/moritalous/items/8b663db633dde3c49d62).
- '구독으로 사용 가능'하다는 점은 API 키 과금이 아니라 계약 중인 플랜의 범위 내에서 작동하는 구성을 의미한다고 생각됩니다. 다만 약관과 상한선은 반드시 공식적으로 확인해야 합니다.
먼저 솔직하게 말씀드립니다. 작성 시점 기준으로 참고한 Qiita 기사의 본문을 가져올 수 없었습니다. Jev의 사양이나 설정 항목을 저는 1차 정보로 확인할 수 없습니다.
따라서 본 기사에서는 확인된 범위와 설계의 일반론을 나누어 작성합니다. Jev의 구체적인 사용법은 'TBD'로 명시하고 추측으로 채우지 않겠습니다. 세부 절차는 원본 Qiita 기사와 공식 문서를 통해 확인해 주십시오.
대신, 검색하는 사람이 궁금해할 다음 질문에 답하겠습니다.
- Claude Code Mods란 무엇인가
- 모델 라우터로 무엇이 달라지는가
- 직접 설계할 때의 유형
- 어떤 경우에 적합하지 않은가
Mods는 Claude Code 내부에 자체 제작한 표시나 처리를 삽입하는 메커니즘입니다. 제 환경에서 사용할 수 있는 스킬 설명에는 다음과 같이 쓰여 있었습니다.
- 라이브 페인(Live Pain), 밴드(Band), 상태 라인(Status Line), 토스트(Toast), 후크를 만들 수 있다
- 함수 후크를 모은 플러그인으로 작성한다
- 작동 중인 세션에 핫 리로드된다
이 설명은 실제로 제 환경에 표시되었던 기술입니다. 터미널에서도 데스크톱 앱의 Code 탭에서도 사용할 수 있다고도 쓰여 있었습니다.
즉, Mods는 Claude Code 외부에서 바라보는 도구가 아닙니다. 본체의 움직임에 '후크'로 개입할 수 있는 확장점입니다.
후크란 특정 타이밍에 호출되는 함수를 말합니다. 예를 들어 다음과 같은 용도가 생각될 수 있습니다.
- 요청 전 내용을 확인하기
- 응답 후에 로그 남기기
- 상태 라인에 상태 표시하기
모델 라우터는 이 중 '요청을 보고 사용할 모델을 결정하는' 역할에 해당합니다. 다만, 후크로 모델 전환까지 직접 할 수 있는지는 저는 확인하지 못했습니다. 여기는 TBD입니다.
모델 라우터는 길 안내의 교통 정리와 같습니다. 간단한 요청은 가벼운 모델로, 어려운 요청은 강력한 모델로 분배합니다.
이유는 주로 3가지가 있습니다.
- 가벼운 작업에 최상위 모델을 사용하는 것은 자원의 아까운 사용처가 되기 쉽다
- 가벼운 모델 쪽이 일반적으로 응답 속도가 빠르다
- 구독의 이용 상한선을 오래 유지하고 싶다
구독에서는 사용량이 상한선에 가까워지면 제한이 걸립니다. 무거운 작업과 가벼운 작업을 나누는 것만으로도 체감은 상당히 달라질 것입니다. 다만, 절감량 수치는 제가 측정하지 않았기 때문에 쓰지 않겠습니다.
Anthropic의 모델 ID는 다음과 같습니다 (환경에서 제시된 정보입니다).
| 모델 | ID | 적합해 보이는 역할 |
|---|---|---|
| Opus 5.5 | claude-opus-5-5 | 설계/어려운 디버깅 |
| Sonnet 5.5 | claude-sonnet-5-5 | 일상적인 구현/리뷰 |
| Haiku 4.5 | claude-haiku-4-5-20251001 | 요약/정형화/단순 검색 |
'적합해 보이는 역할'은 제 설계안입니다. 공식 권장 사항이 아닙니다.
Qiita 기사의 제목에서는 Mods와 Jev로 모델 라우터를 만든다고 합니다. 여기서 Jev가 어떤 부품인지, 저는 1차 정보로 확인할 수 없습니다.
상상으로 쓰는 것은 피하겠습니다. 확인하고 싶은 점은 다음 3가지입니다.
- Jev는 어떤 도구인가 (공개처/라이선스)
- Claude Code와 어떻게 연결하는가
- 인증은 계약 중인 플랜을 사용하는가
특히 3번이 중요합니다. '구독으로 사용 가능'하다고 말할 수 있는지는 여기서 결정됩니다.
Jev의 구현에 의존하지 않는, 생각의 유형을 작성하겠습니다. 아래는 개념을 보여주는 유사 코드(pseudo code)이며, 실제 API가 아닙니다.
// 개념 예시: 요청의 특징에서 모델 선택
function pickModel(prompt) {
if (/設計|アーキテクチャ|原因が分からない/.test(prompt)) return
⚠️ `[IMG:N]` 형식 토큰은 이미지 placeholder 입니다. 번역하지 말고 원래 위치에 그대로 유지하세요.
**기본값은 중간 모델로 설정한다.** 판정에 실패하더라도 피해가 작기 때문입니다. -
**수동으로 덮어쓸 수 있게 한다.** 자동 판정은 반드시 틀립니다. -
**선택한 모델을 화면에 표시한다.** 상태 라인(status line)에 표시하면, 동작을 의심하기 쉬워집니다.
여기서 Mods의 상태 라인 기능이 유용해 보입니다. 라우터의 판단을 시각화할 수 있기 때문입니다.
| 방식 | 정확도 | 난이도 | 주의점 |
|---|---|---|---|
| 키워드 일치 | 낮음~중간 | 낮음 | 누락되는 경우가 많습니다 |
| ... |
처음에는 키워드 일치로 충분합니다. 부족하다고 느낄 때 분류 모델을 검토하는 순서가 현실적일 것입니다.
결론부터 말하자면, 저에게는 '그렇게 소개되고 있다'라고밖에 말씀드릴 수 없습니다. 근거는 자료의 제목과 Qiita 기사의 존재뿐입니다.
확인해야 할 사항은 다음과 같습니다.
- 사용 중인 플랜의 이용 약관에서 이 연결 방식이 허용되는지
- 제3자 도구를 거쳐 사용하는 것이 약관상 어떻게 취급되는지
- 상한에 도달했을 때의 동작
약관 위반으로 계정에 영향이 생기는 것은 본말전도가 됩니다. 도입하기 전에 Anthropic의 공식 문서를 그리고 플랜의 약관을 읽어보세요.
라우터가 만능은 아닙니다. 다음 케이스에서는 오히려 역효과가 날 수 있습니다.
- 작업 대부분이 어려운 설계나 디버깅인 사람. 거의 최상위 모델로 할당되므로, 라우터의 이점이 적습니다.
- 설정을 건드리는 시간이 아까운 사람. 조정 자체가 작업이 됩니다.
- 약관 확인에 시간을 들이고 싶지 않은 사람. 구독 공유(sub-scripting) 구성은 특히 신중함이 필요합니다.
-
**오판:** 어려운 요청이 가벼운 모델로 돌아가면, 다시 시도하는 과정에서 오히려 할당량을 소모하게 됩니다. -
**문맥 단절:** 세션 도중에 모델이 바뀌면, 동작의 습관(패턴)이 바뀌어 혼란스러울 수 있습니다. -
**사양 변경:** Mods는 새로운 메커니즘입니다. Jev 같은 주변 도구를 포함하여 업데이트로 인해 작동하지 않게 될 가능성이 있습니다.
갑자기 자동 전환을 하지 마세요. 먼저 '지금 어떤 모델을 사용해야 하는지'를 제안하는 표시부터 시작하는 것이 안전합니다. 제안이 맞는 비율을 며칠 동안 보고 나서, 자동화로 진행하세요.
- 원본 Qiita 기사를 끝까지 읽었다
- Jev의 공개처와 라이선스를 확인했다
- 플랜 약관에서 허용되는 구성임을 확인했다
- 수동으로 원래 모델로 되돌리는 방법을 파악했다
- 라우터의 판단을 화면에 표시하도록 설정했다
첫걸음은 Qiita 기사를 읽고 Jev의 정체를 확인하는 것입니다. 그 결과, 약관상 문제가 없어 보인다면, 제안 표시만 하는 라우터를 하루 동안 사용해 보세요.
남아있는 질문은, 판정을 누가 담당할 것인가입니다. 사람의 수동 전환과 자동 라우터 중 어느 것이 자신의 작업에 더 이득인지. 며칠 기록하면 답이 나옵니다.
Claude Code 내부에 페인(Pain)이나 상태 라인, 훅(Hook)을 추가할 수 있는 플러그인 메커니즘입니다. 함수 훅으로 작성하여 동작 중인 세션에 핫 리로드(hot reload)되면 설명되어 있습니다.
요청 내용에 따라 사용할 AI 모델을 자동으로 선택하는 시스템입니다. 간단한 작업은 가벼운 모델로, 어려운 작업은 강력한 모델로 할당합니다.
저는 일차 정보로 확인하지 못했기 때문에 TBD입니다. Mods와 결합된 모델 라우터의 구현 예시가 Qiita에서 소개되어 있습니다 (https://qiita.com/moritalous/items/8b663db633dde3c49d62).
소개 기사에서는 그렇게 다루어지고 있는 것 같지만, 저는 약관 측면을 확인할 수 없습니다. 도입하기 전에 사용 중인 플랜의 약관과 Anthropic의 공식 정보를 확인하세요.
간단한 작업을 가벼운 모델로 돌릴 수 있다면, 절약으로 이어질 가능성이 있습니다. 다만 오판으로 다시 시도하는 것이 늘어나면 역효과가 되어, 절감량의 수치는 제가 측정하지 않았습니다.
설계와 어려운 디버깅은 Opus, 일상적인 구현은 Sonnet, 요약이나 정형화는 Haiku라는 분담이 출발점이 됩니다. 이는 저의 설계안이며, 공식 권장 사항이 아닙니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기