홍드로이드의 야매코딩

RAG가 뭐길래? 개념부터 직접 만들기까지 (초보 가이드) 본문

AI & Vibe Coding

RAG가 뭐길래? 개념부터 직접 만들기까지 (초보 가이드)

홍드로이드 2026. 6. 29. 12:04

 

ChatGPT한테 "우리 회사 내부 문서 기반으로 답해줘"라고 하면 못 합니다. 모르니까요. 그런데 요즘 AI 서비스들은 어떻게 자기 데이터로 척척 답할까요? 답은 RAG입니다. 이 글에서 RAG가 뭔지 개념부터, 초보가 직접 만드는 법까지 정리합니다.

📌 이 글에서 얻어갈 것
✓ RAG가 뭔지 한 문장으로 + 왜 등장했나
✓ LLM의 3대 한계를 RAG가 어떻게 보완하는지
✓ 작동 원리 — 인덱싱 · 검색 · 생성 3단계
✓ 핵심 부품(임베딩·벡터DB·청킹)과 직접 만드는 법

RAG가 뭐야? — 한 문장 정의

RAG(Retrieval-Augmented Generation, 검색증강생성)는 LLM을 외부 지식(회사 문서·DB 등)에 연결해, 답변 시점에 관련 정보를 검색해서 반영하는 기법입니다. 핵심은 재학습(파인튜닝)이 필요 없다는 것 — 모델을 다시 훈련시키지 않고, 그때그때 자료를 "찾아서 붙여주는" 방식입니다.

📖 RAG는 2020년 Lewis 등의 논문(arXiv:2005.11401, NeurIPS 2020)에서 처음 제안됐습니다.
"LLM은 지식을 파라미터에 저장하지만, 그걸 정확히 꺼내 쓰는 능력은 제한적"이라는 문제의식에서 출발 — 그래서 외부 지식을 검색해 보완하자는 아이디어입니다.

왜 필요해? — LLM의 3대 한계

똑똑한 LLM도 세 가지 결정적 약점이 있습니다. RAG는 이걸 정확히 메웁니다.

① 지식 컷오프
학습 시점 이후 정보를 모름 → 옛날 답변
실시간 외부 데이터 연결 → 최신 정보 반영
② 환각(Hallucination)
그럴듯하지만 틀린 답을 지어냄
답을 출처에 앵커링 → 환각 감소
③ 비공개·도메인 데이터
사내 문서·실시간 데이터 접근 불가
내 데이터에 구조화된 접근 제공
⚠️ 오해 주의

RAG는 환각을 줄이지만 완전히 없애지는 못합니다. 검색된 자료가 틀리거나 부족하면 여전히 잘못된 답이 나올 수 있어요. "RAG = 환각 0"은 과장입니다.

어떻게 작동해? — 인덱싱·검색·생성

이름 그대로 검색(Retrieval) → 증강(Augment) → 생성(Generation)입니다. 실무에선 3단계로 정리합니다.

1
인덱싱 (준비, 1회성)
문서를 청킹(잘게 나눔) → 임베딩(벡터로 변환) → 벡터 DB에 저장. 미리 자료를 검색 가능한 형태로 만들어 두는 단계.
2
검색 (Retrieval)
사용자 질문을 같은 방식으로 임베딩 → 벡터 DB에서 의미가 가까운 청크를 유사도 검색으로 찾음.
3
생성 (Generation)
검색된 자료(context)를 질문과 함께 프롬프트에 증강해 LLM에 전달 → LLM이 그 자료에 근거해 답변 생성.

핵심 부품 3가지

부품 역할
임베딩 모델 텍스트를 고차원 벡터로 변환. 의미가 비슷하면 벡터도 가까이 위치.
벡터 DB 임베딩을 저장·색인해 의미 기반 유사도 검색을 가능하게.
청킹 긴 문서를 작은 조각으로 분할. 검색 품질을 좌우하는 핵심.
💡 청킹의 trade-off (RAG 성패의 갈림길)

청크가 너무 크면 무관한 노이즈가 섞이고, 너무 작으면 필요한 정보가 잘려 환각으로 이어집니다. 일반적 경향으로 단답형은 64~128 토큰, 넓은 문맥이 필요하면 512~1,024 토큰이 권장되지만 — 정답은 없고 데이터에 따라 실험이 필요합니다.

초보자, 직접 만들어보기 — LangChain

바닥부터 짤 필요 없습니다. LangChain 같은 도구가 RAG 파이프라인을 표준 부품으로 제공합니다.

# 인덱싱 (준비)
Load 문서 불러오기 → Split 청킹 → Embed 임베딩 → Store 벡터DB 저장
# 런타임 (질문할 때)
Retrieval 관련 청크 검색 → Generation LLM 답변 생성

각 단계가 LangChain의 컴포넌트(Document loader, Text splitter, Embeddings, VectorStore, Retriever)로 1:1 대응됩니다. 개념(인덱싱·검색·생성)만 이해하면, 도구는 그걸 코드로 옮겨주는 역할일 뿐이에요.

자주 묻는 질문 (FAQ)

Q. RAG랑 파인튜닝, 뭐가 달라요?

파인튜닝은 모델 자체를 다시 훈련시키는 것(비싸고 느림). RAG는 모델은 그대로 두고 자료를 찾아 붙여주는 방식(빠르고 유연, 자료만 갱신하면 됨). 최신·비공개 데이터엔 RAG가 실용적입니다.

Q. RAG 쓰면 환각이 사라지나요?

아니요. 줄어들 뿐입니다. 검색이 엉뚱한 자료를 가져오면 답도 틀립니다. 그래서 "검색 품질"과 "청킹"이 RAG의 핵심 승부처예요.

Q. 초보가 만들려면 뭐부터?

LangChain 공식 튜토리얼로 "문서 1개 → 질문하기" 미니 RAG부터 만들어보세요. 인덱싱→검색→생성 흐름을 손으로 한 번 겪으면 개념이 확실히 잡힙니다.

마치며

RAG를 한 줄로 정리하면 — "AI에게 오픈북 시험을 보게 하는 기술"입니다. 외울 필요 없이, 필요할 때 자료를 펴서 답하게 하는 거죠. 정의(검색해서 보완), 이유(LLM 3대 한계), 원리(인덱싱·검색·생성), 부품(임베딩·벡터DB·청킹)만 잡으면 RAG의 90%는 이해한 겁니다.

다음 글에서는 AI 에이전트 vs 챗봇, 무엇이 다른가를 다뤄보겠습니다. RAG 직접 만들어보신 분들은 어떤 벡터 DB를 쓰셨나요? 댓글로 공유해주세요 🙌


※ 본 글은 2026년 6월 기준 출처를 교차검증해 작성했습니다. 주요 출처: RAG 원논문(Lewis et al., arXiv:2005.11401, NeurIPS 2020), IBM·AWS·NVIDIA·Databricks 공식 문서, LangChain 공식 문서.

Comments