비용 최적화9분 소요출처: Admesh 技术团队

Prompt Caching 완전 가이드: 원리, 비용 모델, 실전 적용법

Prompt caching은 반복되는 접두사 입력 Token 비용을 한 자릿수 수준으로 낮출 수 있습니다. 이 글에서는 Anthropic과 OpenAI의 캐시 구현 차이, 실제로 비용이 절감되는 시나리오, 그리고 통합 게이트웨이로 여러 모델에서 동일한 캐시 전략을 재사용하는 방법을 분석합니다.

Prompt caching이 해결하는 문제

대부분의 LLM 호출 입력에는 매번 동일한 부분이 상당히 많습니다. 시스템 프롬프트, few-shot 예시, 검색된 고정 문서, 도구 정의(tool schema) 등입니다. 일반 과금 방식에서는 이 반복 내용에 대해 매번 입력 Token 비용을 다시 지불하고, 매번 attention도 다시 계산해야 합니다.

Prompt caching의 발상은 직접적입니다. 서버가 이 접두사 구간의 계산 결과를 저장해 두고, 다음 요청에서 접두사가 완전히 동일하면 그대로 재사용하며 새로 추가된 부분만 다시 계산합니다. Anthropic은 [prompt caching 문서](https://platform.claude.com/docs/en/build-with-claude/prompt-caching)에서 이를 지연 시간과 비용을 낮추는 수단으로 설명하며, OpenAI 쪽에는 자동 prompt caching과 batch 할인 등의 메커니즘이 대응됩니다.

실제로 비용이 절감되는 시나리오

Prompt caching은 '켜기만 하면 절감되는' 스위치가 아닙니다. 명확한 수익 경계가 있습니다: 동일 접두사가 재사용되는 횟수 × 접두사 길이 > 캐시 쓰기의 추가 오버헤드.

  • 긴 시스템 프롬프트 + 멀티턴 대화: 시스템 프롬프트가 수천 Token이고 세션 턴이 많으면 거의 반드시 이득입니다.
  • RAG + 고정 문서 집합: 불변의 정책 문서/지식베이스를 접두사에 두고 사용자 질문만 변하게 합니다.
  • 코드 Agent / 도구 호출: 도구 schema와 저장소 구조 설명이 보통 매 호출마다 반복됩니다.
  • 단발성, 짧은 접두사 호출: 캐시 쓰기 오버헤드가 절감액보다 클 수 있으니 억지로 캐시하지 마세요.

캐시를 무효화하는 다섯 가지 흔한 실수

  • 접두사에 타임스탬프나 랜덤 ID 혼입: 고정 위치 하나에 Date.now()만 넣어도 접두사 전체가 바뀝니다.
  • 시스템 프롬프트의 동적 조합: 사용자마다 다른 접두사를 받으면 캐시 적중률이 거의 0으로 희석됩니다.
  • 히스토리 메시지의 요약 압축: 매 턴 재작성하면 접두사가 불안정해집니다.
  • 사용자 입력을 맨 앞에 배치: 가장 흔한 구조적 실수이며, 변수는 최대한 뒤에 두어야 합니다.
  • 청구서만 보고 적중률은 안 보기: 적중률 지표가 없으면 캐시 수익을 전혀 귀인할 수 없습니다.

여러 모델 간에 동일한 캐시 전략 재사용하기

제품에서 Claude와 GPT를 동시에 사용한다면, 캐시 의미론이 벤더마다 완전히 일치하지는 않습니다(누가 캐시 중단점을 선언하는지, TTL이 얼마인지, 과금 방식은 어떤지). 이 적응 로직을 하나의 통합 게이트웨이 뒤에 모아 두면, 비즈니스 코드는 프롬프트 구조 하나만 유지하고 모델 전환 시 재작성할 필요가 없습니다.

Admesh 게이트웨이는 하위에 대해 OpenAI 호환 프로토콜을 유지하므로, 동일한 프롬프트 구조에서 model 필드만 바꿔 여러 벤더 간에 전환할 수 있습니다. 캐시 적중 과금 기준은 청구서의 usage 명세에 통일되어 반영되므로, 벤더마다 과금 기준을 따로 연동할 필요가 없습니다.

Admesh 실시간 요금 (발췌)

가격은 Admesh 실시간 구성에서 가져온 것이며, 백만 토큰당 USD 기준입니다. 전체 목록은 모델 카탈로그를 참조하세요.

Admesh.ai 모델 가격표: 활성화된 8개 모델의 가격 및 컨텍스트 윈도우
모델 이름 및 ID컨텍스트 창가격 입력 / 1M판매 가격 / 1M캐시 적중 / 1M
Claude Fable 5anthropic/claude-fable-5
1M$3.25 / 1M$16.25 / 1M$0.325 / 1M
Claude Fable 5.1anthropic/claude-fable-5-1
1M$3.25 / 1M$16.25 / 1M$0.08125 / 1M
Claude Haiku 4.5anthropic/claude-haiku-4-5-20251001
200K$0.325 / 1M$1.625 / 1M$0.0325 / 1M
Claude Haiku 5.5anthropic/claude-haiku-5-5
1M$0.0325 / 1M$0.1625 / 1M$0.00325 / 1M
Claude Opus 4.5anthropic/claude-opus-4-5-20251101
200K$1.625 / 1M$8.125 / 1M$0.1625 / 1M
Claude Opus 4.6anthropic/claude-opus-4-6
1M$1.625 / 1M$8.125 / 1M$0.1625 / 1M
Claude Opus 4.7anthropic/claude-opus-4-7
1M$1.625 / 1M$8.125 / 1M$0.1625 / 1M
Claude Opus 4.8anthropic/claude-opus-4-8
1M$1.625 / 1M$8.125 / 1M$0.1625 / 1M

상기 금액은 표준 공용 채널 단가이며, 토큰의 실제 사용량에 따라 정산됩니다. 전체 모델 목록 보기

과금 단위 및 캐시 Token 설명 보기 →

실전 체크리스트

  1. 프롬프트를 '안정 접두사 / 반안정 부분 / 사용자 입력' 세 구간으로 나누고, 안정 부분을 맨 앞에 둡니다.
  2. 안정 접두사에 타임스탬프, 난수, 사용자 ID가 나타나지 않도록 보장합니다.
  3. 청구서에서 캐시 읽기/쓰기 Token을 별도로 집계하여 실제 적중률로 환산합니다.
  4. 고정된 평가 요청 세트로 정기 회귀 테스트를 수행하여 프롬프트 변경이 적중률을 무너뜨리지 않았는지 확인합니다.
  5. 캐시 수익에 하한을 설정합니다(예: 5% 미만이면 프롬프트 구조 롤백). 최적화를 위한 최적화를 피하세요.

자주 묻는 질문

Prompt caching으로 얼마나 절감할 수 있나요?
접두사 재사용 횟수와 접두사 길이에 따라 달라지며, 보편적인 수치는 없습니다. 경험상 시스템 프롬프트가 2K Token을 넘거나, 동일 세션이 3턴을 넘거나, 동일 문서가 반복 검색될 때 절감이 가장 두드러집니다. 청구서의 캐시 Token 수 ÷ 총 입력 Token 수로 실제 적중률을 계산한 뒤 프롬프트 구조 조정이 필요한지 판단하세요.
캐시된 출력 결과를 다른 사용자가 읽을 수 있나요?
아니요. 캐시되는 것은 동일 API Key / 계정 아래의 접두사 계산 상태이며, 테넌트 간에 공유되지 않고 특정 응답 결과가 다른 계정에 노출되지도 않습니다. 다만 보안상 재사용될 수 있는 프롬프트 접두사에 민감한 데이터를 두는 것은 여전히 권장하지 않습니다.
모델을 바꾸면 캐시가 유지되나요?
아니요. 캐시의 단위는 '모델 + 접두사'이므로, 모델을 바꾸는 것은 캐시 공간을 바꾸는 것과 같아 다시 예열해야 합니다. 이것이 다중 모델 전환이 잦은 애플리케이션의 캐시 적중률이 흔히 낮은 이유입니다.

참고 자료

이 모델들을 하나의 게이트웨이로 호출하세요

Admesh는 통합 OpenAI 호환 API를 제공합니다: Claude, GPT, DeepSeek 등에 하나의 Base URL과 하나의 키로 접근하세요. 신규 계정에는 만료되지 않는 체험 크레딧이 제공됩니다.