이 제미니 트릭이 마침내 RAG를 대체할 수 있을까?

채널 아이콘
Prompt Engineering 구독자 190,000명

요약

이 영상은 LLM API 사용 비용을 최대 90%까지 절감할 수 있는 ‘컨텍스트 캐싱(context caching)’ 개념을 소개하고, Retrieval Augmented Generation(RAG)의 대안으로 활용할 수 있음을 설명합니다. 구글, Anthropic, OpenAI 등 주요 API 제공사의 캐싱 기능을 비교하며, 특히 구글의 구현체를 활용한 단계별 데모와 비용 구조 분석을 통해 효과를 검증합니다. PDF 스캔 문서 예제와 GitHub 저장소를 캐싱해 MCPS 서버를 생성하는 인컨텍스트 학습 사례를 통해 실제 적용 방법을 제시하며, 캐시 관리 함수(list, update, delete) 등 실용 팁을 공유합니다. 이를 통해 LLM 기반 시스템 개발 시 비용과 지연시간을 줄이면서도 높은 성능을 유지하는 전략을 제시합니다.

주요 키워드

context caching RAG vector stores TTL tokens in-context learning multimodal MCPS Git Ingest cost reduction

하이라이트

  • 🔑 컨텍스트 캐싱은 LLM API 호출 비용을 최대 75~90%까지 줄일 수 있는 강력한 방법이다.
  • ⚡️ 소규모 문서엔 RAG 대신 컨텍스트 캐싱을 사용해 벡터 스토어 오버헤드를 피할 수 있다.
  • 🌟 구글은 초기 32,000토큰 캐시 지원에서 4,000토큰으로 낮춰 접근성을 크게 향상했다.
  • 📌 캐시된 토큰과 비캐시 토큰 모두 투명하게 동일 처리돼 성능과 비용을 동시에 최적화한다.
  • 🚀 TTL(Time to Live) 설정으로 캐시 유지기간을 유연하게 조정하거나 세션 종료 후 자동 삭제할 수 있다.
  • 🔍 PDF 스캔 문서를 멀티모달로 캐싱해 600페이지 분량 내용을 단시간에 요약할 수 있다.
  • 🛠 GitHub 저장소를 Markdown으로 변환 후 캐싱해 MCPS 서버 생성 같은 인컨텍스트 학습에 활용 가능하다.
  • 💡 캐시 목록 조회, TTL 업데이트, 캐시 삭제 기능으로 실시간 세션 관리와 비용 최적화가 수월해진다.

용어 설명

컨텍스트 캐싱(context caching)

LLM에 전달되는 컨텍스트를 저장해 반복 호출 시 재사용하는 기법

RAG(Retrieval Augmented Generation)

검색(리트리벌) 결과를 결합해 생성 모델 성능을 높이는 방식

벡터 스토어(vector store)

문서 임베딩을 저장하고 검색하는 데이터 저장소

TTL(Time to Live)

캐시가 자동 삭제되기 전 유지되는 시간 설정

인컨텍스트 학습(in-context learning)

모델 입력에 문서나 사례를 제공해 추가 학습 없이 문맥 기반 답변을 유도하는 방식

[00:00:00] 컨텍스트 캐싱 소개

LLM API 비용 급증 문제를 언급합니다. 컨텍스트 캐싱 개념과 이점을 소개합니다.

LLM API 비용을 90%까지 절감할 수 있는 컨텍스트 캐싱 기술 소개. 많은 개발자들이 아직 활용하지 않는 이 기술은 모델이 강력해지고 컨텍스트 길이가 늘어나도 비용 효율적입니다.
컨텍스트 캐싱은 API 호출 감소와 비용 절약뿐만 아니라, 작은 규모 문서에서는 RAG의 대안이 될 수 있어 벡터 저장소와 인덱싱 오버헤드를 피할 수 있습니다.
[00:01:06] Google 캐싱 구현 시작하기

Google의 컨텍스트 캐싱 구현 과정을 안내합니다. API 사용법 및 제어 옵션을 설명합니다.

