DEV Community

Cover image for Prompt caching 운영 경제학 — 같은 프롬프트를 1000번 보낼 때 비용을 90% 줄이는 법
HyunSeok Jeong
HyunSeok Jeong

Posted on • Originally published at blog.trysitely.com

Prompt caching 운영 경제학 — 같은 프롬프트를 1000번 보낼 때 비용을 90% 줄이는 법

광고 카피 양산을 LLM에 자동화한 뒤 첫 달 청구서를 받으면 자주 놀랍니다. 같은 페르소나·같은 브랜드 가이드를 매번 보내는데 그 부분이 매번 입력 토큰으로 잡혀 비용을 만듭니다. prompt caching은 이 반복되는 부분을 캐시 영역으로 표시해, 두 번째 호출부터는 그 부분을 캐시 토큰(가격 1/10)으로 처리합니다. 마케팅 자동화의 운영 비용을 90% 가까이 깎을 수 있는 단순하고 강력한 도구입니다.

마케터가 이 글을 읽어야 하는 이유: LLM을 자동화에 끼워 넣을수록 비용은 호출 수 × 입력 토큰으로 빠르게 커집니다. 같은 페르소나를 1000번 보내고 있다면, 그게 1000번의 입력 토큰 비용입니다. caching 한 줄로 999번을 캐시 토큰으로 돌리면 비용이 거의 1/10. 작은 변경 하나로 LLM 자동화의 ROI가 완전히 달라집니다.

시스템 프롬프트와 문서가 캐시 영역으로 표시되어 두 번째 호출부터 캐시 히트로 처리되는 다이어그램
반복되는 부분을 캐시로 표시하면 그 부분의 비용이 1/10. 자동화의 운영 경제학이 완전히 달라진다.

1. 왜 비용 90% 절감이 가능한가

LLM API 비용은 일반적으로 입력 토큰 + 출력 토큰의 합으로 청구됩니다. 마케팅 자동화에서는 입력 토큰이 비용의 80% 이상을 차지하는 경우가 흔합니다. 그 입력 토큰의 대부분은 매번 동일한 시스템 프롬프트·페르소나·브랜드 가이드·예시(few-shot)입니다.

호출 영역 토큰 수 매 호출마다 동일? 캐시 가능?
시스템 프롬프트 500 동일 가능
브랜드 페르소나 300 동일 가능
제품 정보 200 동일 가능
Few-shot 예시 1500 동일 가능
사용자 입력 50 매번 다름 불가
출력 200 매번 다름

총 입력 2550 토큰 중 캐시 가능 영역이 2500 (98%). 사용자 입력은 50 토큰뿐. caching이 적용되면 첫 호출은 그대로 비용이 들지만, 두 번째 호출부터 2500 토큰 영역이 캐시 히트로 처리되어 1/10 가격이 됩니다.

📌 이 글의 전제

LLM API를 자동화에 한 번이라도 써본 마케터·운영자를 가정합니다. 토큰·입력·출력 같은 단어는 일상으로 쓴다고 가정합니다. 비용 청구서를 한 번이라도 보고 "왜 이렇게 나오지"라고 한 적 있다면 이 글이 직접적입니다.

2. Anthropic·OpenAI의 caching 작동 원리

두 주요 제공사가 caching을 구현하는 방식은 비슷하지만 디테일이 다릅니다.

2-1. Anthropic Claude — 명시적 cache_control

Claude는 messages 안에 cache_control: {"type": "ephemeral"}을 명시적으로 박아 표시합니다. 캐시 경계를 직접 지정합니다.

  • 캐시 영역 표시: 메시지 또는 도구 정의 안에 cache_control 추가
  • 캐시 TTL: 5분(기본) 또는 1시간(프리미엄)
  • 캐시 히트 비용: 입력 토큰의 약 10%
  • 캐시 쓰기 비용: 입력 토큰의 약 125% (첫 호출에서 쓰는 비용)

직관: 첫 호출에서 약간 더 비싸게 캐시를 쓰고, 그 다음부터 1/10 가격으로 읽음. 5분 안에 5번만 같은 캐시를 써도 본전 회수.

2-2. OpenAI — 자동 prefix caching

OpenAI는 명시적 표시 없이 자동으로 prefix를 캐시합니다. 같은 시작 부분을 가진 요청이 들어오면 자동으로 hit.

  • 캐시 표시 불필요
  • 캐시 TTL: 5-10분
  • 캐시 히트 비용: 입력 토큰의 약 50%
  • 캐시 쓰기 비용: 추가 비용 없음

