k
korAI
고급 전체
🔥 고급2026-06-015~7분

Prompt Caching TTL과 비용 모델 완전 분석: 캐시 히트율 90% 달성 전략

Anthropic의 Prompt Caching은 잘못 설계하면 오히려 비용이 증가한다. 캐시 TTL 구조, 프리픽스 고정 패턴, 히트율 측정까지 운영 관점에서 정리한다.

prompt-cachingcost-optimizationobservability

Prompt Caching의 비용 구조 이해

Anthropic Prompt Caching은 캐시 쓰기(write) 비용이 기본 입력 토큰의 1.25× 로 더 비싸다. 반면 캐시 읽기(read) 는 기본 입력 대비 0.1× 수준이다. TTL은 현재 5분으로 고정되어 있어, 5분 내 동일 프리픽스 재호출이 없으면 쓰기 비용만 소모하고 히트 없이 끝난다.

실패 모드 1: 사용자별로 system prompt 앞부분이 달라지는 구조 → 프리픽스 불일치로 캐시 미스 100% 실패 모드 2: 요청 간격이 5분을 초과하는 저빈도 배치 작업에 캐시 적용 → 순손실 실패 모드 3: cache_control 마커를 content 블록 중간에 여러 개 삽입 → 가장 긴 매칭 프리픽스만 유효하므로 의도와 다른 캐시 경계 발생

캐시 히트율 90% 달성을 위한 프리픽스 고정 패턴

핵심 원칙은 변하지 않는 내용을 최대한 앞으로, cache_control 마커는 고정 구간의 끝에 정확히 1개 배치하는 것이다.

import anthropic

client = anthropic.Anthropic()

STATIC_SYSTEM = """당신은 법률 문서 검토 전문가입니다.
관련 판례 데이터베이스: [...수천 토큰의 고정 컨텍스트...]
"""

def review_document(user_query: str, document: str) -> str:
    response = client.messages.create(
        model="claude-opus-4-5",
        max_tokens=1024,
        system=[
            {
                "type": "text",
                "text": STATIC_SYSTEM,
                "cache_control": {"type": "ephemeral"}  # 고정 구간 끝에만
            }
        ],
        messages=[
            {
                "role": "user",
                "content": f"문서:\n{document}\n\n질문: {user_query}"
            }
        ]
    )
    usage = response.usage
    hit = usage.cache_read_input_tokens > 0
    print(f"캐시 히트: {hit} | 읽기: {usage.cache_read_input_tokens} | 쓰기: {usage.cache_creation_input_tokens}")
    return response.content[0].text

usage.cache_read_input_tokens가 0이면 미스다. 이 값을 Datadog 등에 메트릭으로 쏴서 히트율 = read / (read + creation) 을 대시보드화한다. 목표치 90% 미달 시 프리픽스 길이 또는 호출 간격을 점검한다.

비용 손익분기 계산과 운영 체크리스트

손익분기: 캐시 쓰기 오버헤드 0.25× 를 회수하려면 같은 프리픽스로 최소 2회 이상 히트해야 한다. 히트 1회당 0.9× 절감이므로 3회 히트부터 실질 이익.

운영 체크리스트

  • [ ] 고정 system prompt 길이 확인 (최소 1,024 토큰 이상이어야 캐싱 대상)
  • [ ] cache_control 마커가 정적 블록 끝에만 위치하는지 코드 리뷰
  • [ ] 호출 패턴 분석: 동일 프리픽스 요청이 5분 내 발생하는지 트래픽 로그 확인
  • [ ] cache_read_input_tokens / cache_creation_input_tokens 메트릭 수집 및 알림 설정
  • [ ] 저빈도 배치 작업은 캐싱 제거 후 비용 비교 A/B 테스트