Claude API 첫 호출을 해 봤다면 응답에 usage라는 값이 함께 온 것을 봤을 겁니다. input_tokens와 output_tokens. 이 두 숫자가 API 요금의 전부입니다. 이번 글에서는 토큰 개념과 실제 비용을 계산하는 방법을 정리합니다.
📌 모델 단가는 바뀔 수 있습니다. 아래 가격은 작성 시점 Anthropic 공식 요금 기준이며, 실제 사용 전에는 공식 요금 페이지를 확인하세요.
토큰이란?
토큰은 모델이 텍스트를 쪼개 처리하는 최소 단위입니다. 사람은 글자나 단어로 읽지만, 모델은 토큰으로 읽고 씁니다.
- 영어: 짧은 단어는 1토큰, 긴 단어는 여러 토큰으로 나뉩니다.
- 한국어: 같은 의미를 표현할 때 영어보다 토큰이 더 많이 드는 경향이 있습니다.
- 숫자, 기호, 공백, 코드도 모두 토큰으로 계산됩니다.
정확한 토큰 수는 추측하지 말고 응답의 usage 값이나 토큰 카운트 API로 확인하는 것이 원칙입니다.
요금 구조: 입력과 출력
| 구분 | 무엇이 포함되나 | 특징 |
|---|---|---|
| 입력 토큰 | 시스템 프롬프트, 대화 기록, 첨부 문서, 질문 | 단가가 낮음 |
| 출력 토큰 | 클로드가 생성한 답변 | 단가가 높음 (입력의 약 5배) |
요금은 보통 100만 토큰(1M)당 달러로 표시됩니다.
모델별 단가 (작성 시점, 1M 토큰당)
| 모델 | 입력 | 출력 | 이런 작업에 |
|---|---|---|---|
| Haiku 4.5 | $1 | $5 | 분류, 짧은 요약, 대량 처리 |
| Sonnet 5 | $2 | $10 | 일반 업무, 챗봇, 코딩 |
| Opus 5 | $5 | $25 | 복잡한 추론, 에이전트 |
| Fable 5.1 | $10 | $50 | 가장 어려운 장기 작업 |
실제 비용 계산 예시
예시 1. 고객 문의 분류 (Haiku 4.5)
- 문의 1건: 입력 약 400토큰(지시 + 문의), 출력 약 10토큰(카테고리)
- 하루 2,000건 처리
입력: 400 × 2,000 = 800,000 토큰 → 0.8M × $1 = $0.80
출력: 10 × 2,000 = 20,000 토큰 → 0.02M × $5 = $0.10
하루 약 $0.90, 한 달(30일) 약 $27
예시 2. 보고서 요약 (Sonnet 5)
- 보고서 1건: 입력 약 30,000토큰(긴 문서), 출력 약 1,500토큰(요약)
- 하루 50건
입력: 30,000 × 50 = 1,500,000 → 1.5M × $2 = $3.00
출력: 1,500 × 50 = 75,000 → 0.075M × $10 = $0.75
하루 약 $3.75, 한 달 약 $112
예시 2에서 보듯, 긴 문서를 다루면 입력 비용이 대부분을 차지합니다. 같은 문서를 여러 번 질문한다면 프롬프트 캐싱으로 크게 줄일 수 있습니다.
비용을 줄이는 기본 원칙
- 작업에 맞는 모델 선택: 분류에 Opus를 쓰면 Haiku보다 몇 배 비쌉니다. 먼저 가벼운 모델로 품질을 테스트하세요.
max_tokens로 출력 관리: 짧은 답이면 충분한 작업은 형식을 정해 출력을 줄입니다. 출력 단가가 높으니 효과가 큽니다.- 반복되는 앞부분은 캐싱: 같은 시스템 프롬프트나 문서를 반복해 보낸다면 프롬프트 캐싱을 적용합니다.
- 급하지 않으면 배치 처리: 실시간 응답이 필요 없는 대량 작업은 배치 API로 비용을 낮출 수 있습니다.
- 불필요한 대화 기록 정리: 챗봇에서 오래된 대화를 계속 보내면 입력 토큰이 쌓입니다.
내 작업 비용 측정하는 법
추정보다 측정이 정확합니다. 실제 데이터 10~20건으로 테스트하고 usage를 기록하세요.
total_in, total_out = 0, 0
for doc in sample_docs:
resp = client.messages.create(
model="claude-sonnet-5",
max_tokens=1024,
messages=[{"role": "user", "content": f"다음 문서를 5줄로 요약해 줘.\n\n{doc}"}],
)
total_in += resp.usage.input_tokens
total_out += resp.usage.output_tokens
n = len(sample_docs)
print(f"건당 평균 입력 {total_in/n:.0f}, 출력 {total_out/n:.0f} 토큰")
평균값에 하루 건수와 단가를 곱하면 꽤 정확한 예산이 나옵니다.
💬 청구서를 보고 알게 된 것
API 비용을 처음 계산할 때 저는 출력 토큰만 신경 썼는데, 실제 청구서를 보니 입력 토큰이 훨씬 컸습니다. 긴 시스템 프롬프트와 대화 기록을 매 요청마다 보내고 있었기 때문입니다. 비용이 생각보다 많이 나온다면 출력보다 "매번 무엇을 보내고 있는가"부터 점검해 보세요. 그리고 콘솔의 월 사용 한도는 꼭 설정해 두시길 권합니다.
📌 3줄 요약
- API 요금은 입력·출력 토큰 수 × 모델별 단가로 계산되며, 출력이 더 비쌉니다.
- 건당 평균 토큰을 실제 데이터로 측정한 뒤 건수를 곱해 예산을 잡으세요.
- 모델 선택, 출력 길이 관리, 캐싱, 배치 처리가 비용 절감의 기본입니다.

