본문 바로가기
카테고리 없음

AI 토큰 비용 관리법, 캐싱 안 켜면 매달 비용 샌다 (프롬프트 캐싱·모델 라우팅·시맨틱 캐시)

by dwenjji 2026. 6. 26.

AI 토큰 비용 관리법, 캐싱 안 켜면 매달 비용 샌다 (프롬프트 캐싱·모델 라우팅·시맨틱 캐시)

새벽에 배포한 에이전트 코드 한 줄이 잘못돼서 71분 만에 8,500만 원이 날아간 사례가 있어요.

분당 400만 토큰을 쏟아내는 무한 재귀 호출이었는데, 대시보드 갱신 주기가 60분이라 알아챘을 땐 이미 늦었던 거죠.

극단적인 사례이긴 하지만, AI 토큰 비용 관리를 대충 해도 되는 시대는 이미 끝났다는 신호이기도 해요.

캐싱 하나, 라우팅 분기 하나로 비용이 절반 넘게 갈리는 걸 직접 자료를 들여다보면서 느꼈거든요.


프롬프트 캐싱으로 입력 토큰 단가를 깎는 법

Anthropic·OpenAI·Gemini 프롬프트 캐싱 할인율 비교 표

프롬프트 캐싱은 반복되는 입력—시스템 프롬프트, 긴 문서, 대화 맥락—을 서버에 저장해두고 다음번엔 더 싼 값에 재사용하는 기술이에요.

Anthropic Claude는 캐시 쓰기에 기본 단가의 1.25배(5분 캐시)에서 2배(1시간 캐시)를 받지만, 캐시 읽기는 0.1배만 받아요. 즉 한 번 쓰고 다섯 번만 읽어도 쓰기 비용은 상쇄되고 그 뒤로는 전부 순수 절감분이라는 거예요. 안정적인 에이전트 워크로드에서는 동적 콘텐츠를 캐시 영역 밖으로 빼두는 식으로 설계하면 74~84%까지 절감된다는 분석도 있고요. (출처: finout.io, 2026)

OpenAI는 캐시 토큰에 표준 단가 대비 50% 할인을 적용해요. 코드 변경 없이 모든 API 요청에 자동으로 붙고 추가 비용도 없다고 공식 문서에 나와 있어요. 지연시간도 최대 80%까지 줄어든다고 하니, 비용과 속도를 동시에 잡는 셈이죠.

Gemini 쪽은 좀 더 복잡해요. 명시적 캐싱과 암시적 캐싱 두 갈래로 나뉘는데, Gemini 2.5 이상 모델엔 암시적 캐싱이 기본 켜져 있어서 따로 설정할 필요도 없어요. 캐시 적중하면 자동으로 할인이 들어가요. 명시적 캐싱은 최소 32,000토큰부터 쓸 수 있고 1시간 비활성 시 만료돼요. 한 고객 서비스 챗봇 사례에서는 표준 응답과 정책 문서를 캐싱해서 월 토큰 비용이 400달러에서 100달러로 줄었다고 해요.

그런데 여기서 한 가지, 꼭 알아둘 게 있어요.

세 회사 다 "캐싱하면 최대 90% 아낀다"는 식으로 마케팅하지만, 정확한 할인율은 자료마다 표현이 갈려요. OpenAI는 공식적으로 50% 할인이라고 명시하면서도 모델별 정가표를 근거로 90%라는 숫자가 같이 떠돌고, Gemini도 표준가의 10% 청구라는 자료와 25% 청구(Pro 등급)라는 자료가 동시에 존재해요. 적용 전에 각 회사 공식 문서로 한 번 더 확인하는 습관, 귀찮아도 꼭 거쳐야 해요.

그리고 캐싱은 매 턴 새로 들어오는 사용자 메시지나 AI 응답까지는 못 깎아줘요. 그래서 대화형 서비스 전체로 보면 체감 절감폭은 30~40% 정도라는 분석이 더 현실적이에요. 캐싱 하나로 비용이 0원에 가까워질 거라 기대하면 실망할 수 있다는 뜻이에요.

