응답 캐시는 왜 일률적으로 적용할 수 없나

대모델 캐시에서 가장 어려운 것은 「저장」이 아니라 「언제 재사용하면 안 되는가」다.

응답 캐시는 안정적인 장면에 봉사해야 하며, 개인화, 시효성, 권한 경계라는 세 마지노선을 깨뜨려서는 안 된다.

캐시에 적합한 요청

장면설명
고정 FAQ같은 질문이 반복되면 기존 결과를 바로 반환
포맷 변환입출력의 결정성이 높음
템플릿화된 설명내용이 안정적이고 컨텍스트에 의존하지 않음

캐시 금지 장면

의존 항목왜 캐시하면 안 되나
사용자 신원사람마다 다름
계좌 상태수시로 변동
실시간 재고초 단위로 만료
최신 정책상류에서 갱신됨

계층 캐시: 중간 결과는 캐시 가능

  • 검색 결과
  • 도구 결과
  • 구조화 파싱 결과

정리

대모델 시스템은 응답 캐시로 지연과 비용을 낮출 수 있지만, 캐시는 반드시 모델, Prompt, 지식베이스, 권한 버전에 바인딩되어야 하며 실효 정책을 설정해야 한다. 안정적인 결과를 캐시하기에 적합하고, 강한 개인화와 강한 시효성을 가진 답변에는 적합하지 않다.

핵심 통찰

  1. 캐시 문제의 출제 의도는 「긍정적 이득」이 아니라 「부정 조건」이다 — 돈을 아끼고 속도를 높인다는 것은 상식이라 누구나 답할 수 있다. 진짜 변별력은 「언제 재사용하면 안 되는가」를 말할 수 있는지에 있다. 이 사고는 모든 시스템 설계 문제에 이식할 수 있다: 먼저 경계를 답하고 나서 이득을 답하라.
  2. 캐시 키 = 답변에 영향을 주는 모든 변수의 곱 — 어떤 차원을 키에 넣을지 판정하는 기준은 하나뿐이다: 그것이 바뀌면 답이 바뀌는가? 바뀐다면 반드시 키에 넣어야 한다. 전통 웹 캐시는 URL + 파라미터면 되지만, 대모델은 모델 버전, Prompt 버전, 지식베이스 버전이라는 세 개의 「숨은 변수」가 추가되며 바로 이것들이 가장 잘 누락된다.
  3. 권한은 반드시 캐시 키에 들어가야 하며, 그러지 않으면 캐시 자체가 월권 통로가 된다 — 이것이 「성능 최적화」에서 「보안 문제」로 도약하는 핵심 지점이다. 고권한 사용자가 생성한 답변을 저권한 사용자가 히트하는 것은 「캐시가 부정확한」 것이 아니라 실제 데이터 유출이다.
  4. 「잘못 재사용하는 것」이 「재사용하지 않는 것」보다 대가가 훨씬 크다 — 캐시 미스는 돈을 더 쓸 뿐이지만, 잘못된 히트는 틀린 답을 대량으로 배포한다. 그래서 캐시 전략은 보수적으로 기울어야 한다: 적게 히트할지언정 잘못 히트하지 말 것.
  5. 중간 결과와 최종 답변의 캐시 가치는 완전히 다르다 — 검색 결과, 도구 호출 결과, 구조화 파싱 결과는 「사실 계층」으로 상대적으로 안정적이고 계산이 비싸므로 캐시에 적합하다. 최종 답변은 「표현 계층」으로 현재 컨텍스트와 강하게 결합되므로 현장에서 생성해야 한다. 계층 캐시는 연산력 절약과 뒤섞임 방지라는 두 이득을 동시에 얻는다.
  6. 낡은 어조, 낡은 권한, 낡은 상태는 서로 다른 세 종류의 오염이다 — 어조 문제는 경험에 영향을 주고, 권한 문제는 보안에 영향을 주며, 상태 문제는 정확성에 영향을 준다. 전체 답변 캐시는 이 셋을 한꺼번에 끌고 온다.
  7. TTL 길이 자체가 조절 가능한 전략 차원이다 — 캐시는 이진 선택(캐시할까 말까)이 아니라 연속 스펙트럼이다. 「고빈도 반복 + 쉽게 변함」이라는 사분면에는 짧은 TTL이 유일하게 적합한 해법이며, 영구 캐시도 아니고 캐시 안 함도 아니다.
  8. 캐시 항목에는 메타데이터가 있어야 거버넌스할 수 있다 — 출처, 버전, 권한, 만료 시각을 함께 담아야 지정 실효, 감사, 역추적을 논할 수 있다. 메타데이터가 없는 캐시는 사고가 나면 전체를 비우는 수밖에 없다.

엔지니어링 실전 Tips

  • 상용 전에 「키 누락 훈련」을 한 번 할 것: 모델 버전, Prompt 버전, 지식베이스 버전을 각각 한 번씩 바꿔보고 캐시가 잘못 히트하는지 볼 것. 이 세 항목은 요청 파라미터에 없기 때문에 가장 잘 누락된다.
  • 권한 범위는 후처리 필터가 아니라 키에 넣을 것을 권장한다: 후처리 필터링(먼저 히트한 뒤 검증)은 답변이 이미 생성/추출되었다는 뜻이며, 필터 로직에 구멍이 있으면 바로 유출된다. 키에 넣는 것이 구조적 격리다.
  • 캐시 항목에 「출처」 표시를 붙일 것: 잘못된 결과가 확산될 때 출처별로 일괄 실효시킬 수 있으며 전체 저장소를 비울 필요가 없다.
  • 고위험 답변은 캐시를 바로 우회할 것: 의료, 법률, 금융, 금액과 정책이 관련된 답변은 차라리 매번 다시 계산하라. 원문 표현은 「고위험 답변은 아예 캐시에 진입시키지 말라」이다.
  • 전체 답변 캐시보다 중간 결과 캐시를 우선할 것: 검색과 도구 호출이 흔히 지연의 대부분을 차지하므로, 그것들을 캐시하면 이득은 전체 답변 캐시에 근접하면서 뒤섞임과 월권 리스크는 거의 없다.
  • 짧은 TTL 장면의 식별 신호: 「같은 사용자군이 짧은 시간에 같은 질문을 반복하지만 답은 언제든 바뀔 수 있음」 — 예를 들어 이벤트 규칙, 한정 정책, 랭킹. 이때는 TTL이 수십 초여도 히트율이 상당하다.
  • Token 절약의 계산은 「반복 질문 비율」에 달아야 한다: 캐시 이득 ≈ 반복 요청 비율 × 1회 생성 비용. 업무에서 롱테일 질문이 절대다수라면 응답 캐시의 ROI는 기대보다 훨씬 낮으며, 이때는 Prompt 접두 캐시 같은 다른 수단으로 전환해야 한다.