Retrieval-Augmented Generation

RAG
완전 가이드

LLM이 오픈북 시험을 보게 하는 기술.
검색으로 지식을 보강해서, 더 정확하고 신뢰할 수 있는 AI 응답을 만듭니다.

1,200+ 2024년 RAG 논문 수
50%+ 검색 최적화만으로 정확도 향상
3세대 Naive → Advanced → Modular
시작하기 전문가 가이드 →

왜 RAG가 필요한가?

LLM은 강력하지만, 혼자서는 해결하기 어려운 근본적인 한계가 있습니다.

할루시네이션

학습 데이터에 없는 내용도 그럴듯하게 지어냅니다. 사실 확인 없이 자신감 있게 틀린 답을 생성하는 것이 LLM의 가장 큰 약점입니다.

지식 단절

학습 데이터의 컷오프 날짜 이후의 정보를 모릅니다. 어제 나온 뉴스, 최신 API 변경사항, 실시간 데이터에 접근할 수 없습니다.

도메인 지식 부족

회사 내부 문서, 의료/법률 전문 지식 등 비공개 데이터에 대해서는 답변할 수 없습니다. 파인튜닝은 비용과 시간이 큽니다.

출처 불투명

답변의 근거를 제시하지 못합니다. "어디서 이 정보를 가져왔나요?"에 답할 수 없어서, 신뢰성 검증이 어렵습니다.

RAG = 이 모든 문제의 해결책

외부 지식을 실시간으로 검색해서 LLM에 전달하면 — 할루시네이션이 줄고, 최신 정보를 반영하며, 출처까지 제공할 수 있습니다.

RAG란 무엇인가?

Retrieval-Augmented Generation — "검색으로 보강된 생성".
LLM이 답변을 만들기 전에 관련 문서를 검색해서 참고하는 방식입니다.

📝

일반 LLM

클로즈드북 시험
머릿속 기억에만 의존

VS
📖

RAG

오픈북 시험
참고 자료를 보면서 답변

핵심 파이프라인

Q
Query
사용자 질문
Retrieve
관련 문서 검색
Augment
프롬프트에 삽입
Generate
LLM 응답 생성
01

임베딩 (Embedding)

텍스트를 숫자 벡터로 변환하는 것. "고양이"와 "cat"은 의미가 비슷하므로 벡터 공간에서 가까이 위치합니다. 이를 통해 키워드가 아닌 의미 기반 검색이 가능해집니다.

고양이
cat
자동차
car
강아지
02

벡터 데이터베이스

임베딩 벡터를 저장하고, 유사도 검색을 빠르게 수행하는 특수 DB. 질문의 벡터와 가장 가까운 문서 벡터를 찾아 반환합니다.

Pinecone, Weaviate, Chroma, Qdrant, pgvector
03

시맨틱 검색

키워드 매칭이 아닌 의미의 유사성으로 검색. "연봉 인상 방법"으로 검색하면 "급여 협상 전략"도 찾을 수 있습니다. 코사인 유사도로 벡터 간 거리를 측정합니다.

"연봉 인상 방법"
급여 협상 전략 0.92
보상 체계 가이드 0.85
회사 복리후생 0.61
원본 논문 Lewis et al. (2020) — "Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks"

RAG-Sequence와 RAG-Token 두 가지 변형을 제안. DPR(Dense Passage Retrieval)로 검색하고 BART로 생성. NeurIPS 2020에서 발표되어 RAG 연구의 시작점이 되었습니다.

RAG의 진화

RAG는 3세대에 걸쳐 발전해 왔습니다. 각 세대가 이전의 한계를 어떻게 극복하는지 살펴봅니다.

2020~2022

Naive RAG

고정된 파이프라인. Query → Retrieve → Generate. 단순하지만 한계가 명확합니다.

Query → Retrieve → Generate
2023~2024

Advanced RAG

검색 전/중/후를 최적화. 쿼리 리라이팅, 하이브리드 검색, 리랭킹 등을 추가합니다.

Query 최적화 → Hybrid Retrieve → Rerank → Generate
2024~

Modular RAG

모듈 단위 조합. 라우터, 평가기, 반복 검색 등을 태스크에 맞게 동적으로 구성합니다.

Router → [동적 모듈 조합] → 자체 평가 → 반복/완료

Naive RAG

가장 기본적인 "Retrieve → Read" 파이프라인. RAG의 출발점이지만, 한계가 분명합니다.

