AI 리터러시 스터디 · 06
RAG
모르는 건 찾아서 읽고,
근거를 대며 답하게 하기
청킹 · 검색 · 출처 검증
칼리즈 · 2026.10
오늘 끝까지 붙잡을 질문 하나
이 AI 답,
믿어도 될까?
1 자르기 청킹→
2 찾기 검색→
3 읽기 컨텍스트→
4 확인 출처 검증
01 개념
지금의 LLM은
외워서 푸는 시험 중
작년 이후 일은 모름 지식 컷오프
우리 회사 규정은 본 적도 없음
모르면 그럴듯하게 지어냄 환각
01 개념
RAG = 오픈북 시험
모델을 다시 가르치지 않아도, 책만 바꾸면 최신이 된다
01 개념
지난 시간에 배운 두 개가
RAG의 재료다
토큰모델이 읽는 글자 조각
한 번에 읽을 수 있는 양(컨텍스트 윈도우)이 정해져 있다
그래서 문서를 통째로 못 넣고 골라서 넣는다
임베딩뜻을 숫자 좌표로
뜻이 비슷한 문장은 좌표가 가깝다
그래서 단어가 달라도 비슷한 문서를 찾는다
토큰 = 넣을 수 있는 양의 한계 · 임베딩 = 찾는 방법
01 개념
준비는 미리, 찾기는 매번
미리문서가 바뀔 때
문서 모으기→
자르기→
색인 만들기
매번질문이 올 때
질문→
찾기→
고르기→
답 + 출처
동그라미 친 세 군데가 오늘의 주인공
01 개념
틀린 답은 대부분
못 찾아서 생긴다
재료가 상하면
셰프가 누구든 요리는 망한다
잘못된 문서를 넣으면 좋은 모델일수록
자신 있게 틀린 답을 낸다
그래서 모델 바꾸기 전에 검색부터 본다
출처: DEV Community, RAG in 2026: Why Retrieval, Not the Model, Is the Bottleneck
02 역사
70년 된 아이디어,
이름은 2020년에
1957단어를 센다자주 나오는 단어가 주제
1972드문 단어가 중요IDF 등장
1990sBM25지금도 현역
2020RAG 탄생검색과 생성을 한 몸으로
2023한계 발견중간은 잘 안 읽음, 인용 부실
2026에이전트의 도구찾을 때까지 다시 찾기
출처: Manning 외, Introduction to Information Retrieval · A Systematic Review of Key RAG Systems (arXiv 2507.18910)
02 역사
2020년: 작은 모델 + 검색이
큰 모델을 이겼다
다 외울 필요가 없다는 게 증명됨
출처: Lewis 외 RAG, Karpukhin 외 DPR, Guu 외 REALM (모두 2020) · arXiv 2507.18910
02 역사
2026년: 검색은
에이전트의 도구
100만 토큰 시대에도 RAG는 안 죽고 모양만 바뀜
하이브리드 검색이 기본 기능
2026.09.09 Pinecone 정식 출시
출처: Anthropic, Effective context engineering for AI agents (2025.09) · AI Innovations and Insights 161 (2026.10)
03 청킹
청킹 = 책을 몇 쪽씩
찢어 둘까
작게 찢으면
딱 맞는 조각을 찾지만
누구 얘기인지 잊어버림
크게 찢으면
맥락은 살지만
이것저것 섞여 흐려짐
시작은 400~512토큰, 10~20% 겹치게
03 청킹
자르는 방법은 크게 네 가지
글자 수로 기계적으로 고정 크기
가장 단순. 문장 중간에서 잘릴 수 있음
문단 → 문장 순서로 재귀 분할
큰 경계부터 맞춰 자름. 실무 기본값
제목·조항·페이지 단위로 구조 기반
규정집, 보고서 PDF, 코드에 잘 맞음
주제가 바뀌는 곳에서 의미 기반
문장 임베딩이 갑자기 달라지는 지점. 비용 큼
출발은 문단·문장 기준 400~512토큰, 문서 구조가 뚜렷하면 구조 기반
출처: Chroma Research, Evaluating Chunking Strategies (2024.07) · NVIDIA Technical Blog (2024)
03 청킹
직접 잘라 보기
숙박비 한도랑 예외 조항이 같은 조각에 들어가나?
03 청킹
너무 잘게 자르면
찾고도 틀린다
최종 정답률, 학술 논문 50편
의미로 잘랐더니 조각이 평균 43토큰
거의 한 문장!
같은 54%·69%를 글마다 다른 벤치마크라고 인용함
숫자는 방향만, 우리 문서로 다시 재기
출처: PremAI, RAG Chunking Strategies 2026 Benchmark Guide (FloTorch 2026.02 인용) · Chroma Research (2024.07)
03 청킹
작게 찾고, 크게 넣기
부모-자식 청킹
찾기는 정밀하게, 읽기는 넉넉하게
Late Chunking
문서 전체를 먼저 읽힌 뒤에 자르기
조각마다 앞뒤 맥락이 섞인 좌표가 됨
출처: Günther 외, Late Chunking (Jina AI, arXiv 2409.04701, 2024)
03 청킹
조각마다 어디 얘기인지 한 줄
매출은 전 분기보다 3% 늘었다.
어느 회사? 언제?
→
ACME 2분기 실적 보고서의 매출 부분. 매출은 전 분기보다 3% 늘었다.
LLM이 인덱싱할 때 미리 붙여 둠
문맥 한 줄 + 키워드 검색 + 리랭킹까지 하면 3분의 1
출처: Anthropic, Introducing Contextual Retrieval (2024.09) · 상위 20개 안에 정답 조각이 없는 비율
04 검색
단어로 찾기 vs 뜻으로 찾기
키워드 검색BM25, 단어를 센다
잘 찾음 E-4021 오류, 사번, 조문 번호
놓침 출장비로 물었는데 문서엔 여비
단어가 똑같아야 점수가 오름
의미 검색임베딩, 뜻을 잰다
잘 찾음 출장비 ≈ 여비, 다른 표현, 다국어
놓침 E-4021과 E-4012를 헷갈림
지난 회차의 임베딩 거리 그대로
서로 반대로 실패하니까 → 둘 다 쓴다 (하이브리드)
04 검색
키워드 검색은
드문 단어에 점수를 준다
문서 1,000개짜리 규정집에서
단어별 희귀도 점수(IDF)
같은 단어가 10번 나와도 10배는 아님 포화
긴 문서는 우연히 걸릴 확률이 높으니 점수를 깎음
출처: Robertson & Spärck Jones, Okapi BM25 IDF 공식으로 계산 · 문서 수는 시연용 가상 값
04 검색
한국어는 조사를 떼야
단어가 보인다
띄어쓰기로
금융보험은장기적인상품입니다
"금융보험"과 안 맞음
형태소로
금융보험은
장기상품
Kiwi, Nori, Mecab 같은 형태소 분석기를 키워드 검색 앞에
출처: WikiDocs, 한글 형태소 분석기와 BM25Retriever의 결합
04 검색
의미 검색은 질문도 좌표로 바꿔
가까운 이웃을 찾는다
문서 조각마다 좌표를 미리 계산해 둔다
질문이 오면 질문 좌표 근처만 본다
수백만 개를 다 비교하지 않는다 (ANN)
비슷한 책끼리 꽂힌 서가에서 그 근처만 둘러보는 것
출처: Karpukhin 외, Dense Passage Retrieval (2020) · 그림은 2차원으로 단순화한 개념도
04 검색
둘 다 돌리고 등수로 합치기 · RRF
점수 = 1 / (60 + 등수) 를 목록마다 더하기
BM25 12.7점과 유사도 0.83은 단위가 달라 그냥 못 더함
| 문서 | 키워드 등수 | 의미 등수 | 계산 | RRF 점수 | 최종 |
| A | 1 | 2 | 1/61 + 1/62 | 0.0325 | 1등 |
| B | 3 | 1 | 1/63 + 1/61 | 0.0323 | 2등 |
| C | 2 | 4 | 1/62 + 1/64 | 0.0318 | 3등 |
| D | 없음 | 3 | 1/63 | 0.0159 | 4등 |
| E | 4 | 없음 | 1/64 | 0.0156 | 5등 |
양쪽 다 상위면 위로, 60은 한쪽 1등의 독주를 막는 완충재
출처: Cormack, Clarke, Buettcher, Reciprocal Rank Fusion (SIGIR 2009) · 등수는 시연용 가상 값
04 검색
넓게 건지고, 좁게 고르기
리랭커는 질문과 문서를 한 쌍씩 같이 읽고 다시 줄 세움
정확하지만 느려서 2단계에만
후보에 없는 문서는 리랭커도 못 살린다
출처: Anthropic, Introducing Contextual Retrieval (2024.09) · wz-it.com, Hybrid search and reranking for RAG
04 검색
문서 말고 질문을 고쳐서 찾기도 한다
재작성대화 맥락 풀기
"그거 한도는?"→"국내 출장 숙박비 한도는?"
분해여러 개를 묻는 질문
"국내와 해외 출장 차이?"→국내 규정해외 규정
가상 답변HyDE
짧은 질문→그럴듯한 답을 먼저 써서 그걸로 검색
필터먼저 거르기
날짜부서권한권한은 반드시 검색 단계에서
출처: Gao 외, HyDE (arXiv 2212.10496, 2022) · Jeong 외, Adaptive-RAG (arXiv 2403.14403, 2024)
04 검색
"전체적으로 어때?"는
조각 몇 개로 답이 안 된다
일반 RAG는 질문과 비슷한 조각 몇 개만 가져온다
"규정집 전체에서 반복되는 원칙은?"
재료가 문서 곳곳에 흩어져 있다
그래서 2024년 Microsoft:
구조를 미리 만들어 두자 → GraphRAG
출처: Edge 외, From Local to Global: A GraphRAG Approach (Microsoft Research, arXiv 2404.16130, 2024)
04 검색
그래프는 LLM이 미리 다 읽고 만든다
→
2 개체·관계 뽑기
LLM이 조각마다 누가·무엇이 어떻게 이어지는지 추출
→
3 묶음 찾기
많이 이어진 개체끼리 묶음(커뮤니티). 큰 묶음 안에 작은 묶음
→
4 묶음 요약
LLM이 묶음마다 요약 보고서를 미리 작성
1~4가 전부 인덱싱→
문서가 많을수록 LLM 호출도 그만큼 늘어난다
출처: Edge 외, From Local to Global (arXiv 2404.16130, 2024) · 묶음 찾기는 Traag 외, Leiden 알고리즘 (2019)
04 검색
묻는 범위에 따라 찾는 길이 다르다
로컬 검색 특정 대상을 물을 때
"김대리가 맡은 규정은?"
질문 속 개체에서 출발해 이웃 관계와 관련 조각을 모아서 답
글로벌 검색 전체를 물을 때
"규정집 전체의 공통 원칙은?"
묶음 요약마다 부분 답을 쓰고, 쓸모 있는 것만 골라 하나로 합침
논문 실험: LLM 심판 비교에서 일반 RAG보다 "더 포괄적" 판정 72~83% (심판 편향 지적이 있어 방향만 참고)
출처: Edge 외, From Local to Global (arXiv 2404.16130, 2024) · 심판 순서 편향은 Han 외, RAG vs. GraphRAG (arXiv 2502.11371, 2025)
04 검색
비싼 건 미루고, 질문 따라 골라 쓴다
LazyGraphRAG 2024.11
미리 요약하지 않는다. 명사구만 뽑아 연결을 잡아 두고, LLM은 질문이 오면 필요한 만큼만
0.1%인덱싱 비용
GraphRAG 대비
1/700쿼리 비용
글로벌 질문, 비슷한 품질
| 질문 유형 | 예시 | 고를 것 |
| 사실 하나 | "숙박비 한도는?" | 일반 RAG |
| 관계 여러 번 건너기 | "김대리 팀 프로젝트 마감은?" | 그래프 로컬 |
| 전체 주제·요약 | "공통 원칙은?" | 그래프 글로벌 |
| 섞여서 들어옴 | 실제 서비스 | 질문 보고 라우팅 |
자동 생성 그래프엔 정답 개체가 3분의 2쯤만 → 일반 RAG와 같이 쓰기
출처: Microsoft Research 블로그, LazyGraphRAG (2024.11) · Han 외, RAG vs. GraphRAG: A Systematic Evaluation (arXiv 2502.11371, 2025)
05 컨텍스트
많이 넣는다고
잘 읽는 건 아니다
Lost in the Middle
정답 문서가 중간에 있으면 문서를 안 준 것보다 못할 때도
Context Rot
18개 모델 모두 입력이 길수록 흔들림
적게 넣고, 중요한 건 앞이나 뒤에
출처: Liu 외, Lost in the Middle (TACL 2024) · Chroma, Context Rot (2025.07)
05 컨텍스트
통째로 넣으면 조금 더 정확,
대신 26배 비쌈
문서 통째로
73.1%
정답률
×26
쿼리당 비용
검색해서 일부만
65.4%
정답률
×1
쿼리당 비용
안 바뀌는 문서 몇 개면 통째로 + 캐싱
많고 자주 바뀌고 권한이 다르면 RAG
출처: Hamilton 외, The Token Tax of Epistemic Accuracy (2026.06, HackerNoon 인용)
05 컨텍스트
"RAG는 죽었다, grep이면 된다"?
미리 색인 (인덱스)
미리 잘라 좌표를 만들어 둠
찾기는 빠름 · 문서가 바뀌면 낡음
큰 문서 더미, 자주 묻는 질문
그때그때 탐색 (grep)
에이전트가 파일을 직접 뒤져 봄
항상 최신 · 토큰을 많이 씀
코드, 이름이 곧 색인인 데이터
둘 다 찾아서 읽고 답하기, 즉 둘 다 RAG
출처: AI Engineer Europe 2026, "RAG is dead, right?" · Anthropic, Effective context engineering for AI agents (2025.09)
05 컨텍스트
가져온 문서가 별로면
스스로 판단해서 다시
Self-RAG 2023
모델이 검색이 필요한지, 근거가 맞는지 스스로 체크하도록 학습
CRAG 2024
작은 평가기가 결과를 3단계로 판정. 기존 RAG에 끼워 넣는 방식
출처: Asai 외, Self-RAG (arXiv 2310.11511, 2023) · Yan 외, Corrective RAG (arXiv 2401.15884, 2024)
06 출처 검증
출처가 달렸다고
맞는 말은 아니다
해외 출장은 반드시 일반석입니다 [3]
→
3번 문서
항공권은 일반석을 원칙으로 한다
원칙 ≠ 반드시
근거에 있는 말인가?
주장마다 인용이 다 달렸나?
그 인용이 정말 그 말을 하나?
출처: Gao 외, ALCE (EMNLP 2023) · Ragas 공식 문서
06 출처 검증
최고 모델도 절반은
근거가 모자랐다
ELI5 질문에서 최고 모델 답의 약 절반이
인용만으로는 완전히 뒷받침되지 않음
근거가 부족해도 모델은 잘 안 멈춘다
RAG를 붙이면 더 자신 있게 틀린다
"문서로는 확인이 안 돼요"를
정답으로 인정해 주기
출처: Gao 외, ALCE (EMNLP 2023) · Joren 외, Sufficient Context (ICLR 2025)
06 출처 검증
인용은 부탁하지 말고
시스템으로 강제한다
시스템 프롬프트 규칙
1. 사실 문장마다 끝에 [문서번호]
2. 문서에 없는 내용은 쓰지 않기
3. 문서끼리 다르면 날짜와 함께 둘 다
4. 못 찾으면 "확인할 수 없습니다"
모델 내장 인용 기능 도입 후
10%→0%
출처 환각·형식 오류 (금융 기술 기업 Endex 사례)
출처: Anthropic, Introducing Citations on the Anthropic API (2025.01) · 수치는 고객사 자체 보고
06 출처 검증
악성 문서 5개면 답이 바뀐다
90%
수백만 건 중 질문당 5개만 심어도
원하는 답이 나올 확률
문서 안에 숨긴 "이전 지시 무시해" 같은 명령도 공격
누가 지식 베이스에 쓸 수 있나 = 답의 신뢰도
출처: Zou 외, PoisonedRAG (arXiv 2402.07867, 2024)
06 출처 검증
AI 답을 받으면 30초 점검
눌러서 같이 체크해 보기
07 평가
점수를 검색과 생성으로 나눠야
고칠 곳이 보인다
검색 · Context Recall
필요한 근거를 다 가져왔나?
낮으면 청킹, 임베딩, 하이브리드, 질문 고치기
검색 · Context Precision
쓸데없는 건 덜 가져왔나?
낮으면 리랭커, 넣는 개수 줄이기
생성 · Faithfulness
답이 근거 안에 있는 말인가?
낮으면 인용 강제, 배치, 모델 교체
생성 · Answer Relevancy
질문에 실제로 답했나?
낮으면 질문 이해, 재작성
출처: Ragas 공식 문서 (RAGAS 4대 지표)
07 평가
시험 보기 전에 정답지부터
1
실제 사용자 질문 50~200개 모으기
2
질문마다 정답과 근거 위치(문서·조항) 적기
3
답이 없는 질문도 섞기
모른다고 하는지 보려고
4
설정을 바꿀 때마다 같은 시험 다시 보기
한 번에 한 가지만 바꿔야 무엇이 효과였는지 안다
출처: Ragas 공식 문서 · AI 리터러시 학습 노트 06 평가 섹션
08 정리
오늘부터 쓸 기본값 다섯 개
1
구판·중복 정리, 날짜·권한 붙이기
2
400~512토큰으로 자르고 제목 붙이기
3
키워드 + 의미 검색을 RRF로
4
리랭커로 5~20개만 넣기
5
문장마다 출처, 정답셋으로 평가
자세한 체크리스트는 학습 노트 06
RAG 품질은
찾기와 확인에서 정해진다
이론은 여기까지다음: 내가 직접 만든 eaglenest →
09 eaglenest
그럼 내가 직접 만든 건?
eaglenest
사내 문서와 프로젝트 기록을 근거로, 출처와 함께 답하는 지식 허브
오늘 배운 청킹 · 검색 · 출처 검증이 실제로 어디에 들어갔는지 볼게
09 eaglenest
문서 · 좌표 · 관계를 세 군데에 나눠 담았다
문서 업로드
PDF · DOCX · PPTX
XLSX · TXT · MD
원본 파일은 NAS
→
PostgreSQL 문서 정보 · 권한
Qdrant 조각 좌표 (벡터)
Neo4j 사람·프로젝트 관계
→
누리
AI 에이전트
답변 + 출처
웹 · Slack @nuri
질문한 사람이 볼 수 있는 정보만 찾아서 답한다
출처: eaglenest 시스템 구성 · 릴리즈 노트 (2026.09.30, 2026.10.08)
09 eaglenest
올리면 자르고 좌표로 바꿔 색인한다
eaglenest / 문서

