
"몸이 아프다" 하면 병원을 가죠.
기침이랑 열이 난다 → 내과
귀가 좀 아프다 → 이비인후과
충치 때문에 아프다 → 치과
넘어져서 골절됐다 → 정형외과
증상에 따라 우리는 다른 원을 찾아갑니다.
이번에 만들어본 토이 프로젝트도 똑같은 구조입니다!
영화를 주제로 질문이 들어오면,
AI가 자동으로 질문 유형을 판단해서
네 가지 처리 방식 중 하나로 보내주는 구조예요.
그 네 가지 중 오늘 집중적으로 다룰 건 RAG입니다!
지금부터 알아보겠습니다!
1️⃣ RAG가 뭔가요?
Retrieval-Augmented Generation의 줄임말로,
관련 문서를 먼저 검색해온 뒤, 그 내용을 바탕으로 AI가 답변을 생성하는 방식
🤷♂️ 그럼, ChatGPT나 Cluade랑 똑같은 거 아닌가? 하는 생각이 들 수도 있지만,,,
아닙니다!
위와 같은 LLM은 학습 데이터를 기반으로 답변을 하기 때문에,
학습 데이터에 없는 정보는 그럴 듯하게 지어내서 답을 제공해주는 경우도 있습니다..
RAG는 이 할루시네이션 문제를 이렇게 해결합니다!
➡️ 답하기 전에 먼저 관련 문서를 찾고, 그 문서를 참고해서 답하자.
얼마나 똑똑하게요,,, 이 녀석은 헛소리 하지 않는다는 뜻이죠.

크게 두 단계로 나뉩니다.
- Retrieval (검색) : 사용자 질문과 관련된 문서 조각을 벡터 DB에서 꺼내온다.
- Generation (생성) : 꺼내온 문서를 context로 넣어서 LLM이 답변을 만든다.
이러한 단계를 통해 신뢰할 수 있는 답변을 사용자에게 제공하게 됩니다!
다음으로,
RAG의 흐름에 대해 한 번 살펴볼까요?
2️⃣ RAG 흐름 살펴보기
✨ 1단계 : 문서 준비 · 청킹
AI가 참고할 문서를 준비하는 단계입니다!
PDF, 웹페이지, DB 등 다양한 소스에서 텍스트를 가져온 뒤, 이를 적당한 크기로 잘라냅니다.
이 과정을 청킹(Chunking) 이라고 합니다!
텍스트를 자를 때,
너무 길면 하나의 벡터에 너무 많은 의미가 섞여 핵심을 잃고,
너무 짧으면 문장이 끊겨서 맥락이 사라지기 때문에
적절한 단위로 나누는 게 중요합니다.
🤖 실무에서는 보통100~500 토큰 단위로 자르고, 청크 간에 약간 겹치게 설정해서 문장이 끊기는 걸 방지하기도 해요!
✨ 2단계 : 임베딩 · 벡터 저장
잘라낸 텍스트 조각들을 숫자 벡터로 변환해야 합니다.
이 과정을 임베딩(Embedding) 이라고 합니다!
의미가 비슷한 텍스트는 벡터 공간에서 가까이 위치하게 되는데,
변환된 벡터는 Vector DB에 저장해두고, 나중에 빠르게 검색할 수 있도록 준비합니다.

✨ 3단계 : 검색
사용자의 질문이 들어오면,
그 질문도 동일한 방식으로 벡터로 변환합니다.
그리고 Vector DB에서 이 벡터와 가장 유사한 문서 조각들을 찾아냅니다.
이 과정이 바로 RAG의 "R"을 담당하고 있는 Retrieval 검색입니다!
✨ 4단계 : 생성
검색된 문서 조각들을 사용자의 질문과 함께 LLM에게 전달합니다.
LLM은 이 자료를 바탕으로 답변을 생성하게 됩니다!
이 과정이 바로 RAG의 "G"를 담당하고 있는 Generation 생성입니다!
무엇이든 아는 척 답하는 AI가 아니라,
관련 문서를 찾아보고 그 범위 안에서만 답하게 만드는 것!
그것이 바로 RAG의 핵심입니다.
다음 글에서는 텍스트가 아닌 이미지를 이해하는 AI, VLM을 다루도록 하겠습니다!
이상 끝!
'🤖 AI' 카테고리의 다른 글
| [토이 PJT #1] VLM이란? - 이미지를 이해하는 AI 만들기 (0) | 2026.06.26 |
|---|---|
| [Basic] Vision 기초 (0) | 2026.02.23 |
| [Basic] Deep Learning 기본 (2) | 2026.02.20 |
| [개발 환경] Conda와 Venv 차이를 아시나요? (3) | 2026.01.07 |