LLM은 질문에 답하고, 글을 요약·재작성하고, 코드를 생성하는 등 놀라운 도구다. 하지만 학습(training)으로 배우지 못한 정보는 알지 못한다. RAG(Retrieval-Augmented Generation)는 바로 그 지점을 메운다. LLM이 모르는 정보에 접근할 수 있게 해서 성능을 끌어올리는 접근법이다.

1. RAG가 필요한 이유 — 밴쿠버 호텔 예시
세 가지 질문을 생각해 보자.
- "왜 주말에는 호텔이 비쌀까?" — 상식으로 바로 답할 수 있다. 주말엔 여행객이 많아 객실 경쟁이 심하다.
- "이번 주말 밴쿠버 호텔은 왜 이렇게 비쌀까?" — 추가 정보가 필요하다. 검색해 보면 테일러 스위프트가 그 주말에 공연한다는 사실을 찾을 수 있다.
- "왜 밴쿠버 도심엔 호텔이 더 많지 않을까?" — 도시 개발사·도시계획 같은 전문 정보를 깊이 조사해야 답할 수 있다.
즉, 질문에 답하는 과정은 두 단계로 나뉜다. 먼저 필요한 정보를 수집하고, 그다음 그 정보를 바탕으로 추론해 응답한다. RAG에서는 앞 단계를 Retrieval(검색), 뒤 단계를 Generation(생성)이라고 부른다. 사람이 그렇듯, LLM도 좋은 정보를 검색해 받으면 훨씬 나은 답을 낸다.

2. LLM이 모르는 것들
LLM은 공개 인터넷에서 모은 방대한 데이터로 학습된 수학적 모델이다. 프롬프트를 보낼 때 우리는 질문과 관련된 정보가 학습 데이터에 (가능하면 여러 번) 들어 있기를 기대한다. 하지만 그렇지 못한 경우가 많다.
- 비공개 데이터베이스 — 기업 내부 정보처럼 LLM이 접근할 수 없는 것.
- 접근하기 어려운 정보 — 널리 공개돼 있지 않아 학습에 포함되지 못한 것.
- 실시간 데이터 — LLM은 과거 데이터로 학습되며 자동으로 갱신되지 않는다. 매분 쏟아지는 뉴스는 늘 학습 범위 밖이다.

3. 해결책 — 그냥 프롬프트에 넣기
답은 의외로 단순하다. 프롬프트에 그 정보를 넣으면 된다. RAG의 핵심 아이디어는 LLM에 보내기 전에 프롬프트를 수정할 수 있다는 것이다. 사용자의 원래 질문에 더해, 답하는 데 도움이 되는 정보를 함께 넣는다. 이렇게 만든 것을 augmented prompt(보강된 프롬프트)라고 한다.

4. 정보는 어디서 오나 — Retriever와 Knowledge Base
물론 이 정보는 어딘가에서 검색돼야 한다. 이 과정을 담당하는 구성 요소가 retriever(리트리버)다. retriever는 신뢰할 수 있고 관련성 있으며 때로는 비공개인 정보로 이뤄진 knowledge base(지식 베이스)를 관리한다. RAG 시스템이 프롬프트를 받으면, retriever가 knowledge base에서 가장 관련성 높은 정보를 찾아 LLM에 전달하고, LLM은 그 정보를 활용해 응답한다.

5. 이름의 뜻
이제 Retrieval-Augmented Generation이라는 다소 긴 이름이 이해된다. 결국 하는 일은, knowledge base에서 관련 정보를 먼저 검색(Retrieval)해서 LLM이 텍스트를 생성(Generation)하는 방식을 보강(Augmented)하는 것이다. LLM을 직접 쓰는 것과 RAG의 유일한 차이는 retriever가 추가된다는 점뿐이지만, 이 단순한 추가가 큰 차이를 만든다.

다음 글에서는 이 구성요소들이 실제로 어떻게 맞물려 도는지 — RAG 시스템의 전체 아키텍처와, retriever를 더함으로써 얻는 구체적인 장점들을 살펴본다.
본 이미지들은 DeepLearning.AI의 출처를 밝힙니다.
'AI > RAG' 카테고리의 다른 글
| Metadata Filtering(메타데이터 필터링) (0) | 2026.07.02 |
|---|---|
| Retriever의 구조 (0) | 2026.07.02 |
| LLM의 동작 방식, 환각 발생 원인 (1) | 2026.07.02 |
| RAG 활용 사례 (0) | 2026.07.01 |
| RAG 아키텍처와 장점 (0) | 2026.07.01 |