Claude Extended Thinking(확장 사고) 완전 가이드: 언제, 어떻게 쓸까?
Claude 확장 사고(Extended Thinking)란 모델이 최종 답변을 내놓기 전에 내부 추론 과정을 별도 thinking 블록에 기록하는 기능이다. 일반 모드에서는 생각 과정이 숨겨지지만, 확장 사고를 활성화하면 Claude가 단계별로 문제를 분해하고 검증하는 과정이 API 응답에 그대로 노출된다. 수학 증명, 복잡한 코드 디버깅, 다단계 전략 분석처럼 "한 번에 답을 내리기 어려운" 작업에서 정확도가 크게 올라간다. 반면 간단한 Q&A나 텍스트 요약에는 비용만 늘어나므로 사용 시점을 정확히 파악하는 것이 핵심이다.
확장 사고란?
Claude는 기본적으로 입력을 받아 즉시 출력을 생성한다. 이 과정에서 내부 추론이 발생하지만 사용자에게는 최종 텍스트만 전달된다.
확장 사고 모드는 이 내부 추론을 명시적으로 분리한다. API 응답에 두 가지 블록이 함께 반환된다.
thinking블록: Claude가 문제를 풀면서 작성하는 중간 추론 노트text블록: 사용자에게 전달할 최종 답변
이 분리 덕분에 Claude는 "답을 빨리 내야 한다"는 압박 없이 충분히 생각할 수 있다. 사고 토큰(thinking tokens)은 budget_tokens 파라미터로 최대치를 제한하며, 실제 사용량은 문제 난이도에 따라 달라진다.
영어 가이드는 Claude Extended Thinking 완전 가이드(English)를 참고한다.
언제 켜야 할까?
확장 사고가 가장 큰 효과를 발휘하는 4가지 상황이 있다.
1. 수학 및 정량 분석
미적분, 확률 계산, 통계 검정처럼 중간 계산 오류가 최종 답에 영향을 주는 문제에서 일반 모드 대비 오류율이 현저히 낮아진다. AIME(미국 수학 올림피아드 예선) 기준으로 확장 사고 활성화 시 정답률이 약 2배 향상된다는 Anthropic 내부 벤치마크가 있다.
2. 복잡한 코드 디버깅
여러 파일에 걸친 버그, 경쟁 조건(race condition), 메모리 누수처럼 인과 관계를 역추적해야 하는 디버깅 작업. 사고 블록에서 Claude가 용의자 코드를 단계별로 좁혀가는 과정을 확인할 수 있어 디버깅 효율도 올라간다.
3. 다단계 논리 추론
법적 계약서 검토, 비즈니스 케이스 분석, 의사결정 트리처럼 전제 → 중간 결론 → 최종 판단의 연쇄가 필요한 작업. 일반 모드에서는 중간 단계를 건너뛰는 오류가 잦다.
4. 전략 및 경쟁 분석
시장 진입 전략, 경쟁사 포지셔닝, 제품 로드맵 우선순위처럼 여러 변수를 동시에 고려해야 하는 고차원 판단. 사고 블록이 "왜 이 결론에 도달했는가"를 투명하게 보여주므로 의사결정 근거 문서화에도 유리하다.
반대로 일반 모드로 충분한 경우: 단순 번역, 요약, 감성 분류, 짧은 글쓰기 보조. 이런 작업에 확장 사고를 켜면 비용만 늘어난다.
API 활성화 방법
thinking 파라미터를 messages.create 호출에 추가하는 것만으로 활성화된다.
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-5", # 확장 사고는 Opus에서 가장 효과적
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000 # 최대 사고 토큰 수
},
messages=[{
"role": "user",
"content": "복잡한 수학 문제나 전략 분석 질문"
}]
)
# 사고 블록과 텍스트 블록 분리 처리
for block in response.content:
if block.type == "thinking":
print("사고 과정:", block.thinking)
elif block.type == "text":
print("답변:", block.text)
주의 사항:
max_tokens는budget_tokens보다 반드시 커야 한다.budget_tokens=10000이면max_tokens는 최소 11000 이상으로 설정한다.- 사고 블록은 API 응답에만 노출된다. 다음 턴의
messages배열에 포함하면 오류가 발생한다. - 현재(2026년 5월) Streaming과 확장 사고를 동시에 사용하면 사고 블록이 스트리밍되지 않고 완료 후 한 번에 반환된다. UX 설계 시 로딩 상태를 명시적으로 표시해야 한다.
budget_tokens 설정 가이드
budget_tokens는 Claude가 사고에 사용할 수 있는 토큰의 상한선이다. 실제 사용량은 문제 난이도에 따라 달라지며, 설정값보다 적게 사용되는 경우가 많다.
| budget_tokens | 사용 비용 기준 (Opus) | 권장 사용 사례 |
|---|---|---|
| 1,000 | ~$0.075 (최대) | 간단한 수식 검증, 짧은 논리 체인, 2~3단계 추론 |
| 5,000 | ~$0.375 (최대) | 코드 디버깅, 계약서 조항 분석, 중간 난이도 수학 |
| 16,000 | ~$1.20 (최대) | AIME급 수학, 복잡한 아키텍처 설계, 심층 전략 분석 |
실전 팁: 먼저 budget_tokens=1000으로 테스트하고, 사고 블록이 너무 짧거나 결론이 부실하면 점진적으로 늘린다. 불필요하게 높게 설정해도 Claude가 꼭 그만큼 소비하지는 않지만, 과금은 실제 사용 토큰 기준이므로 상한만 의식할 필요는 없다.
비용 계산
사고 토큰은 출력 토큰과 동일한 단가로 과금된다. 입력 토큰 가격이 아니라는 점에 주의한다.
2026년 5월 기준 Opus 출력 토큰 단가: $75 / 1M 토큰
계산 예시
요청 1건 기준:
- 입력: 500 토큰 × $15/1M = $0.0000075
- 사고 토큰: 8,000 토큰 × $75/1M = $0.0006
- 출력: 800 토큰 × $75/1M = $0.00006
합계: 약 $0.00067 / 요청
월 1,000건 처리 시: 약 $0.67
월 100,000건 처리 시: 약 $67
Sonnet 모델 사용 시 출력 단가($15/1M)를 적용하면 비용이 약 5분의 1로 줄어든다. 단, Sonnet에서의 확장 사고 성능은 Opus 대비 낮다. 프로덕션 환경에서 비용 최적화 전략을 더 알고 싶다면 Claude API 프로덕션 아키텍처 가이드를 참고한다.
실전 예시: 수학 풀이 비교
같은 문제를 일반 모드와 확장 사고 모드로 풀었을 때 결과 차이를 보여준다.
문제: 1부터 100까지의 정수 중 3의 배수이거나 7의 배수인 수의 합을 구하라.
일반 모드 응답 (요약)
3의 배수의 합: 1683, 7의 배수의 합: 735. 단순 합산: 2418.
오류 포함: 21, 42, 63, 84 등 공배수를 중복 계산했다.
확장 사고 모드 응답 (사고 블록 요약)
[thinking 블록]
포함-배제 원리를 적용해야 한다.
A = 3의 배수 집합, B = 7의 배수 집합
|A∪B| 합 = |A| + |B| - |A∩B|
3의 배수: 3, 6, ..., 99 → 33개 → 합 = 33 × (3+99)/2 = 1683
7의 배수: 7, 14, ..., 98 → 14개 → 합 = 14 × (7+98)/2 = 735
21의 배수(LCM): 21, 42, 63, 84 → 4개 → 합 = 210
최종: 1683 + 735 - 210 = 2208
[/thinking 블록]
최종 텍스트 답변: 포함-배제 원리를 적용한 정확한 답은 2208이다.
확장 사고 덕분에 중복 계산 오류를 스스로 잡아낸 것을 볼 수 있다. Claude API 입문 내용을 복습하고 싶다면 Claude API 한국어 입문 가이드를 참고한다.
주의사항
스트리밍 동작 차이
확장 사고와 스트리밍을 함께 사용하면 사고 블록은 스트리밍되지 않는다. Claude가 내부 추론을 모두 완료한 후에야 thinking 블록이 전달된다. 응답 대기 시간이 일반 모드보다 길어질 수 있으므로, 프론트엔드에서 "분석 중..." 같은 명시적 로딩 UI를 반드시 구현해야 한다.
지연 시간 증가
budget_tokens=10000으로 설정하면 응답 완료까지 10~30초가 소요될 수 있다. 실시간 챗봇처럼 응답 속도가 중요한 경우에는 확장 사고를 피하거나 budget_tokens를 1000 이하로 낮춰야 한다.
모델 지원 범위
2026년 5월 기준으로 확장 사고는 claude-opus-4-5 이상 모델에서 지원된다. claude-haiku-4-5에는 미지원이며, claude-sonnet-4-5는 부분 지원(성능 제한 있음)이다. 최신 모델 지원 현황은 Anthropic 공식 문서에서 확인한다.
멀티턴 대화 시 주의
이전 턴의 thinking 블록을 다음 요청의 messages 배열에 그대로 포함하면 API 오류가 발생한다. 멀티턴 구현 시 text 블록만 대화 이력에 추가해야 한다.
Frequently Asked Questions
Q: 확장 사고와 Chain-of-Thought 프롬프팅의 차이는?
Chain-of-Thought(CoT)는 "단계별로 생각해라"라고 프롬프트에 명시해서 출력 텍스트 안에 추론 과정을 포함시키는 방식이다. 확장 사고는 API 레벨에서 분리된 thinking 블록을 사용한다. CoT는 추론 과정이 최종 답변 토큰에 포함되어 출력 단가로 과금되며 사용자에게 노출된다. 확장 사고는 별도 블록으로 분리되어 필요에 따라 사용자에게 보이지 않게 처리할 수 있다.
Q: budget_tokens를 무조건 높게 설정하면 더 좋은가?
그렇지 않다. Claude는 문제가 간단하면 budget_tokens를 다 소비하지 않는다. 하지만 복잡한 문제에 너무 낮게 설정하면 추론이 중간에 잘려 오답이 나올 수 있다. 작업 유형별로 최적값을 테스트해서 기준값을 정하는 것이 좋다.
Q: 확장 사고를 Haiku나 Sonnet에서 쓸 수 없나?
현재(2026년 5월) Haiku에서는 지원되지 않는다. Sonnet에서는 기술적으로 활성화할 수 있지만 사고의 깊이가 Opus 대비 제한적이다. 비용을 줄이고 싶다면 Sonnet으로 먼저 테스트하고 성능이 부족할 때 Opus로 전환하는 점진적 접근이 합리적이다.
Q: 사고 블록 내용을 사용자에게 보여줘야 하나?
필수가 아니다. 대부분의 프로덕션 앱에서는 text 블록만 사용자에게 노출하고, thinking 블록은 내부 디버깅이나 설명 가능성(explainability) 로그 용도로만 저장한다. 단, 교육 목적 앱이나 분석 도구에서는 사고 과정을 공개하는 것이 신뢰도를 높이는 데 도움이 된다.
Q: 확장 사고 사용 시 프롬프트 캐싱을 함께 쓸 수 있나?
가능하다. 시스템 프롬프트에 cache_control: {"type": "ephemeral"}을 적용하면 사고 토큰은 그대로 소비되지만 입력 토큰 비용은 캐시 할인을 받는다. 확장 사고와 캐싱을 함께 적용하면 반복 요청이 많은 워크플로에서 전체 비용을 상당히 줄일 수 있다.
Agent SDK Cookbook으로 더 빠르게 구현하기
확장 사고를 멀티에이전트 워크플로에 통합하는 실전 예제가 필요하다면 Claude Agent SDK Cookbook을 확인하라. 수학 풀이 에이전트, 코드 리뷰 에이전트, 전략 분석 에이전트 예제에 확장 사고 설정이 모두 포함되어 있다.