INDEXING PHASE (오프라인) QUERY PHASE (온라인) Documents PDF, DB, Web, API Chunking 고정 크기 분할 Chunk 1 Chunk 2 Chunk N Embedding Model 텍스트 → 벡터 변환 [0.12, -0.45, 0.78, 0.33, -0.91, ...] Vector DB ? User Query 사용자 질문 입력 Query Embedding 질문도 벡터로 변환 Similarity Search 코사인 유사도 Top-K 벡터 검색 Prompt + Context 질문 + 검색 문서 결합 LLM 응답 생성 Response (답변)

Naive RAG의 한계

01

Garbage In, Garbage Out

검색 품질이 낮으면 응답도 함께 망가집니다. 관련 없는 문서가 검색되면 LLM은 그걸 기반으로 엉뚱한 답을 만듭니다.

02

단순한 청킹

고정 크기로 문서를 자르면 문맥이 잘리거나, 하나의 청크에 여러 주제가 섞여 노이즈가 됩니다.

03

무분별한 전달

검색된 문서가 질문과 관련 없어도 그대로 LLM에 전달합니다. 필터링이나 품질 평가가 없습니다.

04

중복/상충 미처리

중복 문서, 서로 모순되는 정보에 대한 처리 로직이 없어서 LLM이 혼란에 빠질 수 있습니다.

Advanced RAG

Naive RAG의 한계를 검색 전/중/후 각 단계에서 체계적으로 보완합니다.

PRE-RETRIEVAL RETRIEVAL POST-RETRIEVAL GENERATE User Query 원본 질문 Query Rewriting 질문 최적화 / 분해 HyDE Multi-Query Optimized Query Hybrid Search Dense (Vector) 시맨틱 유사도 Sparse (BM25) 키워드 매칭 RRF 결합 Top-K 문서 Vector DB + BM25 Index 멀티 인덱스 전략 Post-Processing Reranker Cross-Encoder 재순위화 Compression 관련 부분만 추출 Dedup & Filter 중복 제거, MMR Refined Context Prompt Q + Context LLM 생성 Response 쿼리 최적화 하이브리드 검색 후처리 (Rerank + 압축)

Query Rewriting

사용자 질문을 검색에 유리한 형태로 변환합니다. 구어체 → 검색 쿼리, 복합 질문 → 단일 질문 분리 등.

"우리 회사 휴가 어떻게 쓰는 거야?"
"연차 휴가 사용 절차 및 규정"

HyDE Gao et al., 2022

Hypothetical Document Embeddings — LLM이 먼저 가상의 답변을 생성하고, 그 답변의 임베딩으로 검색합니다. 질문보다 답변이 문서와 더 유사하다는 통찰.

질문 가상 답변 생성 답변 임베딩으로 검색

Query Expansion

하나의 질문을 여러 관점에서 확장해서 검색 범위를 넓힙니다. Multi-Query, Sub-Question Decomposition 등의 기법이 있습니다.

청킹 전략 고도화

고정 크기가 아닌 의미 단위로 문서를 분할합니다.

Recursive 구분자 계층으로 재귀 분할. 가장 안정적 (69% 승률)
Semantic 의미 변화 지점에서 분할. 높은 재현율
Parent-Child 작은 청크로 검색, 큰 청크로 컨텍스트 제공
Sentence Window 문장 단위 검색 + 주변 문장 포함

Contextual Retrieval Anthropic, 2024

각 청크에 문서 수준의 맥락을 접두사로 추가한 뒤 임베딩합니다. "이 청크는 2024년 매출 보고서의 3분기 실적 섹션에서 발췌한 내용입니다" 같은 맥락 정보를 붙여서 검색 정확도를 크게 향상시킵니다.

메타데이터 태깅

문서에 날짜, 출처, 카테고리, 작성자 등 부가 정보를 부착합니다. 필터링과 결합하면 검색 정밀도가 크게 올라갑니다.

Fine-tuned Embedding

도메인 특화 데이터로 임베딩 모델을 추가 학습합니다. 일반 모델 대비 12~30% 성능 향상이 보고됩니다. 의료, 법률, 금융 등 전문 도메인에서 효과가 큽니다.

Multi-Index 전략

요약 인덱스, 원문 인덱스, 메타데이터 인덱스 등을 계층화합니다. 요약으로 먼저 관련 문서를 좁히고, 원문에서 세부 정보를 가져오는 방식.

Late Interaction (ColBERT)

토큰별 임베딩을 저장하고 MaxSim 연산으로 유사도를 계산합니다. Bi-Encoder의 속도와 Cross-Encoder의 정확도 사이에서 좋은 균형을 잡습니다. ColPali/ColQwen은 이를 멀티모달로 확장.

문서 압축 (Compression)

