
많은 개발자분들이 Claude API를 사용하면서 이런 고민을 하곤 해요. "분명 prompt caching을 켰는데, 왜 청구서에는 캐시 할인 혜택이 안 보이지?"
답은 의외로 간단합니다. 바로 OpenAI 호환 모드로 호출하고 있기 때문이에요. Claude의 캐시 과금 체계는 Anthropic 네이티브 Messages API 형식만 지원하거든요.
이건 버그가 아니라 Anthropic 공식 문서에도 명시된 설계상의 제한 사항입니다. 이번 포스팅에서는 기술 원리, 호출 방식, 가격 비교라는 3가지 관점에서 Claude prompt caching의 올바른 사용법을 완벽하게 정리해 드릴게요. 더 이상 아까운 비용을 낭비하지 마세요!
Claude Prompt Caching 캐싱 메커니즘의 핵심 원리
호출 형식의 차이를 깊이 알아보기 전에, 먼저 Claude prompt caching이 어떻게 작동하는지 이해해야 합니다.
Claude 캐시는 어떻게 작동하나요?
prompt caching이 활성화된 요청을 보내면 시스템은 다음과 같은 프로세스를 거칩니다.
- 캐시 확인: 시스템이 요청된 프롬프트 접두사(prefix)가 최근 쿼리에서 이미 캐싱되었는지 확인합니다.
- 캐시 적중(Hit): 일치하는 항목을 찾으면 캐싱된 버전을 즉시 사용하여 처리 시간과 비용을 획기적으로 줄입니다.
- 캐시 쓰기(Write): 일치하는 항목이 없으면 전체 프롬프트를 처리하고, 응답이 시작된 후 해당 접두사를 캐싱합니다.
| Claude Prompt Caching 핵심 파라미터 | 설명 |
|---|---|
| 캐시 유형 | ephemeral (휘발성 캐시, 현재 유일하게 지원되는 유형) |
| 기본 TTL | 5분 (적중될 때마다 자동 갱신) |
| 선택적 TTL | 1시간 (추가 비용 발생) |
| 최대 캐시 중단점 | 4개의 cache_control 마커 |
| 캐시 순서 | tools → system → messages |
| 캐시 매칭 방식 | 100% 완전히 일치하는 프롬프트 접두사 |
Claude Prompt Caching이 지원하는 콘텐츠
Claude prompt caching은 요청 내의 대부분의 콘텐츠 블록을 캐싱할 수 있습니다.
- Tools:
tools배열 내의 도구 정의 - System messages:
system배열 내의 콘텐츠 블록 - Text messages:
messages.content배열 내의 텍스트 콘텐츠 블록 - Images & Documents: 사용자 메시지 내의 이미지 및 문서
- Tool use & tool results: 도구 호출 및 결과 콘텐츠 블록
🎯 기술 팁: 동일한 시스템 프롬프트를 빈번하게 호출해야 하는 상황이라면, prompt caching은 가장 효과적인 비용 최적화 수단입니다. APIYI(apiyi.com) 플랫폼을 통해 Anthropic 네이티브 형식으로 Claude API를 호출하여 캐시 할인 혜택을 100% 누려보세요.
Anthropic 네이티브 형식 vs OpenAI 호환 모드: Claude 캐시 지원 차이
이 글에서 가장 핵심적인 부분입니다. 두 호출 형식에 따른 Claude 캐시 기능의 근본적인 차이점을 살펴보겠습니다.
Anthropic 공식 입장
Anthropic 공식 OpenAI SDK 호환성 문서에 따르면 다음과 같이 명시되어 있습니다.
"프롬프트 캐싱은 지원되지 않지만, Anthropic SDK에서는 지원됩니다."
즉, OpenAI 호환 모드(/v1/chat/completions 엔드포인트)를 통해 Claude를 호출하면 프롬프트 캐싱 기능을 전혀 사용할 수 없습니다.