배치 API도 같이 묶어서 쓸 만해요. OpenAI와 Anthropic 둘 다 비동기로 24시간 내 처리되는 요청에 입출력 토큰 50% 할인을 줘요. Anthropic 기준으로 보면 Sonnet 4.6이 정가 100만 토큰당 입력 3달러/출력 15달러에서 배치 적용 시 1.50달러/7.50달러로 떨어져요. 즉시 응답이 필요 없는 대량 문서 처리, 데이터 파이프라인 같은 작업이라면 캐싱과 배치를 같이 적용해서 비용을 더 끌어내릴 수 있어요.


모델 체인을 한 단계로 끝내지 않는 라우팅 설계

가벼운 질문도 매번 제일 비싼 모델로 보내고 있다면, 그게 바로 돈이 새는 지점이에요.

모델 라우팅은 요청 하나에 적합한 모델 하나를 고르는 방식이고, 캐스케이딩은 작은 모델부터 순서대로 시도하다가 답이 부실하면 더 큰 모델로 넘기는 방식이에요. 최근 연구에서는 이 둘을 합친 "cascade routing"이라는 통합 전략까지 제안됐어요. 이론적으로 최적의 모델 선택 지점을 찾는 방식이라고 해요. (출처: arXiv 2410.10347, 2025)

AI 에이전트 개발 커뮤니티에서 가장 많이 나오는 하소연이 바로 이거예요. "Opus나 GPT-4 급 모델만 계속 돌리다 보니 청구서 보고 깜짝 놀랐다"는 얘기. 실제로 복잡한 작업엔 고성능 모델, 단순 작업엔 저가 모델을 쓰는 전형적인 AI SaaS 앱이 라우팅 분기 코드 단 두 줄만 추가해서 연간 약 2,190달러를 아꼈다는 사례도 있어요.

라우터를 설계할 때 핵심은 이거예요.

사용자 질문의 난이도를 먼저 판별하는 작은 모델(또는 룰)을 앞에 세우고, 단순한 질문엔 가벼운 프롬프트만 연결하고, 복잡한 추론이 필요할 때만 무거운 모델을 호출하는 거예요. BESPINGLOBAL이 소개한 FinOps 사례에서는 시맨틱 라우터로 난이도를 나눠서 단순 작업은 경량 모델로 보내 80% 비용 절감, 중간 난이도는 중형 모델로 보내 40% 비용 절감을 이뤘다고 해요. 고복잡 업무만 대형 LLM에 맡긴 거죠.

소형 모델이 자기 답변에 대한 확신도(confidence score)를 매기고, 그 값이 기준 이하면 다음 모델로 넘기는 방식도 연구되고 있어요. 답을 만들지 않고도 "이 모델로 처리 가능한가"만 미리 추정하는 훈련 불필요 기법까지 등장했고요. 데이터 증강 기반 멀티 LLM 라우팅은 기존 캐스케이드 방식보다 최대 16배 효율이 좋았다는 결과도 보고됐어요.

추론 작업 자체를 작은 단위로 쪼개는 것도 빼놓을 수 없어요. 각 단계 결과물 중 다음 단계에 진짜 필요한 정보만 골라서 넘겨야 토큰이 안 새요. 한 단계에서 나온 결과를 통째로 다음 단계 프롬프트에 다시 붙여넣는 식으로 짜면, 체인이 길어질수록 비용이 기하급수적으로 불어나거든요.


불필요한 API 호출, 어디서 새는지부터 찾아야 해요

구분 새는 지점 대응 방법
캐시 미스 의미는 같은데 표현이 달라 캐시를 못 맞춤 시맨틱(임베딩 기반) 캐싱 도입
재시도 폭주 429 오류에 즉시 재시도 반복 지수 백오프 + 요청률 사전 제한
대화 기록 누적 멀티턴 대화가 쌓여 맥락이 길어짐 최근 N턴만 유지, 오래된 맥락 압축
과도한 검색 결과 RAG에서 Top-10까지 다 집어넣음 Top-3 수준으로 축소, 관련도 필터링

정확히 같은 문장만 캐시로 잡아주는 방식(exact-match)은 의외로 허점이 커요. "환불 정책이 뭐예요?"와 "어떻게 환불하나요?"는 의미가 같은데 텍스트가 다르다는 이유로 캐시를 놓쳐요. 한 자료에 따르면 정확 일치 캐싱은 중복 쿼리의 18%만 잡아내고, 나머지 47%는 의미적으로 비슷한데도 매번 풀 비용으로 새로 처리된다고 해요.