검색된 문서에서 관련 있는 부분만 추출해서 컨텍스트 윈도우를 절약합니다. LongLLMLingua 등의 방식으로 핵심 문장만 남깁니다.

중복 제거 및 필터링

유사도 임계값, MMR(Maximal Marginal Relevance) 등으로 중복 문서를 제거하고 다양성을 확보합니다.

Modular RAG

파이프라인을 고정된 순서가 아닌 모듈 단위로 분리해서 태스크에 맞게 조합하는 패러다임입니다.

Query 사용자 질문 Router 질문 유형 판단 경로 결정 Direct LLM 검색 불필요 → 바로 생성 단순 질문 Retrieval Multi-Source 검색 Vector / Web / SQL Judge 충분한가? 품질 평가 충분 부족 → 재검색 Web Search 보조 소스 모호 Generate LLM 응답 생성 + 출처 첨부 Self Eval 품질 OK? Response 재생성 복잡 질문 Iterative Retrieval + Memory 멀티스텝 검색-생성 반복 통과 경로 재시도 루프 보정 경로
🔀

Router

질문 유형을 판단해서 검색이 필요한지, 어떤 소스를 쓸지 결정합니다. 단순 질문은 바로 LLM 생성으로.

⚖️

Judge / Critic

검색 결과가 충분한지 평가합니다. 부족하면 재검색을 트리거하거나 다른 소스로 전환합니다.

🧠

Adaptive Retrieval

LLM이 스스로 "지금 검색이 필요한 시점인가?"를 판단합니다. 불필요한 검색을 줄여 효율성을 높입니다.

🔗

Multi-Source

벡터 DB, 웹 검색, SQL DB, API 등 여러 소스를 동적으로 선택합니다.

🔄

Iterative Retrieval

한 번이 아니라 여러 차례 검색-생성을 반복하며 답변을 정제합니다.

💾

Memory

이전 대화나 검색 이력을 활용해서 맥락을 유지합니다.

대표 구현 패턴

Self-RAG

Asai et al., ICLR 2024

LLM이 Reflection Token으로 검색 필요 여부, 문서 관련성, 응답 품질을 자체 판단합니다.

질문 입력
[Retrieve] 토큰?
Yes
검색 수행
[IsRel] 관련?
생성
[IsSup] 근거?
No
바로 생성
핵심 통찰: 모든 질문에 검색을 할 필요 없이, LLM이 필요할 때만 검색합니다. 불필요한 검색으로 인한 노이즈를 줄입니다.

CRAG (Corrective RAG)

Yan et al., 2024

검색 결과를 Correct / Incorrect / Ambiguous로 분류 후, 각각 다른 보정 경로를 선택합니다.

검색 수행
Retrieval Evaluator
Correct

문서 정제 후 생성

Incorrect

웹 검색으로 대체

Ambiguous

문서 + 웹 검색 결합

성과: Self-CRAG는 벤치마크에서 정확도 19~37% 향상을 보고했습니다.

Graph RAG

Microsoft, 2024

지식 그래프를 구축해서 엔티티 간 관계 기반 검색을 수행합니다. 여러 문서에 흩어진 정보를 연결하는 "글로벌 질문"에 강점.

회사A 기술X 시장Y 제품B 경쟁사C
핵심: 계층적 커뮤니티 요약을 생성해서, "이 산업의 전반적 트렌드는?" 같은 넓은 질문에도 답할 수 있습니다.

RAPTOR

Sarthi et al., ICLR 2024

재귀적 트리 요약 — 문서 청크를 클러스터링하고 요약하는 과정을 반복해서 다단계 추상화 트리를 만듭니다.

전체 요약
클러스터 요약 A
클러스터 요약 B
청크 1
청크 2
청크 3
청크 4
성과: QuALITY 벤치마크에서 GPT-4 기반 +20% 향상. 세부 질문은 리프 노드에서, 요약 질문은 상위 노드에서 검색합니다.

Agentic RAG

AI Agent가 검색을 도구로 사용하면서 계획-실행-반성 루프를 돌리는 방식입니다.
복잡한 멀티스텝 질문에 효과적입니다.

AGENT ORCHESTRATOR Plan 하위 작업 분해 Reason 판단 & 선택 Reflect 자체 품질 평가 U Query 복잡한 질문 Response 최종 답변 + 출처 완료 TOOLS Vector Search 벡터 DB 검색 시맨틱 매칭 Web Search 인터넷 검색 실시간 정보 SQL Query 구조화 데이터 테이블 조회 Code Exec 코드 실행 계산 & 분석 API Call 외부 서비스 데이터 연동 Memory 대화 이력 검색 캐시 / 중간 결과 Iteration Loop Step 1: 정보 수집 Step 2: 분석 & 추론 Step N: 답변 정제 부족 시 재실행

