"RAG 핵심 학습 (26/26) — 개인 문서 기반 RAG 캡스톤 + 학습 로드맵"

학습 시리즈의 마지막은 "더 읽기"가 아니라 "작게라도 한 번 묶어 보기"여야 한다.

이번 편은 앞선 25편의 개념을 하나의 작은 프로젝트로 엮는다. 목표는 거대한 프로덕션 시스템이 아니라, 개인 문서 기반 RAG를 설계하고 운영 관점까지 점검해 보는 미니 캡스톤이다. 동시에 시리즈 전체를 복습하는 학습 로드맵을 정리한다.


0. Prerequisites

  • 1~25편 전체
  • 특히 3편 ingestion, 12편 hybrid, 14~16편 eval/실험, 25편 운영

1. 학습 목표

  1. 지금까지 배운 요소를 하나의 미니 RAG 프로젝트로 묶는다.
  2. 구현보다 설계 순서를 정리한다.
  3. 어떤 실수를 피해야 하는지 안다.
  4. 시리즈 이후 다음 학습 경로를 잡는다.

2. 핵심 요약

개인 문서 기반 RAG 캡스톤의 핵심은 도구 선택이 아니라 설계 순서다. 먼저 문서 경계와 목적을 나누고, 그다음 ingestion schema와 metadata를 정하고, 그 위에 검색기와 평가셋을 붙여야 한다. 작은 프로젝트라도 문서군 분리 → chunking 여부 결정 → embedding/vector store 선택 → hybrid/rerank → eval → security/version 순서를 지키는 편이 안정적이다. 이 편은 그 흐름을 하나의 체크리스트로 묶는다.


3. 직관 — 작은 캡스톤이 왜 중요한가

26편을 다 읽고도 실제로 한 번 묶어 보지 않으면 개념이 서로 떨어져 남기 쉽다. 캡스톤은 "어떤 개념이 어느 단계에서 등장하는가"를 몸으로 연결해 주는 장치다.


4. 캡스톤 목표 — 무엇을 만들 것인가

예시 과제:

  • 입력 문서: 개인 노트, 회의 메모, 정책 문서, README
  • 질문 유형: 정의형, 절차형, 고유명사형, 비교형
  • 기본 목표:
  • 문서군 분리
  • metadata filter
  • dense + sparse hybrid
  • reranker
  • 최소 평가셋 20문항

핵심은 "모든 기능"이 아니라 지금까지 배운 원칙이 한 번씩 실제로 배치되는가다.


5. 설계 순서 — 9단계 캡스톤 체크리스트

  1. 문서군 분리: 정책 / 노트 / 회의록 / 매뉴얼
  2. 문서 경계와 purpose 정리
  3. chunking이 필요한지 먼저 판단
  4. metadata 스키마 설계
  5. embedding 모델과 vector DB 선택
  6. sparse / hybrid / reranker 연결
  7. 최소 golden dataset 작성
  8. 권한 / 버전 / 재색인 규칙 추가
  9. 실험 로그와 평가 자동화 추가

이 순서를 건너뛰면 나중에 다시 앞단으로 돌아오게 된다.


6. 원리 워크스루 — 아주 작은 시스템 스케치

6.1 문서군 설계

collections = {
    "policies": policy_docs,
    "notes": personal_notes,
    "meetings": meeting_memos,
}

6.2 검색 파이프라인

query_type = classify_query(query)
collection = route_to_collection(query_type, query)
hits = hybrid_search(query, collection=collection, top_k=8)
hits = rerank(query, hits)[:4]
answer = generate_answer(query, hits)

6.3 평가 루프

metrics = evaluate_pipeline(eval_dataset)
if metrics["faithfulness"] < 0.8:
    inspect_failures()

자기 설명: 이 캡스톤에서 도구보다 설계 순서가 더 중요한 이유를 한 문장으로 설명해 보라.


7. 시리즈 전체 복습 — 무엇이 어디에 연결되는가

