0. 줄이기 전에 어디서 쓰는지 잽니다
모든 응답에는 usage 필드로 입력·출력 토큰 수가 함께 옵니다. 이걸 요청 유형별로 기록하는 것이 시작입니다. 대부분의 서비스에서 비용의 대부분은 소수의 요청 유형에 몰려 있습니다. 어디가 큰지 모르면 엉뚱한 곳을 최적화하게 됩니다.
resp = client.messages.create(model=MODEL, ...)
log.info("llm_usage", extra=dict(
task=task_name, # 요청 유형 태그가 핵심
input=resp.usage.input_tokens,
output=resp.usage.output_tokens))OpenAI는 response.usage.prompt_tokens와 completion_tokens로 같은 값을 제공합니다. task 태그별로 일주일만 모아 합산하면 어디부터 손댈지가 바로 보입니다.
기록해 보면 흔한 패턴이 보입니다. 입력이 출력의 열 배가 넘는 구조라면 컨텍스트 다이어트와 캐싱이 답이고, 출력이 큰 구조라면 응답 길이 제한이 먼저입니다.
1. 입력에서 반복되는 것을 찾습니다
챗봇처럼 대화 이력을 매번 다시 보내는 구조는 턴이 길어질수록 입력이 눈덩이처럼 커집니다. 오래된 턴은 요약본으로 교체하거나 최근 몇 턴만 유지하는 방식으로 이력을 관리해야 합니다. RAG라면 검색 결과를 상위 몇 건으로 제한하고 문서 전체 대신 관련 구절만 넣는 것이 같은 역할을 합니다.
출력 쪽은 두 가지로 잡습니다. max_tokens로 상한을 걸고, 프롬프트에 원하는 형식과 분량을 명시하는 것입니다. "간결하게"보다 "다섯 줄 이내 목록으로"가 잘 듣습니다.
2. 작업마다 다른 등급을 씁니다
모든 요청을 최상위 모델로 보내는 구조가 가장 흔한 낭비입니다. 분류·라우팅·추출처럼 정답이 좁은 작업은 하위 등급이 충분히 처리합니다. 실제 데이터 50건 정도로 등급별 성공률을 재보고, 실패율이 낮은 작업부터 하위 모델로 내리세요.

하위 모델의 실패로 재시도와 사람 수정이 늘면 단가 차이가 사라집니다. 등급을 내릴 때는 단가가 아니라 "한 건을 끝내는 총비용"으로 비교해야 합니다. 각 사 모델별 단가는 아래 비교 글에 정리해 뒀습니다.
def pick_model(task):
if task in ("classify", "extract", "route"):
return "claude-haiku-4-5" # $1/$5
if task in ("summarize", "draft"):
return "claude-sonnet-5" # $2/$10
return "claude-opus-5" # $5/$25처음부터 정교한 라우터를 만들 필요는 없습니다. 요청에 작업 유형 태그를 붙이는 습관이 생기면 이 분기 하나로도 상위 모델 트래픽의 상당 부분이 내려갑니다.
3. 반복 접두부는 캐싱으로 90%를 아낍니다
시스템 프롬프트, 도구 정의, 참조 문서처럼 매 요청 똑같이 들어가는 부분은 프롬프트 캐싱 대상입니다. 캐시에서 읽는 토큰은 Claude와 OpenAI 최신 모델 기준 표준 입력가의 10%만 냅니다. 반복 접두부가 큰 서비스라면 이 한 가지로 입력 비용의 절반 이상이 사라지기도 합니다.
다만 접두부가 한 글자라도 바뀌면 그 지점부터 캐시가 무효화됩니다. 타임스탬프나 요청 ID를 프롬프트 앞부분에 넣는 실수가 대표적입니다. 구현 방식이 회사마다 달라서 별도 글로 정리했습니다.
4. 급하지 않은 작업은 Batch로 반값에 돌립니다
즉시 응답이 필요 없는 대량 작업은 Batch API가 입력·출력 모두 50% 할인입니다. 야간 분류, 대량 요약, 백필 작업이 대상입니다. 실시간 트래픽과 배치성 작업을 분리하는 것만으로 해당 물량의 비용이 절반이 됩니다.
입력이 큰 구조이력·문서 다이어트 → 캐싱 순서로
출력이 큰 구조max_tokens 상한 + 형식·분량 지시
단순 작업 대량하위 등급 전환 후 성공률 검증
지연 허용 작업Batch 분리, 캐싱과 중복 적용 확인
마지막 방어선은 예산 알림입니다
구조를 다 잡아도 코드 버그로 무한 재시도가 돌면 하루에 한 달 치를 쓸 수 있습니다. 각 사 콘솔의 예산 한도·알림을 설정하고, 애플리케이션에도 일일 상한과 이상 감지를 넣어두세요. 개발용 키와 운영용 키를 분리하면 실험 비용이 섞이는 것도 막을 수 있습니다.
Anthropic·OpenAI·Google의 공식 가격 문서와 캐싱·Batch 문서를 2026년 8월 28일 확인했습니다.