RAG(검색 확장 생성)을 제대로 이해하기: 작동 원리, 필요성, AI 에이전트와의 관계
요약
RAG(Retrieval-Augmented Generation)는 LLM이 학습 시점 이후의 최신 정보나 사내 비공개 자료를 활용하여 답변할 수 있게 돕는 메커니즘입니다. 이는 질문과 함께 외부 자료를 검색하여 전달함으로써, AI가 환각 현상을 줄이고 근거 기반의 답변을 하도록 만듭니다.
핵심 포인트
- RAG는 LLM에 지식을 '기억'시키는 것이 아니라, 매번 외부 자료를 '제공'하는 방식입니다.
- 긴 문서를 작은 단위(청크)로 나누고, 이를 임베딩하여 벡터로 변환합니다.
- 벡터 데이터베이스는 의미적으로 유사한 청크를 검색하는 데 특화되어 있습니다.
- RAG는 AI가 최신 정보나 사내 자료에 근거하여 답변하게 하는 핵심 기술입니다.
AI 에이전트에 대해 이야기하다 보면 'RAG'라는 단어가 자주 등장합니다. 하지만 '어느 정도 검색하는 기능?' 정도로만 이해하고 끝내는 분들이 많지 않을까 생각합니다 (저도 그랬습니다).
본 글에서는 다음 내용을 그림을 사용해 쉽게 설명합니다.
- RAG를 한마디로 정의하면 무엇인지
- 왜 RAG가 필요한지
- RAG 내부에서 어떤 일이 일어나는지
- AI 에이전트와 RAG의 관계
- RAG가 필요하지 않은 경우
직접 따라 해보는 실습(Hands-on)은 없습니다. 시스템을 이해하는 것이 목적의 읽기 자료입니다.
RAG는 'AI에게 답을 시키기 전에, 자료를 조사하여 그 내용을 함께 전달하는' 메커니즘입니다.
RAG는 Retrieval-Augmented Generation의 약자로, 한국어로는 '검색 확장 생성'이라고 불립니다.
| 영어 | 의미 | 이 시스템에서의 역할 |
|---|---|---|
| Retrieval | 검색・取り出し (검색/추출) | 관련된 자료를 찾아오는 것 |
| ... | ||
| AI(대규모 언어 모델, LLM)는 평소에 '외부 반입 금지 시험'을 치르고 있는 상태입니다. 학습했을 때 기억한 지식만으로 답합니다. |
RAG를 사용하면 '외부 반입 가능 시험'이 됩니다. 문제가 (질문이) 오면, 먼저 교과서(자료)의 해당 페이지를 찾아보고, 그 페이지를 보면서 답하게 합니다.
AI에게는 서툰 점 3가지가 있습니다.
- AI는 특정 시점까지의 데이터로 학습합니다. 그 이후에 일어난 일(새로운 제품, 법률 개정, 오늘의 뉴스 등)은 알지 못합니다.
- 사내 매뉴얼, 자사 제품 사양, 과거 회의록 등은 인터넷에 공개되지 않기 때문에 AI가 학습하지 못했습니다.
- AI는 '모릅니다'라고 말하는 것이 서툴러서, 모르는 것임에도 자연스러운 문장으로 답해버릴 때가 있습니다. 이를 **환각(Hallucination)**이라고 부릅니다.
RAG는 이 세 가지 문제를 한 번에 해결합니다. AI가 모르는 정보를 질문할 때마다 외부에서 제공함으로써, 새로운 정보나 사내 정보에 대해서도 근거를 가지고 답변할 수 있게 됩니다.
'AI에게 기억시키는 것'이 아니라는 점이 핵심입니다.
RAG에서는 AI 자체가 아무것도 변하지 않습니다. 매번 질문과 함께 자료를 전달해 줄 뿐입니다. 자료만 업데이트하면, 다음 질문부터 즉시 새로운 내용으로 답변할 수 있습니다.
RAG는 **준비(미리 해두는 것)**와 **질문할 때(매번 하는 것)**의 2단계로 나뉩니다.
순서대로 살펴보겠습니다.
긴 자료를 그대로 다루면 '어디에 답이 쓰여 있는지' 찾기 어렵습니다. 그래서 자료를 수백 자 정도의 작은 덩어리로 나눕니다. 이 덩어리를 **청크(Chunk)**라고 부릅니다.
취업 규칙 (전체 30페이지)
↓ 분할
[청크1] 제1조 목적 ……
...
본문의 내용을 포스트잇에 주제별로 하나씩 적어 나가는 이미지를 생각하시면 됩니다.
다음으로, 각 청크를 **임베딩(Embedding)**이라는 방법으로 숫자의 배열로 바꿉니다. 이 숫자 배열을 **벡터(Vector)**라고 부릅니다.
어렵게 들리지만, 하는 일은 **'문장의 의미를 지도 위의 위치에 치환하는 것'**입니다.
휴가 이야기 ←────────────────→ 업무 이야기
제도 이야기 ● 유급 휴가 일수
● 휴가 신청 방법
...
의미가 가까운 문장일수록, 지도 위에서 가까운 위치에 놓이게 됩니다. '유급 휴가 일수'와 '휴가 신청 방법'은 가깝고, '경비 정산 규칙'은 멀리 배치되는 식입니다.
실제 지도는 2차원이 아니라 수백~수천 차원이라는 인간이 상상할 수 없는 공간이지만, 생각하는 방식은 같습니다.
숫자로 만든 청크를 **벡터 데이터베이스(Vector Database)**에 저장합니다. 벡터 데이터베이스는 '이 위치와 가까운 것을 찾아줘'라는 검색에 특화된 데이터베이스입니다.
질문도 숫자로 만들기: 사용자의 질문을 자료와 같은 방법으로 '의미 지도'의 위치로 치환합니다.
- 가까운 자료 찾기: 벡터 데이터베이스에서, 질문 위치와 가까운 청크를 몇 개 가져옵니다.
- AI에게 전달하기:
다음 자료만을 참고하여 질문에 답해 주세요.
자료에 쓰여 있지 않은 내용은 '모릅니다'라고 답해 주세요.
【자료1】제15조(연차 유급 휴가) 입사일로부터 6개월 계속 근무 시……10일을 부여한다.
...
RAG의 정체는 이 '자료를 첨부한 요청문'을 자동으로 만들어내는 시스템이라고 생각하면 이해하기 쉽습니다.
RAG의 검색은 일반적인 키워드 검색과는 조금 다릅니다.
| 키워드 검색 | 의미로 찾기 (벡터 검색) |
|---|---|
| 찾는 방법 | 같은 단어가 들어있는가 |
| '유급은 며칠?'에 '연차 유급 휴가'를 찾을 수 있는가 | '유급'이 포함되어 있으면 찾을 수 있다 |
| '쉬는 날은 며칠 받을 수 있어?'에 '연차 유급 휴가'를 찾을 수 있는가 | '휴식'이라는 단어가 없으면 찾기 어렵다 |
| 의미가 비슷해서 찾을 수 있다 |
| 어려움 | 말 바꾸기/표기 오류 | 모델 번호나 에러 코드 등, 글자 그대로 일치해야 하는 것 |
사용자는 자료와 같은 단어로 질문해 줄 거라고는 확신할 수 없습니다. '휴식', '휴가', '유급', '연휴'와 같은 말 바꾸기에도 강한 것이 의미로 찾는 검색의 장점입니다.
반대로, ERR-1234 와 같은 에러 코드를 찾는 것은 키워드 검색이 더 능숙합니다. 따라서 실제 서비스에서는 두 가지를 조합하는 (하이브리드 검색) 경우도 많습니다.
AI 에이전트는 목적을 달성하기 위해 스스로 생각하고 도구(Tool)를 사용하며 작업을 진행하는 AI입니다. RAG는 그 도구 중 하나인 '자료를 조사하는 도구' 로 사용됩니다.
에이전트가 '출장비 상한액은 얼마였지?'라고 생각했을 때, RAG로 사내 규정을 조사한다는 쓰임새입니다.
최근에는 에이전트가 스스로 '무엇을, 어떻게 조사할지'를 결정하는 사용법이 늘어나고 있습니다. 이를 에이전트형 RAG (Agentic RAG) 라고 부르기도 합니다.
| 일반적인 RAG | 에이전트형 RAG |
|---|---|
| 검색 여부 | 매번, 반드시 검색한다 |
| ... | |
| 예를 들어 '작년과 올해로 출장 규정은 무엇이 바뀌었어?'라는 질문은 일반적인 RAG로는 한 번의 검색으로는 제대로 답하기 어렵습니다. 에이전트형 RAG라면, '작년 규정을 조사 → 올해 규정을 조사 → 비교'와 같이 스스로 순서를 짜서 조사합니다. |
'에이전트'와 'RAG'는 별개의 것이며, 조합해서 사용하는 것입니다.
- RAG: AI에게 자료를 전달하는 구조/원리 - 에이전트: 도구를 사용하며 스스로 작업을 진행하는 AI의 활용 방식
에이전트가 RAG를 도구로 사용하는 관계입니다.
RAG는 편리하지만, 항상 필요한 것은 아닙니다.
최근 AI는 한 번에 읽을 수 있는 양 (컨텍스트 윈도우)가 매우 커지고 있습니다. 모델에 따라서는 책 몇 권 분량의 문서를 한 번에 읽을 수 있습니다.
자료가 몇 페이지에서 수십 페이지 정도라면, 굳이 작게 나누어 검색하지 않아도 자료를 전부 모아서 AI에게 전달하는 것이 더 간단하고 누락되는 부분이 없습니다.
그럼에도 RAG가 사용되는 것은 다음과 같은 이유 때문입니다.
- 자료가 너무 많아서 전부 전달할 수 없을 때 (사내 문서 전체 등)
- 매번 전부 전달하면 비용과 시간이 많이 들 때
- 자료가 많을수록 AI가 중요한 부분을 놓치기 쉬워질 때
| 방법 | 하는 일 | 적합한 경우 |
|---|---|
| 전부 전달하기 | 자료를 모아서 AI에게 전달한다 | 자료가 적을 때 |
| ... |
'AI에게 사내 지식을 기억하게 하고 싶다'고 할 때, 처음에 떠오르는 것은 파인튜닝 (추가 학습)일 수 있습니다. 하지만 지식을 추가하는 목적이라면, 대부분의 경우 RAG가 더 적합합니다.
- 자료를 업데이트하면 바로 답변에 반영된다
- 답변의 근거(어떤 자료인지)를 제시할 수 있다
- AI 자체를 학습시키는 것보다 번거로함과 비용이 작다
| 오해 | 실제 |
|---|---|
| RAG를 사용하면 AI가 똑똑해진다 | AI 자체는 변하지 않는다. 매번 자료를 전달하고 있을 뿐이다 |
| ... | |
| 직접 RAG를 만들어보고 싶다면, 관리형 서비스를 사용하는 것이 간편합니다. 예를 들어 Cloudflare에는 다음 서비스가 있습니다. |
- AI Search (구 AutoRAG): 문서를 넣기만 하면 분할, 수치화(임베딩), 검색, 답변까지 한 번에 처리해 줍니다. -
Vectorize: 벡터 데이터베이스입니다. 직접 RAG 시스템을 구축할 때 사용합니다.
Cloudflare의 전체적인 구조는 이전 글에서 소개했습니다.
- RAG란 'AI가 답을 내기 전에 자료를 검색하여 함께 제공하는' 메커니즘입니다. 마치 참고 자료를 가져와서 테스트하는 것과 같습니다. -
AI가 **모르는 것(새로운 정보나 사내 정보)**에 대해서도, 근거를 가지고 답변할 수 있게 됩니다. -
이 시스템은 **준비 단계(분할 → 수치화 → 저장)**와 **질문 시 단계(검색 → 제공 → 답변)**의 2단계로 이루어져 있습니다. '의미로 검색'하기 때문에 질문을 다르게 바꿔서 해도 강합니다. - AI 에이전트에게 RAG는 하나의 조사 도구입니다. 최근에는 에이전트가 스스로 여러 번 조사하는 에이전트형 RAG도 늘어나고 있습니다. - 자료가 적다면 전부 제공하면 되고, 항상 변하는 데이터라면 툴 연동 등 활용 구분이 중요합니다.
| 용어 | 의미 |
|---|---|
| LLM | 대규모 언어 모델(Large Language Model). ChatGPT나 Claude의 핵심이 되는 AI |
| ... |
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기