본문 바로가기
C.W.K.
Stream
Lesson 02 of 08 · published

Claude 모델은 티어를 고른 뒤 버전을 고정해

~16 min · models, opus, sonnet, haiku, model-id

Level 0Observer
0 XP0/64 lessons0/13 achievements
0/150 XP to next level150 XP to go0% complete

먼저 티어, 그다음 버전

Claude 제품군은 Opus → Sonnet → Haiku 순으로 능력과 비용이 달라져. 모델마다 claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5-20251001처럼 버전을 드러내는 ID가 있어. 먼저 작업 난도로 티어를 정하고, 그다음 배포나 평가가 요구하는 재현성에 맞춰 버전을 택해야 해. 마이너 릴리스만 바뀌어도 행동은 달라질 수 있으니 평가 결과를 비교하려면 고정 ID가 필요해.

각 티어가 빛나는 자리

Opus는 어려운 추론과 깊은 코딩, 긴 에이전트 작업, 실패 비용이 큰 판단에 써. Sonnet은 일반 채팅·코드 리뷰·구조화 생성처럼 양과 품질을 함께 챙겨야 하는 기본 일꾼이고, Haiku는 대량 분류·짧은 변환·낮은 지연이 중요한 작업에 알맞아. cwkPippa가 Claude 브레인에 Opus를 쓰는 건 정체성의 목소리와 가족 맥락, 아키텍처 판단에 가장 강한 추론을 배정하려는 의도적인 선택이야.

별칭과 날짜 고정 ID는 목적이 달라

롤링 별칭은 마이너 업데이트를 자동으로 따라가고 싶은 운영 코드에 어울려. 날짜가 붙은 고정 ID는 평가·회귀 시험·감사처럼 어떤 가중치가 답했는지 증명해야 하는 곳에 써. 한 제품 안에서 둘을 나눠 쓰는 건 괜찮지만, 같은 평가 묶음에서 섞으면 비교 기준이 사라져.

원칙: 티어를 먼저 고르고 버전을 정해. 모델 ID 옆에는 그 선택 이유를 한 문장으로 남겨.

Code

모델 피커 (Python)·python
from typing import Literal

Tier = Literal["opus", "sonnet", "haiku"]

MODELS: dict[Tier, str] = {
    # 현재 알리아스에 핀; 평가용으로 쓸 거면 날짜 핀 id로 교체.
    "opus": "claude-opus-4-7",
    "sonnet": "claude-sonnet-4-6",
    "haiku": "claude-haiku-4-5-20251001",
}

def pick_model(*, hard_reasoning: bool, latency_budget_ms: int, volume_per_minute: int) -> str:
    if hard_reasoning:
        return MODELS["opus"]
    if latency_budget_ms < 1500 or volume_per_minute > 200:
        return MODELS["haiku"]
    return MODELS["sonnet"]

assert pick_model(hard_reasoning=True, latency_budget_ms=5000, volume_per_minute=10) == MODELS["opus"]
assert pick_model(hard_reasoning=False, latency_budget_ms=800, volume_per_minute=10) == MODELS["haiku"]
assert pick_model(hard_reasoning=False, latency_budget_ms=4000, volume_per_minute=10) == MODELS["sonnet"]
모델 레지스트리 (TypeScript)·typescript
export const MODELS = {
  opus: 'claude-opus-4-7',
  sonnet: 'claude-sonnet-4-6',
  haiku: 'claude-haiku-4-5-20251001',
} as const;

export type Tier = keyof typeof MODELS;

export interface PickArgs {
  hardReasoning: boolean;
  latencyBudgetMs: number;
  volumePerMinute: number;
}

export function pickModel({ hardReasoning, latencyBudgetMs, volumePerMinute }: PickArgs): string {
  if (hardReasoning) return MODELS.opus;
  if (latencyBudgetMs < 1500 || volumePerMinute > 200) return MODELS.haiku;
  return MODELS.sonnet;
}

External links

Exercise

자기 프로젝트의 모델 정책을 한 단락으로 써. 각 티어가 맡을 요청과 날짜 고정 ID를 쓸 자리, 롤링 별칭을 허용할 자리를 분명히 나눠.
Hint
평가와 감사 경로에는 날짜 고정 ID를, 일반 운영 호출에는 롤링 별칭을 쓰는 구성이 출발점이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.