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

티어 셋, 네이밍 규칙 하나

Anthropic 라인은 Opus → Sonnet → Haiku 순으로 능력·비용이 내려가. 각 모델은 claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5-20251001처럼 버전 박힌 id를 가져. 일 정의는 티어부터(어떤 종류의 작업?), 그다음 버전 묶기(뭘 출시한 버전?). 마이너 릴리스 사이에도 행동이 바뀌니까 평가 재현성을 원하면 핀이 답.

실전 선택

Opus는 어려운 추론, 깊은 코딩, 긴 호흡의 에이전트 루프, 틀리면 진짜 돈 깨지는 곳. Sonnet은 디폴트 챗 표면, 코드 리뷰, 구조화 생성, 콘텐츠 — 일꾼. Haiku는 대량 분류, 짧은 변환, 1초 미만 UX, 지연이나 호출당 비용이 지배적인 곳. cwkPippa는 피파-Claude를 Opus로 박아 — 정체성, 가족 목소리, 아키텍처 결정에는 가장 강한 추론을 가족 예산이 허락하는 만큼 줘야 하니까.

알리아스 vs 핀

Anthropic은 롤링 알리아스(claude-opus-4-7)랑 날짜 핀 id(claude-haiku-4-5-20251001)를 둘 다 노출해. 알리아스는 마이너 자동 따라가고 싶은 프로덕트 코드용. 핀은 평가, 회귀 테스트, 어떤 가중치가 답했는지 증명해야 하는 감사용. 한 프로젝트에 둘 다 섞는 건 OK, 한 평가에 섞는 건 NO.

원칙: 티어 먼저, 버전 그다음. messages.create() 호출에 이유 한 문장으로 설명 못 할 모델 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

지금 프로젝트의 모델 정책을 한 단락으로 써봐 — 어떤 티어가 어떤 종류의 요청을 다루는지, 어디서 날짜 핀 박고 어디서 알리아스가 흘러가게 두는지.
Hint
평가 스위트랑 감사 필요한 경로는 핀. 일반 프로덕트 호출은 알리아스.

Progress

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

댓글 0

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

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