파란 동그라미: 끌어다 놓으면 업로드
빨간 동그라미: 인덱싱 완료
인덱싱 = 텍스트 추출 → 청킹 → 임베딩 → 저장
eaglenest 문서 화면 · 화면 속 문서명·대화 제목·이메일은 공개용 가상 데이터로 바꿔서 캡처
09 eaglenest
통합 검색은 하이브리드, 점수는 등수로 합친 값
eaglenest / 검색

하이브리드 배지
키워드와 의미 검색 둘 다에 걸림
키워드 배지
키워드 검색에만 걸림
점수 0.0xx = 1/(60+등수)의 합
한쪽 1등만이면 1/61 ≈ 0.016
eaglenest 통합 검색 화면 · 화면 속 문서명·대화 제목·이메일은 공개용 가상 데이터로 바꿔서 캡처
09 eaglenest
누리는 문장마다 출처 번호를 단다
eaglenest / 누리

문장 끝 작은 숫자 = 근거 번호
오른쪽 출처 패널: 근거 원문과 검색 점수
신뢰도 표시
원문을 바로 열어 볼 수 있어야
30초 점검이 가능하다
eaglenest 누리 대화 화면 · 화면 속 문서명·대화 제목·이메일은 공개용 가상 데이터로 바꿔서 캡처
09 eaglenest
근거가 없으면 없다고 말하게 했다
eaglenest / 누리

