🎁 신규 무료 가입, 10회 호출 제공. 최대 $1, 카드 불필요.
LLM 프롬프트 캐싱 완벽 가이드 2026: 입력 비용 50-90% 절감

LLM 프롬프트 캐싱 완벽 가이드 2026: 입력 비용 50-90% 절감

목차
  1. 어디서 시작할까
  2. 1부 — LLM 프롬프트 캐싱의 동작 원리
  3. 2부 — 제공업체별 LLM 프롬프트 캐싱 비교
  4. 3부 — 실행 가능한 Python 튜토리얼
  5. 4부 — Use Case별 최적 모델
  6. 5부 — LangChain 통합
  7. 읽는 순서
  8. 이 시리즈의 측정값

대규모 언어 모델로 챗봇, RAG 앱, AI agent를 운영한다면 프롬프트 캐싱은 품질 저하 없이 입력 비용을 50–90% 줄이고 첫 token 생성 시간(time-to-first-token)을 3–10배 단축하는 가장 효과적인 최적화 방법이다. 별도로 덧붙이는 기법이 아니라 Transformer attention의 정의에서 직접 도출되는 특성이다. 이 원리를 이해하면 TTL, 제공업체별 차이, 프롬프트 구조까지 나머지 요소도 명확해진다.

TL;DR

  • 프롬프트 캐싱은 품질 저하 없이 입력 비용을 50-90% 줄이고 첫 token 생성 시간을 3-10배 단축한다.
  • 2026-05-25 측정 결과, Claude의 cache_control marker는 입력 비용을 88-89% 줄였다. GPT-5.4-mini auto-cache는 TTFT를 3.6s에서 0.73s로 단축했고, DeepSeek-v4-flash의 disk-backed cache는 74% 할인을 제공했다.
  • TTL이 짧은 이유는 KV state가 매우 크기 때문이다. 70B급 모델에서 32K-token context를 처리할 때 약 10 GB를 차지한다.
  • DeepSeek의 캐시 단위는 일반적인 최소 단위인 1,024 token이 아니라 64 token이다. 따라서 prefix 일부만 일치해도 할인을 받을 수 있다.

이 페이지는 이론부터 프로덕션 의사결정 matrix, 실제 프롬프트가 조립되는 framework 계층까지 다루는 5부작의 목차다. 이미 알고 있는 내용에 따라 필요한 부분부터 읽으면 된다.


어디서 시작할까

목적시작할 글
캐싱이 존재하고 KV cache가 실제로 무엇인지 이해하기1부 — KV Cache와 TTL의 동작 원리
제공업체를 선택하고 각각의 차이 파악하기2부 — Claude, GPT, Gemini, DeepSeek 비교
바로 실행할 수 있는 Python 코드를 복사해 직접 측정하기3부 — 실행 가능한 Python 튜토리얼
챗봇, RAG, agent workload에 적합한 모델 찾기4부 — Chat, RAG, Agent에 가장 적합한 모델
LangChain에서 올바르게 캐싱하기(templates, tools, agents)5부 — 실제로 캐시 hit가 발생하는 LangChain 구성

각 글은 독립적으로 읽을 수 있다. 순서대로 읽으면 내용이 중복되지 않으면서 전체 구조를 파악할 수 있도록 구성했다.


1부 — LLM 프롬프트 캐싱의 동작 원리

LLM 프롬프트 캐싱의 동작 원리: KV Cache와 TTL 설명 →

아키텍처를 다루는 글이다. 하나의 식으로 self-attention을 살펴보고, 고정된 prefix의 K 및 V vector를 수학적으로 재사용할 수 있는 이유를 설명한다. memory와 compute의 tradeoff가 모든 개발자가 설계 시 고려해야 하는 TTL 동작으로 어떻게 이어지는지도 보여준다.

핵심 내용:

  • 프롬프트 캐싱은 위에 덧붙이는 최적화가 아니라 causal-masked attention의 직접적인 결과다. 위치 i의 K/V는 token 1…i의 deterministic function이므로 prefix가 같으면 K/V도 bit 단위까지 같다.
  • 캐싱으로 절약하는 부분은 prefill(compute-bound, O(N²))이다. decode(memory-bandwidth-bound, token당 O(N))는 이미 모든 inference engine에서 최적화하고 있다.
  • KV cache는 매우 크기 때문에 TTL이 필요하다(70B 모델에서 32K context를 처리할 때 약 10 GB). 5분은 GPU memory pressure를 감당할 수 있는 시간대다. 수 시간에서 수 일까지 유지하려면 disk-backed cache가 필요하며, DeepSeek의 MLA architecture가 이에 해당한다.
  • 캐싱은 비용(cache hit 시 입력 비용 50–90% 절감)과 latency(5–10K-token 프롬프트의 TTFT를 3–10배 단축, 100K+에서는 그 이상)를 모두 개선한다.