Multi-Agent 아키텍처

검색 전문 에이전트, 요약 에이전트, 평가 에이전트 등 역할별로 분리된 에이전트들이 협력합니다. 모달리티별 전문가 에이전트(텍스트, 이미지, 테이블 등)를 둘 수도 있습니다.

Tool Use

벡터 검색 외에도 웹 검색, SQL 쿼리, 계산기, 코드 실행 등 다양한 도구를 상황에 맞게 선택해서 사용합니다.

Adaptive Retrieval

모든 질문에 검색하지 않습니다. 질문 복잡도를 판단해서 단순 질문은 즉시 답변, 복잡한 질문만 멀티스텝 검색을 수행합니다.

"파이썬이 뭐야?" → 바로 답변
"우리 회사의 3Q 매출을 작년 동기 대비 분석해줘" → 멀티스텝 검색

Speculative RAG

추가 기법

작은 전문가 모델이 여러 개의 초안(draft)을 병렬로 생성하고, 큰 범용 모델이 이를 검증하는 방식. Draft-then-Verify 패턴으로 정확도와 지연시간 모두 개선합니다.

RAG 평가하기

RAG 시스템의 품질을 어떻게 측정할까요? 검색과 생성을 분리해서 각각 평가합니다.

F

Faithfulness

응답이 검색된 문서에 충실한가? 지어낸 내용 없이 문서 내용만으로 답변하는지 측정합니다.

충실도 = 문서로 뒷받침되는 주장 수 / 전체 주장 수
R

Answer Relevancy

응답이 질문에 적절한가? 질문과 관련 없는 내용이 답변에 포함되지 않았는지 평가합니다.

관련도 = 응답에서 생성된 질문과 원래 질문의 유사도 평균
P

Context Precision

검색된 문서가 정밀한가? 관련 없는 문서가 너무 많이 포함되지 않았는지 확인합니다.

정밀도 = 관련 문서 수 / 검색된 전체 문서 수
C

Context Recall

필요한 문서를 빠짐없이 검색했는가? 정답에 필요한 정보가 모두 검색 결과에 포함되었는지 봅니다.

재현율 = 검색된 관련 문서 수 / 전체 관련 문서 수

평가 도구

RAGAS

가장 대표적인 오픈소스 평가 프레임워크. Faithfulness, Relevancy, Context Precision/Recall 등 핵심 메트릭을 자동으로 계산합니다.

오픈소스

DeepEval

CI/CD 파이프라인에 통합 가능한 유닛 테스트 스타일 평가. pytest처럼 RAG 평가를 자동화합니다.

CI/CD 통합

TruLens

프로덕션 환경에서 실시간 모니터링. 피드백 함수로 지속적인 품질 추적이 가능합니다.

프로덕션 모니터링

RAGBench

12개 도메인에 걸친 100K+ 예제 벤치마크. 산업별 RAG 성능 비교에 활용됩니다.

벤치마크

실전 가이드

RAG 시스템을 실무에 적용할 때의 권장 사항과 로드맵입니다.

추천 프로덕션 스택

Application
LangChain / LlamaIndex / Custom
LLM
Claude / GPT-4 / Gemini / Open-source
Reranker
Cohere Rerank / bge-reranker / FlashRank
Embedding
Cohere embed-v4 / OpenAI text-embedding-3 / BGE / E5
Vector DB
Pinecone / Weaviate / Qdrant / pgvector / Chroma

단계별 도입 로드맵

1

MVP: Naive RAG

기본 파이프라인 구축. 고정 크기 청킹 + 단순 벡터 검색 + LLM 생성. 빠르게 가치를 증명하는 것이 목표.

2

품질 향상: Hybrid + Reranker

BM25 + Dense 하이브리드 검색 도입. Reranker 추가. 이것만으로도 상당한 품질 향상을 볼 수 있습니다.

3

청킹 최적화

Recursive/Semantic 청킹 적용. Contextual Retrieval로 청크에 맥락 추가. 메타데이터 태깅.

4

평가 체계 구축

RAGAS 등으로 자동 평가 파이프라인 구축. 정량적 메트릭으로 개선 효과를 측정합니다.

5

고도화: Modular / Agentic

멀티스텝 질문, 멀티소스 시나리오가 필요할 때. 라우터, 반복 검색, 에이전트 패턴 도입.

청킹 전략 비교

