프롬프트 캐싱은 이전 요청의 계산 작업을 재사용하여 Claude의 응답 속도를 높이고 텍스트 생성 비용을 줄이는 기능입니다. 이것이 어떻게 작동하는지 이해하기 위해, 먼저 일반적인 요청 중에 Claude 내부에서 무슨 일이 일어나는지 살펴보겠습니다.
Claude가 일반적으로 요청을 처리하는 방식
Claude에게 메시지를 보내면, 응답을 받기 전에 배후에서 많은 일이 일어납니다. Claude는 즉시 텍스트 생성을 시작하지 않습니다 - 먼저 입력 메시지에 대해 광범위한 작업을 수행합니다.

Claude가 메시지로 수행하는 작업은 다음과 같습니다:
- 프롬프트를 토큰화
- 각 토큰에 대한 임베딩 생성
- 주변 텍스트를 기반으로 컨텍스트 추가
- 출력 텍스트 생성

이러한 모든 전처리 작업은 Claude가 실제 응답을 생성하기 전에 이루어집니다. Claude가 요청 처리를 마치고 응답을 다시 보내면, 방금 수행한 모든 계산 작업을 버립니다.

작업을 버리는 것의 문제점
이는 Claude와 대화를 나눌 때 비효율성을 만듭니다. 이전 메시지와 Claude의 이전 응답, 그리고 대화를 계속하기 위한 새 메시지를 포함하는 후속 요청을 보낸다고 가정해 보겠습니다.

Claude가 원래 메시지를 다시 보게 되면, 조금 전에 버렸던 동일한 계산 작업을 다시 수행해야 합니다. Claude는 본질적으로 다음과 같이 생각합니다: "방금 이 정확한 메시지를 처리하고 이 모든 작업을 했는데, 그걸 버렸다. 이제 다시 처음부터 해야 한다."

프롬프트 캐싱이 이를 해결하는 방법
프롬프트 캐싱은 계산 작업을 버리는 대신 저장함으로써 이러한 비효율성을 해결합니다. 작동 방식은 다음과 같습니다:

Claude가 초기 요청을 처리할 때, 모든 전처리 작업을 버리는 대신 해당 작업을 캐시에 저장합니다. 캐시는 특정 입력 메시지를 해당 계산 결과에 매핑하는 조회 테이블처럼 작동합니다.

동일한 콘텐츠를 포함하는 후속 요청을 보내면, Claude는 캐시를 확인하고 처음부터 다시 시작하는 대신 이전 작업을 재사용할 수 있습니다.
주요 이점과 제한 사항

프롬프트 캐싱은 다음과 같은 여러 이점을 제공합니다:
- 캐시된 콘텐츠를 사용하는 요청은 실행 비용이 더 저렴하고 더 빠릅니다
- 초기 요청은 캐시에 기록됩니다
- 후속 요청은 캐시에서 읽을 수 있습니다
- 캐시는 5분 동안 유지됩니다
- 동일한 콘텐츠를 반복적으로 보내는 경우에만 유용합니다(하지만 이는 매우 자주 발생합니다)
캐시는 5분의 수명을 가지므로, 짧은 시간 내에 겹치는 콘텐츠로 여러 요청을 하는 대화나 워크플로에 가장 유용합니다. 이 패턴은 실제 애플리케이션에서 매우 흔합니다 - 챗봇, 문서 분석 도구, 또는 대화 컨텍스트를 유지하는 모든 시스템을 생각해 보세요.
프롬프트 캐싱은 많은 AI 애플리케이션이 동일한 콘텐츠를 반복적으로 보내기 때문에 특히 가치가 있습니다. 시스템 프롬프트, 대화 기록, 또는 분석 중인 대용량 문서이든, 동일한 텍스트가 세션 내 여러 요청에 걸쳐 자주 나타납니다.