Claude Sonnet 5: 필드 가이드
2026년 6월 30일, Anthropic은 Claude Sonnet 5(claude-sonnet-5)를 출시하면서 조용히 Claude Code의 기본 모델로 지정했습니다. 문서상으로는 동일한 정가로 Sonnet 4.6을 대체하는 드롭인입니다. 실제로는 세 가지 API 제약 때문에 순진하게 마이그레이션하면 400 Bad Request가 반환되고, 새 토크나이저가 동일 텍스트에 대해 약 30% 더 많은 토큰을 생성하므로(컨텍스트 예산과 요청당 비용이 모두 변합니다), effort 스케일이 이동해서 "전부 그대로 두기"는 더 이상 같은 상태가 아닙니다. Sonnet 4.6에서 high로 돌리고 있었다면, Sonnet 5의 high는 Sonnet 4.6의 max에 더 가깝습니다.
이 페이지는 실용적인 필드 가이드입니다. 무엇이 바뀌었는지, 무엇이 깨지는지, 정확한 마이그레이션 체크리스트, 토크나이저 변화에 따른 가격 계산, 대부분의 팀이 먼저 재조정하는 프롬프팅 패턴을 다룹니다.
- Sonnet 5가 실제로 무엇인지 이해 — 기본 1M 컨텍스트, 기본으로 켜진 적응형 사고, 실시간 사이버보안 세이프가드를 갖춘 최초의 Sonnet
- 기존 코드에 400을 일으키는 세 가지 API 제약과 각각의 한 줄짜리 수정법을 파악
- 새 토크나이저 가격 계산 모델링: 같은 $/token이지만 토큰 수가 약 30% 증가 = 요청당 비용이 달라짐
- effort 레벨 재보정: Sonnet 5 medium ≈ Sonnet 4.6 high, Sonnet 5 high ≈ Sonnet 4.6 max
- 가장 크게 바뀌는 프롬프팅 패턴 조정: 장황함, 툴 사용 트리거, 코드 리뷰 재현율, 디자인 기본값
한 문단 요약
Sonnet 5는 균형 잡힌 "시작하기 좋은" Sonnet 티어로, 같은 정가로 Sonnet 4.6보다 상위에 위치하며 이제 Claude Code의 기본입니다. 기본으로 1M 토큰 컨텍스트 윈도우(더 작은 컨텍스트 변형 없음), 128k 최대 출력, 기본으로 켜진 적응형 사고를 지원합니다. 마이그레이션 시 세 가지 API 계약이 깨집니다. 수동 확장 사고(thinking: {type: "enabled", budget_tokens: N})는 제거되어 400을 반환하고, 비기본 샘플링 파라미터(temperature, top_p, top_k)는 400을 반환하며, 토크나이저가 변경되어 동일한 입력 텍스트가 Sonnet 4.6 대비 약 30% 더 많은 토큰을 생성합니다. Priority Tier는 Sonnet 5에서 제공되지 않습니다. 이것이 이번 릴리스의 전체 모양입니다.
"드롭인"에 별표가 필요한 이유
Anthropic의 공식 문서는 Sonnet 5를 "Claude Sonnet 4.6의 드롭인 대체품"으로 설명합니다. 프롬프트 내용에 관해서는 사실입니다. 하지만 API 표면이 충분히 바뀌어서 "모델 문자열만 바꿔 배포"하면 어제까지 잘 돌던 요청에서 오류가 발생합니다. 통합을 깨뜨리는 빈도 순으로 네 가지가 여러분을 물어뜯을 겁니다.
temperature,top_p,top_k를 비기본값으로 설정하면 이제400을 반환합니다. 조용히 무시되는 게 아닙니다. 잘라내는 것도 아닙니다. 하드 에러입니다. Sonnet 계열 모델에서는 새로운 제약입니다. Opus 4.7이 같은 제약을 도입했습니다. SDK 래퍼가 항상temperature: 0.7을 보낸다면 이제 항상 실패합니다.- 수동 확장 사고가 제거되었습니다.
thinking: {type: "enabled", budget_tokens: N}은 4.6에서 지원 중단되었고 Sonnet 5에서는400을 반환합니다. 대신 effort 파라미터를 사용한 적응형 사고를 쓰세요. - 적응형 사고가 기본으로 켜져 있습니다. Sonnet 4.6에서는
thinking필드 없는 요청은 사고 없이 실행되었지만, Sonnet 5에서는 적응형 사고와 함께 실행됩니다.max_tokens는 총 출력(사고 + 응답 텍스트)의 하드 상한이므로, Sonnet 4.6에서 "답변만" 담기던 한계는 Sonnet 5에서 답변을 잘라낼 수 있습니다. - 새 토크나이저가 동일 텍스트에 대해 약 30% 더 많은 토큰을 생성합니다. API 변경은 아닙니다 — 요청과 응답 형태는 동일하지만, 토큰으로 측정하거나 예산 잡는 모든 것이 이제 더 높게 측정됩니다.
400을 유발할 API 제약들
- API 기본이 아닌 temperature, top_p, top_k를 모두 제거하세요. 앱에 스타일 다양성이 필요하면 temperature 대신 시스템 프롬프트 지시를 사용하세요(이제 그것이 유일한 레버입니다). 다양한 디자인 출력이 필요하면 모델에 N개의 서로 다른 방향을 제안하게 하고 하나를 고르세요 — 고정된 샘플링에서도 실행 간 다양성을 얻을 수 있습니다.
- 요청 빌더에서 thinking: {type: "enabled", budget_tokens: N}을 모두 삭제하세요. 대신 effort(low / medium / high / xhigh / max)를 설정하고, 적응형 사고가 언제 사고할지 결정하도록 하세요. 요청마다 사고 예산을 동적으로 계산하고 있었다면 그 로직을 effort 선택자로 교체하세요 — Anthropic은 옛 동작을 재현하려는 시도를 명시적으로 권하지 않습니다.
- Sonnet 4.6에서는 thinking 필드가 생략되면 사고 없음을 의미했습니다. Sonnet 5에서는 적응형 사고를 의미합니다. max_tokens는 총 출력(사고 블록 + 응답 텍스트)의 하드 상한이므로, 대부분 사고로 채워지고 stop_reason: "max_tokens"로 잘린 답변으로 끝날 수 있습니다. max_tokens를 올리거나, effort를 medium으로 낮추거나, 정말 사고를 원하지 않으면 thinking: {type: "disabled"}를 전달하세요.
- 이것은 Sonnet 4.6에서 상속된 것으로 새것이 아니지만, Sonnet 4.5 이전에서 마이그레이션하는 많은 팀이 이 표면을 처음 건드릴 때 처음 부딪힙니다. 대신 구조화된 출력, 시스템 프롬프트 지시, 또는 output_config.format을 사용하세요. 프리필은 400 오류를 반환합니다.
최소 안전 마이그레이션 — 한 개의 diff
# Before (Sonnet 4.6) — worked
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
temperature=0.7, # 400 on Sonnet 5
thinking={"type": "enabled",
"budget_tokens": 8000}, # 400 on Sonnet 5
messages=[...],
)
# After (Sonnet 5) — one-liner replacements
response = client.messages.create(
model="claude-sonnet-5",
max_tokens=8192, # raise: thinking now shares the budget
# temperature removed — use system prompt instead
# thinking removed — adaptive is on by default
extra_body={"effort": "high"}, # was implicit in budget_tokens
messages=[...],
)토크나이저 변화는 API 이야기가 아니라 가격 이야기입니다
새 토크나이저는 재무팀을 가장 놀라게 할 변화입니다. 요청과 응답은 전송선상에서 동일하게 보이지만, 동일한 입력 텍스트가 Sonnet 4.6 대비 약 30% 더 많은 토큰을 생성합니다. 정확한 배율은 콘텐츠에 따라 달라지지만(코드, 영어 산문, 비영어 텍스트, 구조화 데이터가 각각 다르게 이동합니다) 30%가 Anthropic이 인용하는 숫자입니다.
이로 인해 동시에 세 가지가 달라집니다.
- 요청당 비용. 토큰당 가격은 Sonnet 4.6과 같은 표준 $3 / $15 per MTok(그리고 2026년 8월 31일까지 $2 / $10)로 변경되지 않았습니다. 하지만 동일 텍스트가 30% 더 많은 토큰을 생성하면, 표준 요율이 발효된 후에는 같은 텍스트가 약 30% 더 비싸집니다.
- 텍스트 기준 컨텍스트 용량. 컨텍스트 윈도우는 여전히 1M 토큰이지만, 각 토큰이 평균적으로 더 적은 텍스트를 커버합니다. 같은 문서가 윈도우의 약 30%를 더 차지합니다.
max_tokens잘림 위험. Sonnet 4.6에서 "이 정도 텍스트 분량"에 맞춰 조정된 출력 상한이 Sonnet 5에서 동등한 출력을 조용히 잘라낼 수 있습니다. 예상 출력 길이에 근접한 모든 한계를 재검토하세요.
솔직히 정리한 가격 계산입니다.
| 기간 | 정가 | 같은 텍스트 → Sonnet 4.6 대비 비용 |
|---|---|---|
| 지금 → 2026년 8월 31일 (도입가) | $2 in / $10 out | 약 13% 저렴 (30% 더 많은 토큰 × $2 vs. Sonnet 4.6의 $3) |
| 2026년 9월 1일부터 (표준) | $3 in / $15 out | 동등 텍스트에 대해 약 30% 더 비쌈 |
도입가 토큰으로 앱 가격을 책정하고 9월 1일 전환을 모델링하지 않았다면, 눈에 띄게 될 겁니다.
새 토크나이저로 프롬프트를 다시 세기
# Recount before you migrate — don't trust old numbers
count = client.messages.count_tokens(
model="claude-sonnet-5", # count under the NEW tokenizer
messages=[{"role": "user", "content": your_prompt}],
system=your_system,
)
print(count.input_tokens) # roughly 30% higher than on claude-sonnet-4-6effort 스케일이 이동했습니다 — 비교하기 전에 재보정하세요
effort 파라미터(low / medium / high / xhigh / max)는 여전히 같은 다섯 값을 갖지만, Anthropic은 마이그레이션 시 대부분의 팀이 첫 독해에서 놓치는 명시적 교차 모델 매핑을 제공합니다.
- Sonnet 5의
medium≈ Sonnet 4.6의high. - Sonnet 5의
high≈ Sonnet 4.6의max. - **
xhigh**는 가장 어려운 코딩과 에이전트 작업에 권장됩니다. - **
max**는 토큰 소비 제약을 완전히 제거합니다.
두 가지 함의입니다.
- Sonnet 4.6을
high로 돌리다가 effort는 그대로 두고 모델만 바꾸면, 이제 더 많은 사고, 더 많은 토큰, 아마 더 나은 출력으로 돌리는 셈이지만 청구서는 커집니다.medium으로 내리는 것을 고려하세요. - Sonnet 4.6을
max로 돌리다가 Sonnet 5의max로 바꾸면, 필요 없는 여유 공간에 돈을 내고 있을 수 있습니다. 먼저xhigh를 시도하세요.
Anthropic은 또한 Sonnet 5가 특히 저강도 쪽에서 effort를 엄격하게 존중한다고 경고합니다. low와 medium은 요청된 작업의 범위에 맞추며, "그 이상"으로 나아가지 않습니다. 지연 시간과 비용에는 좋지만, 중간 정도로 복잡한 작업을 low로 돌리면 사고 부족의 실질적 위험이 있습니다. 권장되는 해결책은 프롬프트로 우회하기보다 effort를 올리는 것입니다.
이제 Sonnet 5가 Claude Code 기본입니다 — 무엇이 바뀌나
Claude Code v2.1.197(2026년 6월 30일) 기준, claude-sonnet-5가 기본 모델입니다. 아무것도 설정하지 않으면 세션이 Sonnet 5로 실행됩니다. 실용적 결과입니다.
- 1M 컨텍스트를 얻지만,
max_tokens와 effort 설정은 상속됩니다. Claude Code의 기본값은 새 모델에 맞게 조정되어 있습니다.max_tokens를 고정하거나 effort 오버라이드를 설정한 커스텀 CLAUDE.md 구성은 재검증해야 합니다. - 더 빠르고 더 에이전트적인 기본 동작. Sonnet 5는 기본적으로 Sonnet 4.6보다 더 에이전트적입니다 — 도구에 더 쉽게 손을 뻗고, 자체 검증 루프를 더 기꺼이 실행합니다. Claude Code가 명령 실행에 보수적이었던 것에 익숙했다면, 더 많은 이니셔티브를 기대하세요.
- 정기적인 사용자 대상 진행 업데이트. Sonnet 5는 이미 긴 트레이스에서 더 나은 품질의 중간 업데이트를 제공합니다. "3번의 도구 호출마다 진행을 요약해줘" 같은 프롬프트 스캐폴딩은 대개 제거할 수 있습니다.
- Sonnet 4.6은 이제 레거시 모델입니다. 여전히 사용 가능하지만(
claude-sonnet-4-6을 이유가 있어 고정한다면), 더 이상 진입점이 아닙니다.
대부분의 팀이 재조정하는 네 가지 프롬프팅 패턴
1. 장황함은 작업 복잡도에 맞춰 보정됩니다
Sonnet 5는 고정된 장황함을 기본값으로 삼기보다 작업 복잡도에 따라 응답 길이를 선택합니다. 단순 조회에는 짧은 답변이, 열린 분석에는 긴 답변이 나옵니다. 제품이 일관된 스타일을 원한다면 프롬프트를 조정하세요 — Anthropic의 스니펫이 잘 작동합니다.
고정된 목소리가 필요할 때 장황함 길들이기
Provide concise, focused responses. Skip non-essential context, and keep examples minimal.
긍정 예시("이렇게 간결하게 표현해줘")가 부정 예시("과설명하지 마")보다 더 잘 작동합니다.
2. 툴 사용 트리거링이 더 에이전트적입니다 — 조절할 수 있습니다
Sonnet 5는 4.6보다 도구에 더 쉽게 손을 뻗습니다. 두 가지 레버입니다.
- Effort.
high또는xhigh는 에이전트 검색과 코딩 워크로드에서 상당히 더 많은 도구 사용을 보입니다.low와medium은 작업 범위를 좁게 잡습니다. - 사고 끄기.
thinking: {type: "disabled"}이면 모델이 도구에 손을 뻗을 가능성이 더 낮아집니다. 사고를 끄지만 여전히 도구 호출에 의존한다면, 시스템 프롬프트에 명시적 유도를 추가하세요.
3. 코드 리뷰 하네스에서 재현율이 떨어질 수 있습니다 — 모델이 더 문자 그대로 동작하는 겁니다
리뷰 프롬프트가 "고심각도 이슈만 보고해" 또는 "사소한 지적은 하지 마"라고 말하면, Sonnet 5는 이를 충실히 따를 수 있습니다 — 똑같이 철저하게 조사하고, 같은 버그를 찾은 다음, 설정한 기준 아래로 판단되는 발견은 보고하지 않습니다. 정밀도는 대개 올라가고, 재현율은 떨어져 보일 수 있습니다. Anthropic이 권장하는 해결책은 발견 단계와 순위 매김 단계를 분리하는 것입니다.
Sonnet 5용 재현율 지향 코드 리뷰 프롬프트
Report every issue you find, including ones you are uncertain about or consider low-severity. Do not filter for importance or confidence at this stage - a separate verification step will do that. Your goal here is coverage: it is better to surface a finding that later gets filtered out than to silently drop a real bug. For each finding, include your confidence level and an estimated severity so a downstream filter can rank them.
프롬프트가 도움이 되려고 실제로 두 번째 단계를 만들 필요는 없습니다 — 신뢰도 필터링을 발견 단계 밖으로 옮기는 것이 동작을 바꿉니다.
4. 디자인 기본값이 "하우스 스타일"로 정착합니다 — 명시적으로 오버라이드하세요
열린 프론트엔드와 디자인 브리프에서 Sonnet 5는 일관된 기본 시각 스타일 쪽으로 기웁니다. 어떤 제품에는 잘 읽히지만, 대시보드, 개발자 도구, 핀테크, 헬스케어, 엔터프라이즈 앱에는 부적합합니다. 일반적인 반박("덜 뻔하게 만들어줘")은 다양성을 만들기보다 모델을 다른 고정 스타일로 이동시키는 경향이 있습니다. 잘 작동하는 두 패턴입니다.
- 구체적인 대안을 지정 — hex 코드, 서체 이름, 레이아웃 규칙. Sonnet 5는 명시적 사양을 정확하게 따릅니다.
- 빌드 전에 N개의 옵션을 제안하도록 요청. 비기본
temperature가 400을 반환하므로, 이것이 이제 실행 간 의미 있게 다른 디자인 방향을 생성하는 권장 방법입니다.
temperature 없이 디자인 다양성 강제하기
Before building, propose 4 distinct visual directions tailored to this brief (each as: bg hex / accent hex / typeface, plus a one-line rationale). Ask the user to pick one, then implement only that direction.
사이버보안 세이프가드: HTTP 200으로 반환되는 거부
Sonnet 5는 실시간 사이버보안 세이프가드를 갖춘 최초의 Sonnet 티어 모델입니다. 요청이 거부되면, 오류가 아니라 stop_reason: "refusal"이 담긴 성공적인 HTTP 200으로 반환됩니다. 거부 처리 분기를 만들지 않았다면, 앱은 빈 응답을 성공적인 빈 답변으로 취급하고 조용히 사용자에게 배송할 것입니다.
수정은 응답에 대한 한 줄 분기입니다.
거부를 깔끔하게 처리하기
resp = client.messages.create(model="claude-sonnet-5", messages=[...]) if resp.stop_reason == "refusal": # Show a graceful message. Optionally retry on a fallback model # (Opus 4.8 is a common choice). You are NOT billed for a refusal # returned before any output was generated. return handle_refusal(resp) # Otherwise process resp.content as normal
이것은 Fable 5의 인밴드 거부와 같은 모양입니다 — 그것을 이미 처리하고 있다면 커버됩니다. 처음 접하는 경우, fallbacks 파라미터를 포함한 더 완전한 패턴은 Fable 5 필드 가이드를 참조하세요.
Priority Tier가 제공되지 않습니다 — 우회 계획을 세우세요
현재 다른 모든 Anthropic 모델은 예약 용량과 예측 가능한 지연 시간을 위한 Priority Tier를 지원합니다. Sonnet 5는 그렇지 않습니다. 오늘 Priority Tier 약정에 의존하는 엔터프라이즈 워크로드가 있다면, 옵션은 다음과 같습니다.
- 워크로드를 Sonnet 4.6에 유지 (여전히 지원, 여전히 Priority Tier).
- 워크로드를 Opus 4.8로 마이그레이션 — Priority Tier에 있으며 어려운 작업에서 Sonnet 5가 어차피 비교 대상으로 삼는 모델입니다.
- Sonnet 5의 표준 티어로 이동하고 비예약 용량을 받아들이기.
베타 헤더 우회는 없습니다. Priority Tier가 여러분에게 필수적이라면, 이것이 먼저 계획해야 할 마이그레이션 블로커입니다.
Sonnet 5 vs Sonnet 4.6 vs Opus 4.8 — 선택
| 선택 | 언제 고를까 |
|---|---|
| Sonnet 5 | 새로운 무엇이든 기본. 코딩, 에이전트 작업, 1M 컨텍스트, 가격 민감도 모두 여기를 가리킵니다. |
| Sonnet 4.6 | Priority Tier가 필요하거나, 아직 재작성할 수 없는 비기본 샘플링 파라미터에 의존하는 프롬프트가 있거나, 평가 중이며 안정적인 베이스라인을 원할 때. |
| Opus 4.8 | Sonnet 5가 도달하지 못하는 추론 깊이나 장기 안정성이 필요하거나, 상위에서 Priority Tier가 필요할 때. effort 오버라이드와 페어링하세요 — Opus 4.8의 xhigh가 흔한 최적점입니다. |
| Fable 5 / Mythos 5 | Opus 4.8이 충분하지 않음을 검증했고 다일간 자율 실행을 위해 Sonnet 5 출력 가격의 5배를 지불할 의향이 있을 때. Fable 5 필드 가이드를 참조하세요. |
마이그레이션 체크리스트
- 길이가 중요한 모든 프롬프트에 대해 model="claude-sonnet-5"로 토큰 카운팅 API를 사용하세요. 고정된 1M 토큰 예산과 비교하는 곳마다 약 30% 더 많은 사용량을 가정하세요. max_tokens가 빡빡한 곳마다 올리세요.
- 코드베이스에서 temperature, top_p, top_k를 grep 하세요. 비기본값은 이제 Sonnet 5에서 400을 반환합니다. 삭제하거나 기본값으로 설정하세요.
- thinking={"type": "enabled"을 grep 하고 삭제하세요. effort 선택자를 추가하세요(high에서 시작). 사고를 전혀 원하지 않으면 thinking: {type: "disabled"}를 명시적으로 전달하세요.
- 사이버보안 세이프가드는 Sonnet 티어에서 새롭습니다. 거부는 오류가 아니라 HTTP 200입니다 — 분기하지 않으면 조용히 빈 답변을 배송합니다.
- 어떤 워크로드든 Priority Tier에 의존한다면, Sonnet 4.6에 두거나 Opus 4.8로 마이그레이션하세요 — Sonnet 5는 Priority Tier를 제공하지 않습니다.
- 도입가는 2026년 8월 31일까지입니다. 9월 1일부터 동일 텍스트는 Sonnet 4.6의 동일 텍스트보다 약 30% 더 비쌉니다. 토큰 기반으로 앱 가격을 책정한다면 캘린더에 올려두세요.
빠른 확인
Check yourself
0/5출처 및 추가 자료
- What's new in Claude Sonnet 5 — 공식 문서
- Prompting Claude Sonnet 5 — 공식 문서
- 마이그레이션 가이드 — Sonnet 4.6 → Sonnet 5
- Claude Platform 릴리스 노트 — 2026년 6월 30일 항목 참조
- Effort 파라미터 레퍼런스
- 적응형 사고 레퍼런스
- 토큰 카운팅 API — 새 토크나이저로 측정하려면
model="claude-sonnet-5"를 사용하세요 - Claude Code 체인지로그 — v2.1.197이 Sonnet 5를 기본으로 만들었습니다
- AILmanac 관련: Claude Opus 5: 필드 가이드, Claude Fable 5 & Mythos 5: 플래그십 필드 가이드, 모델 선택하기, 사고와 Effort, 최신 모델 및 가격