직관: 자동이라 편하지만 캐시 효율은 Claude보다 낮음(50% vs 10%). 대량 자동화에서는 Claude의 명시적 caching이 비용 측면 우위.

항목 Anthropic OpenAI
표시 방법 명시적 cache_control 자동 prefix
캐시 히트 가격 입력의 10% 입력의 50%
캐시 쓰기 추가 비용 125% (첫 호출) 없음
캐시 TTL 5분 / 1시간 5-10분

3. 캐시 히트율을 높이는 프롬프트 구조 룰

caching은 prefix 매칭이라 프롬프트 구조가 중요합니다.

3-1. 변하지 않는 부분을 앞으로

시스템 프롬프트·페르소나·문서는 messages의 앞쪽에 고정. 사용자 입력은 항상 끝쪽. 같은 시작 부분을 공유하는 호출들이 캐시를 효율적으로 공유합니다.

좋은 구조 나쁜 구조
[시스템] [페르소나] [문서] [사용자 입력] [사용자 입력] [페르소나] [문서] [시스템]
[시스템] [예시1] [예시2] [사용자 입력] [사용자 입력] [동적 컨텍스트] [예시]

prefix 한 토큰이 다르면 그 뒤로 캐시 미스. 변하지 않는 부분 앞쪽 배치는 단순하지만 가장 강력한 룰.

3-2. 동적 부분을 한 곳에 모으기

타임스탬프·세션 ID 같은 동적 값을 시스템 프롬프트에 흩뿌리지 마세요. 그 값들 때문에 시스템 프롬프트의 prefix 매칭이 깨집니다. 동적 값은 사용자 메시지 끝쪽으로 모으거나 별도 메타 헤더로 분리.

3-3. Few-shot 예시 순서 고정

같은 작업을 위한 few-shot 예시를 매번 다른 순서로 섞지 마세요. 같은 순서로 고정하면 그 부분이 캐시됩니다. 다양성을 위해 예시를 무작위로 섞고 싶으면 batch 단위로 같은 순서를 유지하고 batch가 끝날 때 새 순서로 갱신하는 패턴.

💡 캐시 친화적 프롬프트 템플릿

마케팅 자동화 프롬프트의 표준 골격: [브랜드 가이드 (캐시)] → [제품 정보 (캐시)] → [Few-shot 예시 (캐시)] → [동적 컨텍스트 (선택)] → [사용자 입력 (매번 다름)]. 이 순서만 지켜도 첫 80%가 캐시 가능.

4. 마케팅 자동화의 캐시 ROI 계산

캐시가 비용에 어떻게 영향을 미치는지 구체적으로 보겠습니다.

4-1. 캐시 없을 때

  • 호출 1회: 입력 2500 토큰 × 3/1M=3/1M = 0.0075
  • 1000회/일: $7.5/일
  • 한 달: $225

4-2. 캐시 있을 때 (Anthropic 기준)

  • 첫 호출: 2500 × 3/1M×1.25=3/1M × 1.25 = 0.0094 (캐시 쓰기)
  • 두 번째 호출부터: 2500 × 3/1M×0.10=3/1M × 0.10 = 0.00075 (캐시 히트)
  • 1000회/일: 0.0094+(999×0.0094 + (999 × 0.00075) = $0.76/일
  • 한 달: $22.8

225225 → 22.8, 약 90% 절감. 자동화 호출 수가 많을수록 절감 효과는 더 큼.

4-3. 손익분기 — 몇 번 호출하면 본전?

첫 호출의 추가 비용( 0.00940.0094 - 0.0075 = 0.0019)이두번째부터의절감(0.0019)이 두 번째부터의 절감( 0.0075 - 0.00075=0.00075 = 0.00675)을 회수하려면 호출 0.3회면 충분. 사실상 즉시 본전. 5분 안에 두 번째 호출이 일어나기만 하면 무조건 이득.

일일 호출 수 월 비용 (캐시 없음) 월 비용 (캐시 있음) 절감
100 22.522.5 2.6 88%
1000 225225 22.8 90%
10000 2,2502,250 228 90%
100000 22,50022,500 2,280 90%

자동화 규모가 클수록 절감액이 크고 캐시 ROI가 폭발합니다.

5. 코드 한 묶음 — Anthropic cache_control

이게 글에 박는 유일한 코드입니다. Claude의 명시적 caching 패턴.


python
Enter fullscreen mode Exit fullscreen mode

Top comments (0)