단계 연결 편
문서 준비 2~6편
검색 기반 7~13편
평가와 실험 14~16편
질의 적응 17~22편
고급 구조와 운영 23~25편

이 표를 보면 시리즈가 "개념 나열"이 아니라 실제 파이프라인 순서에 가깝게 배치돼 있음을 알 수 있다.


8. 한계와 실패 양상

8.1 처음부터 완벽한 시스템을 만들려 하면 실패한다

Graph, agentic, dynamic weighting을 한 번에 다 넣으면 어디서 망가졌는지 모른다.

8.2 평가셋 없이 체감으로만 수정하면 길을 잃는다

14~16편을 건너뛰면 결국 "뭐가 좋아졌는지 모르겠다"는 상태로 돌아간다.

8.3 문서군 분리보다 도구 선택에 집착하기 쉽다

하지만 실제 검색 품질은 종종 모델보다 collection 설계와 metadata에서 먼저 갈린다.

8.4 다음 단계 — 시리즈 이후 무엇을 공부할까

RAG를 마쳤다면 자연스러운 다음 단계는 Agent, Eval 고도화, Tool-use, 장기 메모리 구조다.


8.5 입문자가 자주 빠지는 함정 5선

# 함정 증상 빠른 점검
1 한 번에 모든 기능 추가 원인 불명 장애 단계별 증설
2 문서군 분리 생략 노이즈 회수 collection 설계 재점검
3 eval 없이 체감 개선 반복 성능 착시 최소 20문항 eval set
4 권한/버전 뒤로 미룸 운영 리스크 25편 체크리스트 반영
5 실패 사례 기록 안 함 같은 오류 반복 실험 노트 유지

9. 정리된 결론 — 보지 않고 답해 보라

Q1. 이 캡스톤의 핵심은 무엇인가?

정답 RAG의 각 요소를 올바른 순서로 한 번 묶어 보는 것이다.
개념을 개별 지식이 아니라 시스템 흐름으로 연결하기 위해서다.

Q2. 처음부터 graph나 agentic까지 넣지 말아야 하는 이유는?

정답 어디서 문제가 생겼는지 추적하기 어려워지기 때문이다.
기본 retrieval, eval, metadata가 안정되지 않으면 고급 구조도 흔들린다.

Q3. 시리즈 이후 가장 자연스러운 다음 학습 단계는?

정답 Agent, Eval 고도화, Tool-use, 장기 메모리 구조다.
RAG가 그 다음 계층의 검색 기반이 되기 때문이다.


Cheat Sheet — 이 편의 식·정의 1페이지

체크리스트 - 문서군 분리 - metadata 설계 - hybrid + rerank - eval set - security/version - 실험 로그

최소 코드

hits = hybrid_search(query, collection=collection, top_k=8)
hits = rerank(query, hits)[:4]

언제 무엇을 | 상황 | 우선순위 | |---|---| | 첫 구현 | 문서군 + metadata | | 품질 개선 | eval + rerank | | 운영 준비 | security + re-index | | 고급 확장 | graph / agentic |


10. 추가 학습

보조 자료

  • 사용자 노트 31장 개인 문서 기반 RAG 프로젝트
  • 사용자 노트 35-8절 ingestion 설계 프롬프트

다음 단계로 이어지는 흐름

이 시리즈는 여기서 끝나지만, 학습 경로는 끝나지 않는다. 다음 주제로는 Agentic Workflow, Evaluation 고도화, Tool-use, 장기 메모리 아키텍처가 자연스럽게 이어진다.

댓글

이 블로그의 인기 게시물

"LLM 핵심 학습 (1/6) — 기본: 토큰화·임베딩·어텐션·위치 인코딩"

"LLM 핵심 학습 (2/6) — 파인튜닝: LoRA·QLoRA·증류·Adapter"

"ML 기초 학습 (1/9) — 머신러닝과 sklearn: 학습의 좌표계"