전략 방식 장점 단점 추천 상황
Fixed-size 고정 토큰 수로 분할 구현 간단, 예측 가능 문맥 단절 빠른 프로토타입
Recursive 구분자 계층으로 재귀 분할 안정적 (69% 승률) 구분자 설정 필요 범용 (기본 추천)
Semantic 의미 변화 지점에서 분할 높은 재현율 조각이 너무 작을 수 있음 다주제 문서
Parent-Child 작은 청크로 검색, 큰 청크 반환 정밀 검색 + 풍부한 컨텍스트 인덱스 복잡도 증가 긴 문서, 보고서
Sentence Window 문장 단위 + 주변 문장 문장 수준 정밀도 짧은 문서엔 비효율 FAQ, 매뉴얼
💡

256~512 토큰이 최적

청크 크기는 256~512 토큰이 가장 안정적. 너무 작으면 맥락 부족, 너무 크면 노이즈 증가.

🎯

검색 최적화가 먼저

LLM을 바꾸기 전에 검색 품질을 올리세요. 같은 모델에서 검색만 개선해도 50%+ 정확도 향상 가능.

📊

측정 없이 개선 없음

평가 파이프라인을 먼저 만들고, 변경할 때마다 메트릭을 비교하세요. 감이 아닌 데이터로 결정.

🔄

RAG는 제품이다

한 번 만들고 끝이 아닙니다. KPI를 설정하고 지속적으로 개선하세요. 문서 업데이트, 모델 교체, 파이프라인 조정.

주요 논문 타임라인

RAG 연구의 핵심 논문들을 시간순으로 정리했습니다.

2020

RAG: Retrieval-Augmented Generation

Lewis et al. — NeurIPS 2020

DPR + BART 결합. RAG-Sequence, RAG-Token 두 변형 제안. RAG 연구의 시작점.

2020

Dense Passage Retrieval (DPR)

Karpukhin et al. — EMNLP 2020

밀집 벡터 기반 문서 검색의 표준. 기존 TF-IDF/BM25를 뛰어넘는 시맨틱 검색 실현.

2022

HyDE: Hypothetical Document Embeddings

Gao et al., 2022

질문 대신 가상 답변을 생성해서 검색. Zero-shot에서도 Fine-tuned 모델 수준의 검색 성능 달성.

2023

Self-RAG: Self-Reflective RAG

Asai et al. — ICLR 2024 (Oral)

Reflection Token으로 검색 필요 여부, 문서 관련성, 응답 품질을 LLM이 자체 판단.

2024

CRAG: Corrective RAG

Yan et al., 2024

검색 결과를 Correct/Incorrect/Ambiguous로 분류 후 보정 경로 선택. 19~37% 정확도 향상.

2024

RAPTOR: Recursive Abstractive Processing

Sarthi et al. — ICLR 2024

재귀적 클러스터링 + 요약으로 다단계 추상화 트리 구축. QuALITY에서 +20% 향상.

2024

GraphRAG

Microsoft Research, 2024

지식 그래프 + 계층적 커뮤니티 요약. 여러 문서에 걸친 글로벌 질문에 강점.

2024

Contextual Retrieval

Anthropic, 2024

청크에 문서 수준 맥락을 접두사로 추가. BM25와 결합 시 검색 실패율 67% 감소.

2024

Adaptive RAG

Jeong et al., 2024

질문 복잡도에 따라 No Retrieval / Single-step / Multi-step을 동적으로 선택.

2024

Late Chunking

Jina AI, 2024

전체 문서를 먼저 임베딩 → 토큰 벡터에서 청크 추출. 추가 LLM 비용 없이 문맥 보존. jina-v3에서 API 지원.

2024

RAFT (Retrieval Augmented Fine-Tuning)

UC Berkeley, 2024

RAG + Fine-tuning 결합. 방해 문서를 무시하도록 학습. 전문 도메인에서 순수 RAG보다 높은 성능.

2025

SimRAG (Self-Improving RAG)

NAACL 2025

비라벨 코퍼스에서 자체 QA 쌍 생성 + self-training. 라벨링 비용 없이 도메인 적응. 11개 데이터셋 검증.

2025

MCP (Model Context Protocol)

Anthropic, 2025

AI 모델과 외부 도구/데이터를 연결하는 오픈 표준 프로토콜. Agentic RAG의 도구 통합을 표준화.

2026

Context Engineering & Knowledge Runtime

Industry Paradigm Shift

RAG → Context Engineering으로 패러다임 확장. RAG(정적 지식) + Memory(동적 이력) + MCP(도구 연결)를 통합하는 Knowledge Runtime 개념 등장.