LLM API 비용 90퍼센트 절감하는 토큰 최적화와 캐싱 아키텍처 구축 방법
상용 LLM API를 서비스에 붙이면 초기에는 편리하지만, 사용자가 늘어나는 순간 비용 구조가 빠르게 부담으로 바뀝니다. 특히 고객 문의, 문서 검색, 사내 챗봇처럼 비슷한 질문이 반복되는 서비스에서는 매번 대형 모델을 호출하는 방식이 비효율적입니다. 이 글에서는 시맨틱 캐싱, 프롬프트 압축, 동적 변수 분리, TTL 관리, 불필요한 데이터 필드 제거를 조합해 LLM API 비용을 크게 낮추는 아키텍처를 정리합니다. 조건이 맞는 반복 질의 환경에서는 전체 요청 중 상당수를 캐시로 처리하고, 남은 요청의 입력 토큰까지 줄여 최대 90% 수준의 비용 절감도 노려볼 수 있습니다. 이 글에서 다루는 구축 흐름 사용자 질문을 정규화하고 날짜, 시간, 위치, 상품명 같은 동적 변수를 분리합니다. 정제된 질문을 임베딩 모델로 변환해 벡터 저장소에서 유사한 과거 요청을 검색합니다. 유사도 점수가 기준 이상이면 LLM 호출 없이 검증된 캐시 답변을 반환합니다. 캐시 미스가 발생하면 프롬프트 압축과 컨텍스트 정리를 거쳐 입력 토큰을 줄입니다. 상용 LLM API 호출 후 답변 품질과 캐시 가능 여부를 판단해 저장 대상을 선별합니다. TTL, 도메인별 임계값, 오답 캐시율을 모니터링하며 운영 기준을 조정합니다. 1. LLM API 비용이 빠르게 증가하는 구조 LLM API 비용은 단순히 요청 수만으로 결정되지 않습니다. 대부분의 상용 모델은 입력 토큰과 출력 토큰을 기준으로 과금되기 때문에, 같은 요청 수라도 프롬프트가 길거나 대화 이력이 누적되면 비용이 크게 늘어납니다. 특히 RAG 기반 챗봇은 검색된 문서 조각을 프롬프트에 함께 넣기 때문에 입력 토큰이 쉽게 커집니다. 예를 들어 하루 5만 건의 요청이 들어오고, 요청 1건당 평균 입력 2,500토큰과 출력 700토큰이 사용된다고 가정해 보겠습니다. 단...