다섯 가지 기법은 서로 누적됩니다. 각각 청구액의 서로 다른 부분을 줄입니다. 세 가지를 조합하면 품질 손실 없이 현실적으로 70% 절감할 수 있고, 다섯 가지를 모두 사용하면 85–90%에 가까워집니다. 이 가이드는 측정된 절감액과 각 기법을 실행할 수 있는 코드가 포함된 전체 메뉴입니다. 각 기법은 하단의 집중 심층 가이드로 연결됩니다.
ROI 기준으로 순위를 매긴 다섯 가지 기법
| # | 기법 | 줄이는 항목 | 현실적인 절감액 |
|---|---|---|---|
| 1 | 프롬프트 캐싱 | 반복 프롬프트의 입력 토큰 | 입력 비용 60–90% 절감 |
| 2 | 모델 계층화 | 단순 작업의 호출별 요금 | 약 10배 저렴 |
| 3 | 출력 제한 | 창의적 작업에서 주요 비용인 출력 토큰 | 출력이 입력보다 4–5배 비쌈 |
| 4 | 병렬 처리 + 배치 처리 | 토큰당 비용이 아닌 실제 시간 | 더 엄격한 타임아웃과 더 적은 재시도 가능 |
| 5 | 재시도 관리 | 폭증하는 재시도 비용 | 평균이 아닌 꼬리 비용 제한 |
1. 프롬프트 캐싱 — 단연 가장 높은 ROI의 기법
시스템 프롬프트가 1,000토큰을 초과하고 5분 이내에 동일한 프롬프트를 두 번 넘게 호출한다면 프롬프트 캐싱은 사실상 무료 절감입니다. Anthropic은 캐시된 입력에 입력 요금의 10%를 청구하고 (2.5% on Claude Fable 5.1, 5% on Claude Opus 5.5), OpenAI는 10%에서 이에 상응하는 처리를 자동으로 적용합니다. 추가되는 필드는 하나입니다:
# Prompt caching: 1 extra field = 10% rate on cached input
resp = client.messages.create(
model="claude-sonnet-5",
max_tokens=600,
system=[{
"type": "text",
"text": LONG_SYSTEM_PROMPT,
"cache_control": {"type": "ephemeral"}, # cache this part
}],
messages=[{"role": "user", "content": question}],
)현실적인 절감액: 시스템 프롬프트가 크고 안정적이라면 입력 비용 항목을 60–90% 절감할 수 있습니다. /app/usage 대시보드를 확인하세요. cache_read_input_tokens가 0이면 앞으로 30분 동안 작업하면 이후 영구적으로 비용을 회수할 수 있습니다. 심층 가이드.
2. 모델 계층화 — 충분히 좋은 가장 저렴한 모델 사용
Claude Haiku 4.5는 Claude Opus 4.7 가격의 대략 10%입니다. 분류, 서식 지정, 라우팅 결정 및 단순 요약에는 Haiku로 충분합니다. 실제로 어려운 추론 호출에만 Opus를 사용하세요.
# Pick the cheapest model that's still good enough for the task.
# Escalate by difficulty: cheap (Haiku 4.5 / GPT-5.6 Terra) -> Sonnet 5 -> Opus 4.7
def pick_model(difficulty: int) -> str:
if difficulty <= 2: return "claude-haiku-4-5" # ~10x cheaper than Opus
if difficulty <= 4: return "gpt-5-6-terra" # a second family, cheap output
if difficulty <= 7: return "claude-sonnet-5"
return "claude-opus-4-7"계층화 결정을 구축하는 방법: 먼저 소형 분류기를 사용하고(Haiku 자체가 입력 토큰 100개로 이를 수행할 수 있음), 그다음 라우팅하세요. 보류된 평가 세트로 출력 품질을 측정하세요. 직관에 선택을 맡기지 말고 벤치마크하세요.
- Tier 0 (Haiku 4.5): 분류, 추출, 번역, <2K 입력의 요약 — 호출당 비용은 센트 단위
- Tier 1 (GPT-5.6 Terra): 더 긴 요약, 코드 완성, 단순한 도구 사용 — 역시 센트 단위지만 긴 컨텍스트 처리 능력이 더 뛰어남
- Tier 2 (Sonnet 5): 실제 추론, 다단계 에이전트, 비전 작업 — 프로덕션의 주력 모델
- Tier 3 (Opus 4.7): Sonnet이 올바르게 처리하지 못한다는 것을 확인한 경우에만
3. 출력 상한 — 읽는 양이 아니라 생성하는 양을 제한하세요
출력 토큰은 일반적으로 입력 토큰보다 4~5배 더 비쌉니다. 넉넉한 max_tokens=4096 기본값은 모델이 장황하게 답하도록 만듭니다. 상한을 적극적으로 설정하고, 중지 시퀀스를 사용해 적절한 표시에서 출력을 끊으세요:
# Two-layer caps: per-call max_tokens + per-key wallet cap
client.chat.completions.create(
model="claude-sonnet-5",
messages=[...],
max_tokens=800, # cap each call
stop=["</answer>"], # cut at terminator
)
# /app/keys → set "Spending limit" per key:
# Production: $50/day · Experiment: $5/day · CI: $1/day호출별 max_tokens을 /app/keys의 키별 지갑 지출 상한과 함께 설정하세요. 폭주하는 루프나 버그가 있어도 일일 한도를 초과할 수 없습니다. 두 계층 모두 중요합니다.
4. 병렬 처리 — 배치 형태의 워크로드용
서로 독립적인 항목 1,000개(피드백 분류, 리드 점수 매기기, 설명 생성)를 처리한다면 직렬 호출에는 한 시간이 걸립니다. AsyncOpenAI을 사용하고 동시성 한도를 설정한 비동기 처리를 이용하면 1분 미만에 끝낼 수 있으며, 더 짧은 타임아웃으로 느린 업스트림에 대한 요청을 빠르게 실패로 처리할 수 있습니다. 병렬 처리는 토큰당 비용을 줄이지 않지만, 그렇게 할 수 있는 아키텍처 패턴(멱등성 처리, 더 엄격한 재시도 예산)을 가능하게 합니다.
5. 재시도 위생 — 폭주하는 재시도에 비용을 지불하지 마세요
순진한 코드는 400 오류를 포함해 모든 오류에서 재시도합니다. 이는 실패에 비용을 지불하는 것입니다(Kunavo의 4xx 요청에는 요금이 부과되지 않지만, 속도 제한 예산과 실제 경과 시간은 여전히 소모됩니다). 올바른 정책은 408/429/5xx만 재시도하고, 지터를 포함한 지수 백오프를 사용하며, 최대 5회 시도와 총 대기 시간 30초를 적용하는 것입니다. 그 외에는 즉시 실패하고 오류를 표시하세요.
실제 절감액은 다음과 같습니다
월 $5,000를 지출하는 Kunavo 사용 SaaS에서 현실적으로 측정한 절감액:
- 프롬프트 캐싱 적용: $2,000 절감(−40%)
- 분류에 Haiku 티어 적용: $800 절감(−16%)
- 더 엄격한
max_tokens: $400 절감(−8%) - 합계: 월 $3,200 절감, $1,800 지출(총 −64%)
이 절감 효과는 누적됩니다. 다음 기법은 이미 줄어든 기준선에 적용됩니다. 캐싱을 먼저 적용하지 않으면 나머지 기법의 절감액도 줄어듭니다. 순서가 중요합니다. #1부터 시작한 다음 #2, 그 다음 #3을 적용하세요.
광고만큼 효과가 없는 방법
- "모든 것에 임베딩 사용" — 임베딩은 텍스트 검색 비용을 줄일 뿐 생성 비용은 줄이지 않습니다. 저렴하지만 LLM 호출 비용을 낮추지는 않습니다
- "비용 절감을 위한 로컬 파인튜닝" — 좁은 작업에서 하루 1,000만 토큰 이상을 처리할 때만 정당화할 수 있습니다. 대부분의 팀에서는 프롬프트 캐싱과 Haiku 티어링이 직접 호스팅의 운영 복잡성보다 유리합니다
- "더 저렴한 애그리게이터" — Kunavo는 이미 대부분의 모델을 공급자의 공식 요금보다 낮게 책정합니다. 더 저렴한 애그리게이터는 보통 요청한 모델을 더 저렴한 모델로 조용히 바꾸어 이깁니다
다음 단계
먼저 캐싱을 적용하세요. 투자 시간당 ROI가 가장 높습니다. 그런 다음 /app/usage 대시보드에서 모델과 티어별 내역을 계측하세요. 그 다음 티어링을 적용하세요. 월간 활성 사용자당 비용을 핵심 지표로 추적하세요. 참여도가 증가하는 동안 이 비용이 일정하거나 감소한다면 제대로 하고 있는 것입니다.
자주 묻는 질문
프롬프트 캐싱으로 LLM 청구액을 얼마나 줄일 수 있나요?
Anthropic은 캐시된 입력에 정상 입력 요금의 10%를 청구하고 (2.5% on Claude Fable 5.1, 5% on Claude Opus 5.5), OpenAI는 이에 상응하는 처리를 10%에서 자동으로 적용합니다. 크고 안정적인 시스템 프롬프트가 있는 워크로드에서는 입력 비용 항목을 60–90% 줄일 수 있습니다. 먼저 적용하세요. 이후의 모든 기법은 줄어든 기준선에서 작동합니다. 정확한 요청 형식은 프롬프트 캐싱 심층 가이드를 참조하세요.
Claude Haiku는 Claude Opus보다 얼마나 저렴한가요?
Claude Haiku 4.5는 Claude Opus 4.7 가격의 대략 10%로, 약 10배 저렴합니다. 분류, 추출, 번역 및 짧은 요약에는 Haiku로 충분합니다. Claude Sonnet 5가 틀린다는 것을 확인한 추론에만 Opus를 사용하세요. 현재 모델별 요금은 Claude API 가격 가이드에 있습니다.
출력 토큰이 입력 토큰보다 비싼가요?
예. 출력 토큰은 일반적으로 입력 토큰보다 4–5배 비쌉니다. 따라서 느슨한 max_tokens=4096 기본값은 비용이 큽니다. 청구서에서 가장 비싼 항목에서 모델이 장황하게 말하도록 유도하기 때문입니다. 호출별로 max_tokens를 제한하고 stop 시퀀스를 사용해 적절한 표시에서 중단하세요.
현실적으로 LLM 청구액을 전체적으로 얼마나 줄일 수 있나요?
다섯 가지 기법 중 세 가지를 조합하면 품질 손실 없이 현실적으로 70% 절감할 수 있고, 다섯 가지를 모두 사용하면 85–90%에 가까워집니다. 측정된 월 $5,000 워크로드에서 프롬프트 캐싱은 $2,000(−40%), 분류에 Haiku 계층을 사용하면 $800(−16%), 더 엄격한 max_tokens는 $400(−8%)를 절감했습니다. 총 $3,200를 절감하고 $1,800를 지출하여 전체 64%를 절감한 것입니다.
LLM API 호출의 올바른 재시도 정책은 무엇인가요?
408, 429 및 5xx 응답만 지수 백오프와 지터를 사용해 재시도하며, 최대 5회 시도와 총 대기 시간 30초로 제한하세요. 그 외에는 즉시 실패 처리하세요. 400을 재시도해도 성공하지 않으며, Kunavo에서는 실패한 4xx 요청에 요금이 부과되지 않지만 처리율 한도와 실제 시간은 여전히 소모합니다.