본문 바로가기
C.W.K.
Stream
Lesson 06 of 10 · published

맥락 캐싱 — 무엇을 어디까지 묶어둘까

~18 min · context, caching, cost

Level 0수련생
0 XP0/100 lessons0/14 achievements
0/120 XP to next level120 XP to go0% complete

운영 비용을 크게 움직이는 손잡이

요즘 API는 시스템 프롬프트, 긴 문서, 도구 목록처럼 프롬프트의 일부를 캐시 대상으로 표시할 수 있어. 캐시에 적중한 입력은 정상 입력 요금의 일부만 청구돼. Anthropic의 경우 읽기는 10%, 쓰기는 25% 수준이고 TTL은 수분에서 수시간 범위야. 같은 프롬프트를 하루 100만 번 부르는 시스템이라면 캐싱 여부가 한 달 6만 달러와 6천 달러의 차이를 만들 수 있어.

캐시에 넣기 좋은 것

  • 시스템 프롬프트 — 아주 짧지 않다면 거의 언제나 후보야.
  • 거의 바뀌지 않는 긴 문서 — 설명서나 참조 자료처럼 여러 요청이 함께 쓰는 내용.
  • 도구 정의 — 스키마와 설명, 특히 도구가 많은 에이전트에서 효과가 커.
  • Few-shot 사례 — 사례 묶음이 크고 자주 바뀌지 않을 때.

캐시에 넣지 말아야 할 것

  • 사용자가 방금 보낸 메시지.
  • 요청마다 달라지는 자료.
  • 질문마다 결과가 바뀌는 RAG 청크.

순서가 바뀌면 캐시도 깨져

캐시 경계는 위치를 기준으로 해. 경계 앞은 모두 캐시에 들어가고 뒤는 매번 새로 처리돼. 짧은 시스템 프롬프트 뒤에 긴 문서가 온다면 문서가 끝난 자리에 경계를 둬. 프롬프트의 순서를 바꾸면 캐시는 무효가 되므로, 한 번 정한 배치는 안정적으로 유지해야 해.

Code

Anthropic 프롬프트 캐싱·python
client.messages.create(
    model="claude-opus-4-7",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": LARGE_REFERENCE_DOC,  # 50k tokens, rarely changes
            "cache_control": {"type": "ephemeral"}
        },
        {
            "type": "text",
            "text": "You are a contract analyst. ..."
        }
    ],
    messages=[{"role": "user", "content": user_question}]
)

External links

Exercise

크고 거의 바뀌지 않는 머리말을 가진 운영 프롬프트 하나를 골라 캐시 경계를 추가해봐. 천 번 호출했을 때 적용 전후의 비용을 비교해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.