Google의 컨텍스트 캐싱 구현은 다른 제공업체보다 더 많은 제어 기능을 제공하며, 초기 32,000 토큰에서 4,000 토큰으로 낮추어 접근성을 높였습니다.
대용량 파일 처리와 반복적 상호작용에 유용한 컨텍스트 캐싱은 캐시 지속 시간을 조절할 수 있으며, RAG 대체와 인-컨텍스트 학습에도 활용 가능합니다.
[00:03:04] 비용 절감 효과 분석

캐시 활용 시 75~90% 비용 절감 수치를 제시합니다. 토큰 요금 구조와 저장 비용을 분석합니다.

Gemini 2.5 Pro 사용 시 컨텍스트 캐싱을 통해 약 75%의 비용 절감 효과를 기대할 수 있습니다.
캐시되지 않은 토큰과 비교하면 멀티모달과 텍스트 기반 토큰 모두에서 75%의 비용 절감 효과가 있습니다.
Gemini 2.0 플래시는 유사하게 작동하나, 2.5 플래시는 아직 컨텍스트 캐싱을 지원하지 않습니다. 저장 비용은 시간당 백만 토큰당 4.5달러입니다.
[00:04:14] PDF 예제 데모

PDF 스캔 문서를 캐싱하고 요약하는 데모를 보여줍니다. 멀티모달 처리 가능성을 확인합니다.

컨텍스트 캐싱의 작동 방식을 설명하고, MCPS 파이썬 패키지 문서를 활용한 실제 예제를 살펴볼 예정입니다.
Google Generative AI 패키지를 설치하고 필요한 패키지를 임포트하여 Gemini 클라이언트를 설정합니다.
600페이지 분량의 스캔된 비행 계획 문서를 Gemini의 멀티모달 기능을 통해 처리합니다.
Gemini 2.0 플래시를 사용하여 캐시를 생성하고 시스템 지시사항과 문서 내용을 설정합니다.
API 키 오류를 수정하고 캐시 생성 과정을 다시 실행합니다.
약 16만 개의 토큰이 저장된 캐시가 생성되어 Gemini API를 통해 상호작용할 수 있게 되었습니다.
캐시 구성과 사용자 요청 처리 방식에 대해 설명합니다. 여러 캐시를 동시에 사용할 수 있으며, 간단한 설정만으로 작동합니다.
모델의 메타데이터를 분석하여 처리된 토큰의 수와 캐시 작동 방식을 상세히 설명합니다. 총 16만 개의 토큰이 처리되었습니다.
문맥 학습을 위한 캐싱의 주요 기능들을 소개합니다. 캐시 목록 조회, 업데이트, 삭제 등의 기능이 포함됩니다.
[00:08:39] 캐시 관리 함수

캐시 목록 조회, 기간 설정, 삭제 방법을 다룹니다. 실시간 세션 관리 팁을 제공합니다.

Google DeepMind AI 팀의 필립이 제공한 GitHub 저장소 캐싱 예제를 소개합니다. MCPS 관련 저장소를 캐싱하여 비용 효율적으로 활용하는 방법을 설명합니다.
[00:09:18] MCPS 인컨텍스트 학습 사례

GitHub repo 캐싱 후 MCPS 서버 생성 과정을 설명합니다. 코드 변환 및 서버 구축 사례를 다룹니다.

git-ingest 패키지 설치와 사용법을 설명합니다. GitHub 저장소를 LLM이 읽을 수 있는 마크다운 형식으로 변환하는 기능을 소개합니다.
GitHub 레포지토리의 파일들을 선택적으로 포함/제외하여 단일 파일로 생성하고, 이를 LLM에 입력하여 전체 컨텍스트를 활용할 수 있는 기능 소개
Gemini 2.5 Pro 모델을 사용한 FastAPI GitHub 레포지토리 기반 API 서버 생성 프로젝트 설정 설명
시스템 지시사항 설정: FastAPI GitHub 레포지토리 컨텍스트를 활용한 코딩 어시스턴트 역할 정의
레포지토리에서 JSON, CSS, JS 등 불필요한 파일들을 제외하고 필요한 파일만 선택적으로 가져오는 과정 설명
캐시 생성 과정과 300초의 유효 시간 설정, 그리고 15만 4천 개의 토큰이 캐시되어 75% 비용 절감 효과 설명
캐시된 컨텐츠를 활용한 API 서버 구축 예시와 토큰 사용량 분석: 캐시된 토큰과 캐시되지 않은 토큰의 구분
컨텍스트 캐싱을 통해 대부분의 토큰이 캐시되어 있어 비용이 크게 절감됨을 설명합니다.
MCP 서버의 예시를 통해 특정 디렉토리 내 파일 읽기/쓰기 기능 구현을 설명합니다.
Gemini가 캐시된 콘텐츠를 바탕으로 MCP 구현 방법을 제시할 수 있음을 보여줍니다.
[00:15:43] 결론 및 비교