Claude API 두 가지 호출 형식 기능 비교
| 기능 및 특징 | Anthropic 네이티브 형식 | OpenAI 호환 모드 |
|---|---|---|
| 프롬프트 캐싱(Prompt Caching) | ✅ 완전 지원 | ❌ 지원 안 함 |
| PDF 문서 처리 | ✅ 지원 | ❌ 지원 안 함 |
| 인용(Citations) | ✅ 지원 | ❌ 지원 안 함 |
| 확장 사고(Extended Thinking) 전체 출력 | ✅ 지원 | ⚠️ 부분 지원 (사고 과정 확인 불가) |
| 스트리밍(Streaming) 출력 | ✅ 지원 | ✅ 지원 |
| 도구 호출(Tool Use) | ✅ 지원 | ✅ 지원 |
| 비전(Vision) 이미지 이해 | ✅ 지원 | ✅ 지원 |
| 구조화된 출력(Structured Outputs) | ✅ 지원 (strict 모드) | ❌ strict 매개변수 무시됨 |
왜 OpenAI 호환 모드에서는 Claude 캐시를 지원하지 않나요?
OpenAI 호환 모드는 프로덕션 환경보다는 모델 성능 테스트 및 비교를 위해 설계되었기 때문입니다.
- 프로토콜 차이:
cache_control매개변수는 Anthropic Messages API의 고유 필드이며, OpenAI chat completions 형식에는 대응하는 필드가 없습니다. - 아키텍처 제한: 호환 계층은 OpenAI 형식을 Anthropic 형식으로 변환해야 하는데, 이 과정에서 캐시 제어 정보가 유실됩니다.
- 우선순위 고려: Anthropic은 호환 계층보다 네이티브 Claude API의 안정성과 기능 완성도를 우선시한다고 밝혔습니다.
💡 중요 팁: 비즈니스 모델이 비용 제어를 위해 프롬프트 캐싱에 의존한다면, OpenAI 호환 모드가 아닌 Anthropic 네이티브 Messages API 형식을 반드시 사용해야 합니다.
Claude 프롬프트 캐싱 요금 상세 안내: 최대 90% 비용 절감
Claude 프롬프트 캐싱 요금 체계의 가장 큰 매력은 캐시 히트 시 읽기 비용이 기본 입력 비용의 **10%**에 불과하다는 점입니다.
Claude 모델별 캐시 가격 비교
| 모델 | 기본 입력 | 5분 캐시 쓰기 | 1시간 캐시 쓰기 | 캐시 읽기 | 출력 |
|---|---|---|---|---|---|
| Claude Opus 4.6 | $5/MTok | $6.25/MTok | $10/MTok | $0.50/MTok | $25/MTok |
| Claude Sonnet 4.6 | $3/MTok | $3.75/MTok | $6/MTok | $0.30/MTok | $15/MTok |
| Claude Sonnet 4.5 | $3/MTok | $3.75/MTok | $6/MTok | $0.30/MTok | $15/MTok |
| Claude Haiku 4.5 | $1/MTok | $1.25/MTok | $2/MTok | $0.10/MTok | $5/MTok |
MTok = 100만 토큰. 출처: Anthropic 공식 요금 페이지 (2026년 2월 기준)
Claude 캐시 요금 계산 규칙
캐시 요금은 3가지 간단한 배수 규칙을 따릅니다.
- 5분 캐시 쓰기: 기본 입력 비용 × 1.25
- 1시간 캐시 쓰기: 기본 입력 비용 × 2.0
- 캐시 읽기 (히트): 기본 입력 비용 × 0.1
Claude Sonnet 4.6을 예로 들어, 10만 토큰의 시스템 프롬프트를 사용하는 경우를 가정해 보겠습니다.
| 시나리오 | 요청당 입력 비용 | 10,000회 요청 총 비용 |
|---|---|---|
| 캐시 미사용 | $0.30 | $3,000 |
| 첫 번째 요청 (캐시 쓰기) | $0.375 | 일회성 비용 |
| 후속 요청 (캐시 히트) | $0.03 | $300 |
| 절감 비율 | 약 90% |
💰 비용 최적화: 동일한 시스템 프롬프트를 반복 사용하는 시나리오라면, APIYI(apiyi.com) 플랫폼을 통해 Anthropic 네이티브 형식으로 Claude API를 호출해 보세요. 프롬프트 캐싱을 활용하여 최대 90%의 비용을 절감할 수 있습니다.
Claude Prompt Caching 실전 코드: Anthropic 원본 형식 호출
아래의 구체적인 코드 예시를 통해 Claude 프롬프트 캐싱(prompt caching)을 올바르게 활성화하는 방법을 알아보겠습니다.
기초 호출 예시: Anthropic 원본 형식 + Extended Thinking
curl https://api.apiyi.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 16000,
"stream": false,
"thinking": {
"type": "enabled",
"budget_tokens": 10000
},
"messages": [
{
"role": "user",
"content": "What is 27 * 453?"
}
]
}'
위 코드는 Extended Thinking 기능을 사용한 기본적인 Anthropic 원본 형식 호출입니다. 이제 여기에 프롬프트 캐싱을 어떻게 활성화하는지 살펴보겠습니다.
자동 캐시 모드: 가장 간단한 Claude 캐시 활성화 방법
자동 캐시는 Claude 프롬프트 캐싱을 활성화하는 가장 쉬운 방법입니다. 요청 본문의 최상위 레벨에 cache_control 필드만 추가하면 됩니다.
curl https://api.apiyi.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"cache_control": {"type": "ephemeral"},
"system": "당신은 전문적인 기술 문서 도우미입니다. 사용자가 AI 모델의 사용 방법과 최적의 사례를 이해하도록 돕습니다. 답변은 정확하고 간결하며 실용적이어야 합니다.",
"messages": [
{"role": "user", "content": "Claude Sonnet 4.6의 주요 특징은 무엇인가요?"},
{"role": "assistant", "content": "Claude Sonnet 4.6은 Anthropic이 출시한 고성능 모델로..."},
{"role": "user", "content": "컨텍스트 윈도우 크기는 얼마나 되나요?"}
]
}'
자동 캐시 모드에서는 시스템이 자동으로 마지막 캐시 가능한 콘텐츠 블록에 캐시 중단점(breakpoint)을 설정합니다. 다회차 대화에서는 대화가 길어짐에 따라 캐시 지점이 자동으로 앞으로 이동합니다.
명시적 캐시 모드: Claude 캐시 내용 정밀 제어
캐시 동작을 세밀하게 제어해야 하는 시나리오에서는 특정 콘텐츠 블록에 cache_control을 직접 배치할 수 있습니다.
📄 클릭하여 전체 명시적 캐시 코드 예시 보기
curl https://api.apiyi.com/v1/messages \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk-YOUR_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": [
{
"type": "text",
"text": "당신은 법률 문서 분석 도우미로, 계약 조항과 법적 리스크 분석에 능숙합니다."
},
{
"type": "text",
"text": "[여기에 50페이지 분량의 법률 계약서 전문 삽입... 약 10만 토큰 분량]",
"cache_control": {"type": "ephemeral"}
}
],
"messages": [
{
"role": "user",
"content": "이 계약서의 주요 조항과 잠재적 리스크를 분석해 주세요."
}
]
}'
이 예시에서는 방대한 양의 법률 문서가 캐시 콘텐츠로 표시되었습니다. 첫 번째 요청 시 캐시에 기록되며, 이후 5분 이내에 동일한 문서에 대해 다른 질문을 던지면 캐시가 적중되어 읽기 비용의 10%만 지불하면 됩니다.
1시간 장기 캐시: Claude 캐시 시간 연장
기본 캐시 유지 시간인 5분이 부족하다면 1시간 캐시를 선택할 수 있습니다.
"cache_control": {"type": "ephemeral", "ttl": "1h"}
1시간 캐시는 다음과 같은 경우에 적합합니다:
- 에이전트 워크플로우 내의 장시간 작업 (5분 초과)
- 사용자 대화 간격이 5분을 넘을 수 있는 시나리오
- 더 높은 속도 제한(Rate Limit) 활용이 필요한 경우 (캐시 적중 시 속도 제한이 차감되지 않음)
🚀 빠른 시작: APIYI(apiyi.com) 플랫폼을 사용하면 Claude 프롬프트 캐싱 기능을 빠르게 테스트할 수 있습니다. 이 플랫폼은
cache_control파라미터를 포함한 Anthropic 원본 Messages API 형식을 완벽하게 지원하며, 5분이면 연동 검증을 마칠 수 있습니다.
Claude Prompt Caching 성능 모니터링 및 디버깅
캐시를 활성화한 후에는 API 응답의 usage 필드를 통해 캐시 효과를 모니터링해야 합니다.
Claude 캐시 응답의 핵심 필드
{
"usage": {
"input_tokens": 50,
"cache_creation_input_tokens": 100000,
"cache_read_input_tokens": 0,
"output_tokens": 500
}
}
| 필드 | 의미 |
|---|---|
input_tokens |
캐시 중단점 이후의 입력 토큰 수 |
cache_creation_input_tokens |
이번에 캐시에 기록된 토큰 수 |
cache_read_input_tokens |
캐시에서 읽어온 토큰 수 |
output_tokens |
출력 토큰 수 |
총 입력 토큰 계산 공식:
total_input = cache_read_input_tokens + cache_creation_input_tokens + input_tokens
Claude 캐시 미적중의 일반적인 원인 해결
캐시가 계속해서 적중하지 않는다면 다음 사항을 확인해 보세요:
- 호출 형식 오류: Anthropic 원본 형식이 아닌 OpenAI 호환 모드를 사용함
- 내용 불일치: 캐시 매칭을 위해서는 프롬프트 접두사가 100% 일치해야 함
- 토큰 부족: 모델의 최소 캐시 토큰 수 요구사항을 충족하지 못함
- 시간 초과: 5분 동안 사용하지 않아 캐시가 만료됨
- 파라미터 변경:
tool_choice, 이미지 내용 또는 thinking 파라미터를 수정함
Claude 모델별 최소 캐시 토큰 요구사항
| 모델 시리즈 | 최소 캐시 가능 토큰 수 |
|---|---|
| Claude Opus 4.6 / Opus 4.5 | 4,096 tokens |
| Claude Sonnet 4.6 / Sonnet 4.5 / Sonnet 4 / Opus 4.1 / Opus 4 | 1,024 tokens |
| Claude Haiku 4.5 | 4,096 tokens |
| Claude Haiku 3.5 / Haiku 3 | 2,048 tokens |
프롬프트가 최소 토큰 수에 미치지 못하면 cache_control을 설정하더라도 캐시가 생성되지 않으며, 요청은 정상적으로 처리되지만 캐싱 혜택은 받을 수 없습니다.
🎯 디버깅 팁: APIYI(apiyi.com) 플랫폼에서 Claude API를 호출할 때 응답의
usage필드를 통해 캐시 활성화 여부를 즉시 판단할 수 있습니다. 만약cache_read_input_tokens와cache_creation_input_tokens가 모두 0이라면 캐시 기능이 올바르게 설정되지 않은 것입니다.
Claude 프롬프트 캐싱(Prompt Caching) 자주 묻는 질문 FAQ
Q1: OpenAI 호환 모드에서 Claude를 호출할 때 캐시를 사용할 수 있나요?
아니요, 불가능합니다. 이는 Anthropic 공식 문서에서 명시한 제한 사항입니다. OpenAI 호환 모드(/v1/chat/completions 엔드포인트)는 프롬프트 캐싱을 지원하지 않습니다. 캐시 기능을 사용하려면 반드시 Anthropic 네이티브 Messages API 형식(/v1/messages 엔드포인트)을 사용해야 합니다.
APIYI(apiyi.com) 플랫폼을 이용하면 두 가지 형식을 모두 사용하여 Claude API를 호출할 수 있습니다. 캐시 기능이 필요하다면 /v1/messages 엔드포인트를 선택해 보세요.
Q2: Claude 캐시 쓰기 비용이 일반 입력보다 비싼데, 그래도 쓸 가치가 있나요?
당연히 가치가 있습니다. 캐시 쓰기(Cache Write) 비용은 기본 입력보다 25% 더 비싸지만(5분 TTL 기준), 캐시 히트(Cache Hit) 시 비용은 기본 가격의 10%에 불과합니다. 동일한 내용을 2회 이상 사용하기만 해도 비용을 회수하고 훨씬 더 저렴하게 이용할 수 있습니다. 10만 토큰의 시스템 프롬프트를 예로 들어볼까요?
- 캐시 미사용 시: 호출당 $0.30 (Sonnet 3.5 기준)
- 캐시 쓰기: $0.375 (최초 1회만 발생)
- 캐시 읽기: $0.03 (이후 매 호출 시)
- 단 2회 호출만으로도 비용이 절감되기 시작합니다.
Q3: 코드에서 OpenAI 형식을 Anthropic 네이티브 형식으로 어떻게 전환하나요?
주요 변경 사항은 다음과 같습니다:
- 엔드포인트:
/v1/chat/completions→/v1/messages - 요청 헤더:
anthropic-version: 2023-06-01추가 - 메시지 형식:
messages배열 구조는 거의 동일함 - 시스템 프롬프트:
messages내에서 분리하여 별도의system필드로 추출 cache_control파라미터 추가
APIYI(apiyi.com) 플랫폼은 두 엔드포인트를 모두 지원하므로, 이전 시 요청 경로와 형식만 수정하면 되며 API 키를 교체할 필요는 없습니다.
Q4: Claude 캐시는 요청 간에 공유되나요?
캐시는 동일한 워크스페이스(Workspace) 내에서 공유됩니다(2026년 2월 5일부터 조직 단위에서 워크스페이스 단위 격리로 변경됨). 서로 다른 조직 간에는 캐시가 절대 공유되지 않으므로 보안 걱정 없이 사용할 수 있습니다.
Q5: 캐시와 Batch API를 함께 사용할 수 있나요?
네, 가능합니다. Batch API는 50% 할인을 제공하며, 캐시 가격 배수는 이 할인된 가격 위에 중첩되어 적용됩니다. 이 두 기능을 결합하면 비용 최적화를 극대화할 수 있습니다. 대량 처리 시나리오에서는 히트율을 높이기 위해 1시간 캐시 TTL을 사용하는 것을 추천합니다.
요약: Claude 프롬프트 캐싱 과금의 3가지 핵심 포인트
지금까지 분석한 Claude 프롬프트 캐싱 과금에 대해 꼭 기억해야 할 3가지 핵심 포인트는 다음과 같습니다:
- Anthropic 네이티브 형식만 지원: 캐시 기능은
/v1/messages엔드포인트에서만 작동하며, OpenAI 호환 모드(/v1/chat/completions)에서는 지원되지 않습니다. - 캐시 히트 비용은 단 10%: 최초 쓰기 시 25%를 더 지불하지만, 이후 히트될 때마다 기본 가격의 10분의 1 가격으로 이용할 수 있어 2회 호출부터 이득입니다.
- 올바른 호출 방식이 핵심:
cache_control: {"type": "ephemeral"}파라미터를 사용하고, 모델별 최소 캐시 토큰 요구 사항을 충족해야 합니다.
APIYI(apiyi.com) 플랫폼을 통해 Claude 프롬프트 캐싱의 모든 기능을 경험해 보세요. Anthropic 네이티브 Messages API를 완벽하게 지원하여 Claude 모델을 가장 경제적인 비용으로 활용할 수 있도록 도와드립니다.

참고 자료
-
Anthropic 공식 프롬프트 캐싱(Prompt Caching) 문서: Claude API 캐싱 기능 상세 설명
- 링크:
platform.claude.com/docs/en/build-with-claude/prompt-caching
- 링크:
-
Anthropic 공식 가격 페이지: Claude 모델 및 캐싱 요금
- 링크:
platform.claude.com/docs/en/about-claude/pricing
- 링크:
-
OpenAI SDK 호환성 문서: 호환 모드 기능 제한 설명
- 링크:
platform.claude.com/docs/en/api/openai-sdk
- 링크:
📝 작성자: APIYI Team | APIYI 기술 팀, AI 대규모 언어 모델 API 통합 및 기술 공유에 집중하고 있습니다. 더 많은 기술 튜토리얼을 보시려면 apiyi.com을 방문해 주세요.