"직접 설명한 문서는 찾지 못했습니다"
관련은 있지만 답은 아닌 문서는 따로 표시
근거가 부족할 때 지어내는 대신
추가 자료를 요청
eaglenest 누리 대화 화면 · Joren 외, Sufficient Context (ICLR 2025) · 화면 속 문서명·대화 제목·이메일은 공개용 가상 데이터로 바꿔서 캡처
09 eaglenest
사람 · 프로젝트 · 업무는 관계 그래프로
eaglenest / 업무 온톨로지

팀 · 사람 · 프로젝트 · 업무가 선으로 연결
막힌 곳(기한 지난 업무, 담당자 없음)이 바로 보임
"○○ 대리가 하는 일 뭐야?"
누리가 이 관계를 직접 조회해 답함
eaglenest 업무 온톨로지 화면 · 릴리즈 노트 (2026.09.30) · 화면 속 문서명·대화 제목·이메일은 공개용 가상 데이터로 바꿔서 캡처
09 eaglenest
오늘 배운 것, eaglenest에서는
| 오늘 배운 것 | eaglenest에서는 |
| 청킹 · 임베딩 · 메타데이터 | 문서 업로드 후 인덱싱, 종류·부서·태그 |
| 하이브리드 + RRF | 통합 검색의 하이브리드·키워드 배지와 점수 |
| 문장마다 인용 · 원문 대조 | 근거 번호 + 출처 패널 |
| 근거 부족하면 멈추기 | "찾지 못했습니다" + 추가 자료 요청 |
| 권한은 검색 단계에서 · 그래프 · 라우팅 | 볼 수 있는 정보만 · 업무 온톨로지 직접 조회 |
| 정답지와 평가 | 부정확해요 · 수정 제안 피드백 |
질문 있어?
질문이 없으면 같이 얘기해 보자
1. 컨텍스트가 1,000만 토큰이 돼도 RAG가 필요할까?
2. 출처 링크가 붙어 있으면 사람은 오히려 덜 확인하게 될까?
칼리즈 · 고마워!