이걸 막는 게 시맨틱 캐싱이에요. 쿼리를 벡터로 바꿔서 유사도가 높으면 캐시를 맞춰주는 방식이죠. VentureBeat에 소개된 사례에서는 이 방식을 도입해서 LLM API 비용이 월 47,000달러에서 12,700달러로, 약 73% 줄었고 캐시 적중률은 18%에서 67%로 올라갔어요. 다른 사례들에서는 86% 절감, 40~80% 절감처럼 수치가 꽤 들쭉날쭉한데, 이건 캐시 적중률이나 유사도 임계값 설정 방식에 따라 결과가 크게 갈리기 때문이에요. 임계값을 너무 낮게 잡으면 다른 질문에 엉뚱한 답을 캐시에서 꺼내올 수 있어서, 쿼리 유형별로 정밀도와 재현율을 따져가며 조정해야 해요.

재시도 로직도 자주 간과되는 부분이에요. 429 에러를 받으면 바로 다시 호출하는 게 제일 직관적이지만, 그게 오히려 문제를 키워요. 실패한 재시도에 API 호출을 낭비하고, 제공사 쪽에서 더 강하게 제한을 걸어버리거든요. 지수 백오프를 기본으로 깔고, 분당 요청 수를 제공사 한도보다 10~20% 낮게 유지하는 게 정석이에요. 성공 대비 재시도 비율이 0.5를 넘는다 싶으면, 일시적 트래픽 문제가 아니라 구조 자체가 고장 났다는 신호로 봐야 한다는 점도 기억해둘 만해요.

대화 기록과 RAG 컨텍스트도 의외로 토큰을 많이 잡아먹어요. 20턴짜리 대화가 5,000~10,000토큰을 소비하는데, 실제로는 최근 500~1,000토큰 정도면 충분한 경우가 많다고 해요. 검색 결과를 Top-10까지 채우면 Top-3로 충분한 경우보다 입력 토큰 비용이 3배로 뛰어버리는 것도 흔한 안티패턴이에요. 필드 단위로 컨텍스트를 걸러내 토큰을 40% 줄인 사례, 관련도 높은 청크만 남겨서 80~85%까지 줄인 사례도 있으니, 일단 지금 쓰는 프롬프트에 "혹시 안 써도 되는 내용까지 다 밀어넣고 있나"부터 점검해보는 게 먼저예요.


모니터링 없이 켜둔 캐싱은 절반의 대책이에요

캐싱이든 라우팅이든, 결국 눈에 보이지 않으면 못 고쳐요.

BESPINGLOBAL 사례의 8,500만 원짜리 사고도 기술이 없어서 터진 게 아니었어요. 가시성이 없어서 71분 동안 아무도 몰랐던 거예요. 이후 이 회사는 Inform(토큰 소비량·이상 패턴 실시간 추적) → Optimize(시맨틱 라우터로 모델 자동 분기) → Operate(트래픽 학습 기반 GPU 자동 회수, 사용량 150%→300%→600%→1000% 단계별 알림) 3단계 체계를 적용했고, GPU 월 비용을 3,800만 원에서 1,400만 원으로, 61% 줄였어요. GPU 유휴율도 68%에서 12%로 내려갔고요.

이 정도 규모가 아니더라도 적용할 수 있는 원칙은 같아요. 토큰 사용량을 모델·기능 단위로 쪼개서 추적하고, 예상 범위를 벗어나면 바로 알림이 오게 만들고, 가격이 갑자기 튀거나 한도에 걸리면 자동으로 더 저렴한 모델로 폴백되게 짜두는 거예요.

캐싱을 켜두는 것 자체는 절반의 대책일 뿐이에요. 나머지 절반은 그게 실제로 얼마나 절감되고 있는지, 어디서 새고 있는지를 매주 확인하는 습관이거든요.


참고: AI Paradox - LLM 인프라 비용, 1시간 만에 8,500만 원 날라간 이유 (BESPINGLOBAL), Anthropic API Pricing in 2026 (finout.io)