컨텍스트 캐싱의 중요성을 재강조합니다. OpenAI, Anthropic과의 차별점을 요약합니다.

Google, Anthropic, OpenAI의 컨텍스트 캐싱 구현을 비교하며, Google이 더 많은 제어 기능을 제공한다고 설명합니다.
자, LLM API 비용을
최대 90%까지 줄일 수 있는 방법이 있다면 어떨까요?
많은 개발자들이 이 방법을 활용하지 않고 있습니다.
모델이 더 강력해지고
컨텍스트 길이가 늘어나도,
사용량이 증가하면 비용이 급증할 수 있습니다.
이럴 때
컨텍스트 캐싱이라는 개념이
도움이 됩니다. 이 기술은
API 호출을 줄이고 비용을 절약할 뿐만 아니라,
소규모 문서의 경우
검색 증강 생성(RAG)의
대안이 될 수 있어서,
벡터 저장소와 인덱싱,
스토리지의 오버헤드를 피할 수 있습니다.
OpenAI, Anthropic, Google과 같은
주요 API 제공업체들이 컨텍스트 캐싱을 구현했습니다.
Google이 사실 처음으로
이를 도입했는데, 초기에는
32,000 토큰이 필요했습니다. 하지만 지금은
4,000 토큰으로 낮추어
더욱 접근성을 높였습니다.
이 영상에서는
Google의 컨텍스트 캐싱 구현 방법과
작동 방식, 그리고
컨텍스트 캐싱을 활용한 새로운 시스템 구축 방법을 보여드리겠습니다.
이 영상에서는 Google의
컨텍스트 캐싱 구현을 사용하는데,
이는 Anthropic이나
OpenAI의 구현보다
더 많은 제어 기능을 제공하기 때문입니다.
클라우드에서 컨텍스트 캐싱이나
프롬프트 캐싱을 사용하는 방법에 대한
영상이 있습니다. 관심 있으시다면
설명란에 링크가 있습니다.
컨텍스트 캐싱은 특히
대용량 PDF 파일이나 비디오 파일과 같은
큰 문서를 다룰 때 매우 유용하며,
사용자가 이러한 파일들과
반복적으로 상호작용할 때 효과적입니다.
이러한 파일들을 훨씬 저렴한 비용으로 한 번 캐시하고
사용자가 캐시된 파일들과
상호작용하도록 할 수 있습니다. 이는
속도와 비용 절감에 모두 도움이 됩니다.
Google에 따르면,
토큰이 자동으로 삭제되기 전까지
캐시 지속 시간을 선택할 수 있습니다.
기본적으로 유효 시간은 1시간이지만,
원한다면 몇 초로도
설정할 수 있습니다. 특정 경우에는
컨텍스트 캐싱이 RAG를
대체할 수 있습니다.
특히 벡터 저장소나
전처리, 임베딩의 추가 비용을 처리할 필요가 없습니다.
따라서 비교적 작은 문서를 다루고
사용자가
짧은 시간 동안
해당 문서와 상호작용하는 경우,
컨텍스트 캐싱을
활용할 수 있습니다. RAG를 넘어서,
인-컨텍스트 학습에도
활용할 수 있는데,
새로운 라이브러리에 대한 정보를 추가하면
Gemini가 해당 문서를 참고하여
이후 호출에서 활용할 수 있습니다.
이에 대한 예시는 나중에 보여드리겠습니다.
그전에, 캐싱의 주요 목적인
비용 절감에 대해 살펴보겠습니다.
얼마나 비용이 절감될까요?
Gemini 2.5 Pro의 경우,
200,000 토큰 이상 사용 시
다른 가격이 적용되지만,
일반적으로 프롬프트나
토큰을 캐시하면
기존 대비 약 75%의 비용 절감을 기대할 수 있습니다.
캐시되지 않은 토큰과 비교하면
멀티모달 토큰이나
텍스트 기반 토큰 모두에서 이 효과가 나타납니다.
Gemini 2.0 플래시에서도 비슷한 방식으로 작동하지만
Gemini 2.5 플래시에서는
아직 컨텍스트 캐싱을 사용할 수 없습니다.
곧 출시될 예정이며, 추가 저장 비용이
시간당 저장되는 토큰 수를
기준으로 측정됩니다.
프로 버전의 경우
시간당 백만 토큰당 4.5달러가 부과됩니다.
따라서 저장 비용과
토큰 보관 기간을
신중히 고려해야 합니다.
먼저 컨텍스트 캐싱의 작동 방식을
설명한 다음,
실제 예제를 통해
컨텍스트 학습에 적용해보겠습니다.
MCPS 파이썬 패키지의 문서를 활용하여
Gemini로 새로운 MCPS를
생성해보도록 하겠습니다.
먼저 Google Generative AI 패키지를
설치해야 합니다. 필요한 모든 패키지를
임포트하고,
Gemini 클라이언트를 시작합니다.
이 예제에서는
약 600페이지 분량의 비행 계획을 사용할 건데,
보시다시피 스캔된 문서입니다.
다행히 Gemini는
멀티모달 정보를 처리할 수 있어서
비전 기능을 통해
이 스캔된 문서를
이해할 수 있습니다. 먼저 문서의
URL을 제공한 다음, 문서를 추출하고
우리가 만든 클라이언트를 통해
문서를 업로드할 것입니다.
즉, 구글 클라우드에
문서를 저장하는 거죠.
이 예제에서는 Gemini 2.0 플래시를 사용합니다.
2.5 플래시는 아직 컨텍스트 캐싱을 지원하지 않습니다.
그리고 시스템 지시사항은
매우 단순합니다.
당신은 전문가입니다. 캐시 생성 방법은
다음과 같습니다. create_cache 함수를 사용해
모델 이름을 제공합니다.
설정에서는 원하는
시스템 지시사항과
캐시하고 싶은
내용을 제공할 수 있습니다.
시스템 지시사항이 매우 긴 경우
그것만 캐시하거나
이후 호출에 사용할
다른 문서들과 함께
캐시할 수 있습니다. 여기서 실수를 했는데,
Google API 키 대신
Grock API 키를 입력했네요.
모든 것을 다시 실행해서
문서가 제대로 업로드되도록 하겠습니다.
지금 캐시가 생성되고 있습니다.
이 과정은 몇 초 정도 걸리지만,
완료되면 우리의 캐시를
확인할 수 있을 것입니다.
캐시가 정확히 어디에 저장되어 있는지
알려주는 URL이 있을 거예요.
여기 저장된 전체 토큰 수는
약 16만 개입니다.
캐시가 생성되었고
이제 이 캐시를
일반 Gemini 모델처럼
Gemini API를 통해 상호작용할 수 있습니다.
이제 이 캐시를 후속 요청에서
사용해보겠습니다. 방법은
캐시된 콘텐츠를 가리키는
구성을 제공하는 것입니다.
여러 개의 캐시를 가질 수 있으며
여러 개의 캐시를 동시에 사용할 수 있습니다.
우리는 단순히 설정을 제공하고
사용자 요청을 처리하면 됩니다.
모델의 최종 응답을 보여주기 전에,
사용된 메타데이터를
살펴볼 수 있습니다. 이것은
내부에서 정확히 무슨 일이 일어났는지
이해하는데 매우 도움이 됩니다.
우리 요청에는 총 9개의 토큰이 있었고,
캐시된 토큰의 수는 여기 있으며
모델이 처리한 총 토큰 수는
이와 같습니다.
기본적으로 캐시된 토큰과
입력 토큰을 더한 것이고,
총 553개의 토큰이 생성되었습니다.
모든 것을 합치면,
약 16만 개의 토큰을
처리하게 됩니다. 모델은
캐시된 토큰과 캐시되지 않은 토큰을
구분하지 않습니다. 모델은
이들을 정확히 같은 방식으로 처리합니다.
여기 모델이 생성한 응답이
제공된 문서의 간단한 요약으로
나타나 있습니다.
600페이지 문서의 매우 간단한 요약입니다.
문맥 학습을 위한 캐싱 사용법을
보여주기 전에,
몇 가지 유용한 함수와
기술들을 살펴보겠습니다. 첫째,
여러 개의 캐시를 가질 수 있으므로,
이들을 반복하여
사용 가능한 모든 캐시를 나열할 수 있습니다.
둘째로, 매우 유용할 것 같은 기능은
캐시를 업데이트하는 것입니다.
기본적으로 TTL을 지정하지 않으면
1시간 동안 콘텐츠가 캐시되지만
캐시 기간을 동적으로
업데이트할 수 있습니다.
예를 들어, 여기서는
300초로 설정하고 있고,
이렇게 하면 캐시 기간이
300초로 업데이트됩니다. 하지만 사용자
세션이 만료된 후 캐시를
삭제하고 싶다면,
캐시의 삭제 함수를 사용하여
완전히 삭제할 수 있습니다.
영상의 나머지 부분에서는
Google DeepMind AI 개발자 경험 팀의
필립이 제공한 예제를
사용하겠습니다. 여기 아주
훌륭한 예제가 있는데,
MCPS 관련 GitHub 저장소의
내용을 캐싱하고 그 캐시된 내용을
사용하여 Gemini 모델로
후속 MCP 서버를 생성하는 것입니다.
캐시된 콘텐츠는 약 31센트의 비용이 들며,
이는 백만 토큰당
$1.25와 비교됩니다.
그의 코드를 같은 노트북에서 사용하겠지만
원본 노트북 링크를
제공하겠습니다. 먼저
git-ingest 패키지를 설치해야 합니다.
이전에 사용해보지 않았다면,
이것은 정말 멋진 패키지입니다.
모든 GitHub 저장소를
LLM이 읽을 수 있는 마크다운 파일로 변환할 수 있어서
전체 GitHub 저장소를
LLM 문서로 변환할 수 있습니다.
웹 버전은 사용해봤지만
파이썬 패키지가 있는지 몰랐네요.
GitHub 저장소에 가서
GitHub를 git-ingest로 바꾸면
새로운
git-ingest 웹 인터페이스로
이동하게 됩니다. 여기서 원하는 파일 유형을
어떤 유형의 파일을 포함하거나
제외할지 정의할 수 있고, 모든 내용이 담긴
단일 파일을 생성하는데, 이는 정말
놀라운 기능입니다. 이렇게 만든
파일들이나 단일 파일을 LLM에 입력하면
전체 GitHub 레포지토리의 모든 컨텍스트를
가질 수 있게 됩니다. 저는 이것을
많이 사용해왔지만, 파이썬 패키지가
있다는 것은 몰랐네요. 이제
설정을 위해 Gemini 모델을 위한
또 다른 클라이언트를 만들 겁니다. 이번에는
2.5 Pro를 사용할 건데요,
여기 시스템 지시사항이 있습니다.
우리가 하고자 하는 것은
FastAPI GitHub 레포지토리의 내용을 제공하고
Gemini가 그 내용을 기반으로 API 서버를
생성하도록 하는 것입니다. FastAPI는
API 서버를 만들 수 있게 해주는 파이썬 패키지입니다.
시작하는 방법과
API 서버 설정에 대한 훌륭한 문서가 있죠.
이제 시스템 지시사항을 보면
이 경우에는
'당신은 FastAPI GitHub 레포지토리
컨텍스트를 가진 도움이 되는 코딩 어시스턴트입니다.
사용자가 FastAPI나 API 서버 구축에 대해
질문하면 사용 가능한 정보를
활용하세요'라고 되어 있습니다.
그리고 우리는 이 레포지토리에서
JSON 파일, CSS, JS 그리고
가상 환경, GitHub 관련 파일들을 제외한
모든 것을 가져올 것입니다.
말씀드렸듯이, 이 파이썬 패키지는
몰랐었는데,
앞으로 더 자주
사용할 것 같네요. 이제
출력으로 정확히 무엇을 받는지
살펴보겠습니다. 약 13만 개의
토큰이 있는 것으로 추정됩니다.
트리를 보면,
레포지토리의 구조가 있고,
그리고 컨텐츠가 있는데, 이것이
우리 레포지토리의 실제 내용입니다.
다음으로 캐시를 생성할 건데요,
방법은 다시 한 번 클라이언트에서
create_cache 함수를 사용하는 것입니다.
그런 다음 우리의 모델을 사용하고,
PDF 파일에서 했던 것처럼
컨텐츠를 제공할 것입니다.
시스템 지시사항과 함께요.
이 모든 것이 캐시되고
이 경우 이미 300초의
유효 시간이 있습니다. 따라서 캐시는
300초 후에 자동으로 삭제됩니다.
약 15만 4천 개의 토큰이
캐시되었고, 75%의 비용 절감은
15만 개의 토큰을 고려하면 매우 큰 절감입니다.
이제 이 캐시된 컨텐츠와
평소처럼 상호작용할 수 있습니다.
시스템 프롬프트와 컨텍스트를 사용해서
정상적으로 작업하면 됩니다.
일반 API 클라이언트를 사용할 건데요,
프롬프트로 'temp API 아래에서
로컬 파일을 읽고 쓸 수 있는
간단한 API 서버를 만들어줘'라고 하겠습니다.
캐시의 이름만 제공하면 되고,
그 후에 메타데이터를 볼 수 있습니다.
약 15만 4천 개의 토큰 중 5만 5천 개가 캐시되었고,
18개의 토큰은 캐시되지 않았습니다. 이것들은
입력에서 온 토큰들입니다. 그리고
생각 과정을 위한 토큰들이 있는데,
이것들은 캐시되지 않았습니다.
그리고 더 적은 수의
출력 토큰이 있는데, 이것도
캐시되지 않았죠. 하지만 대부분은
토큰의 대부분이 캐시되어 있어서
이러한 토큰들에 대해 상당히 적은
비용만 지불하게 될 것입니다. 이제
응답에서 정확히 어떤 일이 일어났는지
살펴보겠습니다. 여기 간단한
빠른 MCP 서버가 있는데, 이는 특정
디렉토리 내에서 파일을 읽고
쓸 수 있게 해줍니다. MCP 서버를 만들었네요.
MCP 서버에 필요한 리소스들이 있고
그 도구들도 추가해야 합니다.
보시다시피 파일을 쓰기 위한
도구들을 만들었습니다. 그리고
파일을 읽기 위한 도구도
있을 것 같네요.
여기에 코드를 실행하는 방법과
코드가 어떻게 구현되었는지에 대한
자세한 설명이 있습니다.
Gemini는 MCP에 대해 전혀 모르지만
캐시된 콘텐츠를 보고
구현 방법을 제시할 수 있었습니다.
지금은 테스트하지 않을 건데,
아마 다른 영상을 만들 것 같습니다.
MCP 서버와 MCP가 일반 함수 호출과
어떻게 다른지에 대한 영상이 있습니다.
그래서 링크를
걸어두겠습니다. 관심 있으시다면
꼭 시청해 보세요.
이것이 컨텍스트 캐싱이 무엇이고
어떻게 시작하는지에 대한
간단한 예시였습니다. 구글만이 아닙니다.
Anthropic도 컨텐츠 캐싱 구현을
가지고 있는데, 이를 프롬프트 캐싱이라고
부릅니다. OpenAI도 자체
구현을 가지고 있습니다. 이에 대한
영상을 몇 개 만들었는데,
제가 본 바로는 구글이 OpenAI와
Anthropic에 비해 더 많은 제어 기능을 제공합니다.
이는 매우 중요한
개념이므로 API를 통해
LLM을 사용한다면 반드시 배워야 합니다.
비용을 상당히 줄일 수 있고
경우에 따라서는 지연 시간도
줄일 수 있습니다. 이런 기술적인
콘텐츠가 마음에 드신다면
구독해 주세요.
이 영상이 도움이 되었길 바랍니다.
시청해 주셔서 감사하고 다음 영상에서
만나뵙겠습니다.