2부 — 제공업체별 LLM 프롬프트 캐싱 비교

프롬프트 캐싱 비교: Claude, GPT-5, Gemini, DeepSeek, Qwen (2026) →

구매 결정을 위한 가이드다. 5개 제공업체는 프롬프트 캐싱을 서로 다른 방식으로 제공한다. Claude는 명시적 marker, GPT-5와 DeepSeek-v4는 완전 자동, Gemini와 Qwen은 implicit+explicit hybrid 방식이며, DeepSeek의 MLA는 architecture 수준에서 disk backing을 지원한다. 기능별 비교와 함께 workload에 맞춰 평가할 수 있는 5개 항목의 평가 framework를 제공한다.

핵심 내용:

  • 기본 가격끼리 비교하지 말고 hit rate를 반영한 실효 비용을 비교해야 한다(계산식은 §4.1 참조). 실시간 LLM 가격 비교비용 계산기를 사용하면 workload별 비용을 구체적으로 확인할 수 있다.
  • Claude는 단일 호출 기준 할인율이 가장 높지만(약 90%), cache_control marker를 명시적으로 지정해야 한다.
  • DeepSeek-v4는 대규모 disk-backed cache를 제공하는 유일한 제공업체다. 캐시 단위가 1,024 token이 아니라 64 token이므로 prefix가 일부만 일치해도 할인을 받을 수 있다.
  • Gemini의 explicit cache에는 시간당 storage fee가 부과된다. 손익분기점은 호출 빈도에 따라 달라진다.
  • hit rate를 동일하게 놓고 보면 제공업체를 실질적으로 구분하는 5가지 항목은 API 사용성, hit rate 예측 가능성, TTL 적합성, cache miss 시 latency, migration 비용이다.

3부 — 실행 가능한 Python 튜토리얼

Python에서 LLM 프롬프트 캐싱 구현하기: 실행 가능한 코드 튜토리얼 →

직접 구현하는 방법을 다루는 글이다. 하나의 gateway에 OpenAI SDK와 Anthropic SDK를 연결해 사용한다. 2026-05-25에 Claude 전체 제품군(haiku-4-5부터 opus-4-7까지), GPT-5.x, Gemini 2.5, DeepSeek-v4, Qwen3를 대상으로 측정한 결과도 제공한다.

핵심 내용:

  • cache_control marker를 사용하는 Claude: haiku/sonnet/opus 4-x 전체에서 일관되게 88–89%의 비용 절감을 측정했다. Anthropic SDK에 base_url="https://synthorai.io/"을 설정해 사용한다.
  • GPT-5.4-mini auto-cache: 7K-token 프롬프트에서 TTFT가 3.6 s에서 0.73 s로 줄어 5배 개선됐다. system token의 cache hit rate는 93%였다.
  • Gemini 2.5-flash implicit: streaming usage를 수집했을 때 cache hit 시 비용이 88% 절감됐다.
  • DeepSeek-v4-flash: 74% 할인되며 disk-backed 방식이라 수 시간 동안 사용하지 않아도 캐시가 유지된다.
  • TTL을 고려한 패턴: cron을 위한 keep-alive heartbeat, prefix 안정성 규칙, 호출별 logging 항목.

4부 — Use Case별 최적 모델

Chat, RAG, Agent에 가장 적합한 LLM: 2026 모델 및 비용 의사결정 Matrix →

의사결정을 위한 글이다. workload마다 비용과 latency에 영향을 주는 요소가 다르다. Chat은 기본적으로 캐싱에 유리하고, RAG는 prefix 안정성을 확보하기 어렵다. Agent에서는 누적 prefix를 일관되게 관리해야 한다. 이 글에서는 workload 형태별 권장 모델과 예상 비용을 제공한다.

