프롬프트 캐싱은 이전 요청의 계산 작업을 재사용하여 Claude의 응답 속도를 높이고 텍스트 생성 비용을 줄이는 기능입니다. 각 요청 후 모든 처리 작업을 버리는 대신, 유사한 콘텐츠를 다시 보낼 때 Claude가 이를 저장하고 재사용할 수 있습니다.
Claude가 일반적으로 요청을 처리하는 방식
프롬프트 캐싱을 이해하기 위해, 먼저 캐싱이 활성화되지 않은 일반적인 요청 중에 어떤 일이 일어나는지 살펴보겠습니다.

Claude에게 메시지를 보내면, 즉시 응답 생성을 시작하지 않습니다. 대신, Claude는 입력에 대해 엄청난 양의 전처리 작업을 수행합니다:

- 프롬프트를 더 작은 조각으로 토큰화합니다
- 각 토큰에 대한 임베딩을 생성합니다
- 주변 텍스트를 기반으로 컨텍스트를 추가합니다
- 그런 다음에야 실제 출력 텍스트를 생성합니다
응답을 보낸 후, Claude는 이 모든 계산 작업을 버립니다 - 토큰화, 임베딩, 컨텍스트 분석이 모두 폐기됩니다.

작업을 버리는 것의 문제점
동일한 콘텐츠를 포함하는 후속 요청을 할 때 이는 비효율적이 됩니다. 예를 들어, 동일한 긴 텍스트의 요약을 다듬어 달라고 Claude에게 요청하는 대화에서:

Claude는 방금 분석한 콘텐츠에 대해 동일한 전처리 작업을 모두 반복해야 합니다. Claude는 이렇게 생각할 수도 있습니다: "방금 그 메시지를 처리하고 내가 한 모든 작업을 버렸는데 - 재사용할 수 있었을 텐데!"

프롬프트 캐싱이 이를 해결하는 방법
프롬프트 캐싱은 전처리 작업을 버리는 대신 저장함으로써 이 워크플로를 변경합니다:

초기 요청을 하면, Claude는 평소와 같이 모든 전처리를 수행하지만 결과를 버리는 대신 캐시에 저장합니다. 캐시는 "이 메시지를 다시 보게 되면, 이미 수행한 이 작업을 재사용하겠다"라고 말하는 조회 테이블처럼 작동합니다.

주요 이점과 제한 사항

프롬프트 캐싱은 다음과 같은 여러 이점을 제공합니다:
- 더 빠른 응답: 캐시된 콘텐츠를 사용하는 요청은 더 빠르게 실행됩니다
- 더 낮은 비용: 요청의 캐시된 부분에 대해 더 적은 비용을 지불합니다
- 자동 최적화: 초기 요청은 캐시에 쓰고, 후속 요청은 캐시에서 읽습니다
그러나 명심해야 할 중요한 제한 사항이 있습니다:
- 캐시 지속 시간: 기본적으로 캐시된 콘텐츠는 5분 동안 유지되며, 재사용할 때마다 추가 비용 없이 해당 타이머가 갱신됩니다. 선택적으로 수명을 1시간으로 연장할 수 있으며, 이 경우 더 높은 캐시 쓰기 가격이 적용됩니다.
- 제한된 사용 사례: 동일한 콘텐츠를 반복적으로 보낼 때만 유용합니다
- 높은 빈도 요구 사항: 동일한 콘텐츠가 요청에서 매우 자주 나타날 때 가장 효과적입니다
프롬프트 캐싱은 동일한 대규모 문서에 대해 여러 질문을 하는 문서 분석 워크플로나, 기본 콘텐츠는 일정하게 유지하면서 특정 측면을 다듬는 반복적인 편집 작업과 같은 시나리오에 가장 적합합니다.