1편에서 RAG의 세 구성요소 — LLM, knowledge base, retriever — 를 봤다. 이번엔 이들이 어떤 순서로 맞물려 도는지 내부 흐름을 단계별로 뜯어보고, retriever를 더해 얻는 장점을 하나씩 "왜, 어떻게"까지 정리한다.
1. RAG 시스템의 구조
사용자 입장에서 RAG의 경험은 일반 LLM과 똑같다. 프롬프트를 넣으면 응답이 나온다. 차이는 전부 시스템 내부에 있다. RAG 시스템이 프롬프트를 받으면 다음 순서로 처리한다.
- retriever로 라우팅 — 받은 프롬프트를 먼저 retriever로 보낸다.
- knowledge base 질의 — retriever는 knowledge base(유용한 문서들의 데이터베이스)에 질의한다.
- 관련 문서 반환 — 프롬프트와 가장 관련 있다고 판단한 문서를 돌려받는다.
- augmented prompt 구성 — 그 문서의 정보를 원래 프롬프트에 합쳐 보강된 프롬프트를 만든다.
- 생성 — 이 시점부터는 여느 LLM과 같다. augmented prompt를 LLM에 보내 응답을 생성한다.
4단계에서 만들어지는 augmented prompt는 대략 이런 모양이다.


이렇게 만든 augmented prompt를 LLM에 보내면, LLM은 학습에서 배운 지식과 검색된 문서의 추가 맥락을 함께 활용해 답한다. 전체 흐름을 일반 LLM 사용과 나란히 보면 이렇다.

결국 일반 LLM과 RAG의 유일한 차이는 retriever를 거치는 우회 경로 하나다. 그 대가로 약간의 latency(지연)가 붙지만, 응답이 정확하고 최신이며 맥락을 반영할 가능성이 크게 높아진다.
2. 코드로 보는 최소 RAG
세부를 걷어내면 RAG는 retrieve와 generate 두 함수, 그리고 그 사이의 프롬프트 보강으로 요약된다.

프롬프트를 그냥 LLM에 보내면 최신 정보가 없어 부정확할 수 있지만, 검색한 문서를 더한 augmented prompt를 보내면 그 정보를 통합해 정확히 답한다. RAG의 핵심은 이만큼 단순하다 — 프롬프트에 맥락을 더해 LLM이 더 정확히 답하게 하는 것. 이후 편들에서 다룰 내용(검색 방식, 청킹, 벡터 DB, 리랭킹 등)은 전부 "1) 검색 단계를 어떻게 더 잘하느냐"를 파고드는 것이다.
3. RAG의 장점
retriever라는 단순한 추가가 여러 이점을 만든다. 각 장점이 왜, 어떻게 생기는지 함께 본다.

① 없던 정보를 넣는다
회사 정책, 개인 정보, 오늘 아침 헤드라인처럼 원래 LLM이 학습에서 쓸 수 없던 정보를 사용할 수 있게 한다. 이런 정보는 프롬프트에 직접 넣는 것 말고는 LLM에 전달할 방법이 마땅치 않으므로, RAG가 사실상 유일한 공급 경로인 경우가 많다.
② 환각을 줄인다
환각은 보통 LLM이 학습 데이터에서 빠졌거나 드물게만 언급된 주제에 대해 답을 지어낼 때 생긴다. 관련 정보를 프롬프트에 직접 넣어 응답의 근거를 마련(grounding)하면, 일반적이거나 잘못된 텍스트를 만들 가능성이 줄어든다.
③ 최신 상태 유지가 쉽다
모델을 다시 학습시키는 것은 비싸고 오래 걸려서, LLM은 아주 새로운 정보를 따라가기 어렵다. 반면 RAG는 knowledge base의 정보만 갱신하면 된다 — 다른 데이터베이스의 항목을 업데이트하듯이. 변경 사항이 인덱싱되는 즉시 LLM은 새 정보를 바탕으로 답할 수 있다.
④ 출처 인용이 쉬워진다
RAG 시스템은 augmented prompt에 출처(citation) 정보를 함께 넣을 수 있고, LLM은 그 출처를 최종 응답에 포함할 수 있다. 이는 응답에 근거를 줄 뿐 아니라, 사람이 직접 원문을 확인하고 검증할 수 있게 한다.
⑤ 생성에 집중하게 한다
retriever가 방대한 정보를 걸러 가장 중요하고 관련 있는 것만 간결히 제시하므로, LLM은 사실 조사·필터링에 매달리지 않고 좋은 답을 쓰는 일에 집중한다. 각 구성요소가 자신이 가장 잘하는 영역을 맡는 역할 분담이다.

다음 글에서는 RAG가 실제로 어떻게 쓰이는지 — 코드 생성, 사내 챗봇, 전문 지식, 개인화 등 활용 사례를 살펴본다.
'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 |