핵심 내용:

  • 챗봇: auto-cache를 지원하는 모델이라면 무엇이든 사용할 수 있다. session 특성상 자연스럽게 cache hit가 발생한다. 비용과 품질을 기준으로 선택하면 된다. gpt-5.4-nano가 가장 저렴하고, gpt-5.4-mini의 캐싱된 TTFT가 가장 빠르다. claude-haiku-4-5는 비용이 조금 더 들지만 instruction-following 성능이 가장 좋다.
  • RAG: 검색한 document의 순서가 바뀌면 프롬프트 중간의 cache hit가 사라진다. 해결책은 세 가지다. reference를 뒤로 보내거나, chunk 순서를 deterministic하게 유지하거나, Claude의 여러 cache_control breakpoint를 사용한다.
  • Agent: tool call과 결과는 append-only여야 하며 각 step에서 byte 단위까지 같아야 한다. claude-sonnet-4-5cache_control marker 4개를 사용하면 누적 prefix에 가장 큰 할인을 받을 수 있다. gpt-5.4-mini는 코드 변경 없이 50%를 절감한다.
  • TTL 선택: Chat은 5분, human-in-the-loop step이 있는 agent는 1시간, 간헐적인 batch 작업은 disk-backed cache가 적합하다.

5부 — LangChain 통합

LangChain 프롬프트 캐싱: 실제로 캐시 Hit가 발생하는 구성 →

Framework 계층을 다루는 글이다. 1–4부에서는 프롬프트 byte를 직접 제어한다고 가정했다. LangChain은 프롬프트를 대신 조립하며, 가장 편리한 문법을 사용하면 아무 경고 없이 Claude 캐시가 비활성화된다. marker를 추가한 system prefix로 langchain-core 1.4.8에서 측정했다.

핵심 내용:

  • ("system", "...") string-tuple template에는 cache_control을 넣을 수 없다. 동일한 호출에서도 캐시 활동이 전혀 발생하지 않았다. content block을 포함한 SystemMessage를 사용하면 해결된다.
  • 프롬프트 순서가 hit rate를 좌우한다. 고정 규칙 앞에 검색한 RAG context를 배치하면 모든 호출에서 cold write가 발생했다. Claude는 write premium을 부과하므로 이 방식은 캐싱을 전혀 사용하지 않는 것보다 비용이 더 든다.
  • system block에 marker를 지정하면 bound tool도 함께 포함된다. bind_tools는 byte가 변하지 않도록 serialize하며, Anthropic 형식의 tool dict에 넣은 marker는 그대로 전달된다.
  • Multi-turn agent에서는 marker를 가장 최근 message로 옮긴다. 그러면 매 turn마다 이전 prefix 전체를 다시 읽고 변경분만 write한다(측정값: read 1,864, write 15).
  • 자동 캐시 모델(GPT, GLM, DeepSeek)에서는 순서가 잘못돼도 조용히 실패한다. premium도 error도 없고, 받아야 할 할인만 적용되지 않는다. usage field를 모니터링해야 한다.

읽는 순서

  • 처음 접하는 엔지니어: 순서대로 읽는다. 1부의 아키텍처를 이해하면 2–4부의 내용이 바로 연결된다.
  • 제공업체를 선정하는 PM 또는 architect: 2부와 4부부터 읽는다. 팀원이 “TTL은 왜 필요한가”라고 물으면 1부를 참고한다.
  • 오늘 특정 workload를 출시해야 하는 엔지니어: 4부의 matrix에서 해당 항목을 먼저 찾고, 3부에서 정확한 코드를 확인한다.
  • 이미 LangChain을 사용 중인 경우: 바로 5부를 읽는다. 3부의 raw SDK 패턴도 적용할 수 있지만 string template, variable 위치, usage field 이름 같은 문제는 framework에 따라 다르다.
  • 기존 앱을 최적화하려는 경우: 3부 §6의 제공업체 간 benchmark를 자체 프롬프트로 재현한다. 여러 주가 걸리는 migration이 아니라 하루면 할 수 있는 작업이다.

이 시리즈의 측정값

1–4부의 수치는 2026-05-25, 5부의 LangChain 수치는 2026-07-04에 측정했다. Synthorai gateway(OpenAI 호환은 https://synthorai.io/v1, Anthropic native는 https://synthorai.io/)에서 single-tenant로 동시 부하 없이 한 번씩 순차 실행했다. region, 시간대, 다른 tenant의 부하에 따라 결과는 달라질 수 있다. 이 수치는 출발점으로만 사용하고 외부에 인용하기 전 자체 traffic으로 재현해야 한다.

가격표와 TTL 동작은 2026-05 기준 각 제공업체의 공개 문서를 반영했다. 제공업체는 몇 달마다 이를 변경한다. 아키텍처 원리(1부)는 그대로지만 비교 수치(2부와 3부)는 달라질 수 있다.

← 블로그로 돌아가기