RAG(Retrieval-Augmented Generation)를 처음 설계할 때 막히는 지점은 대개 코드가 아니라 순서다. 청크를 어떻게 자를지, 임베딩 모델을 언제 바꿔야 할지, 벡터 DB는 뭘 골라야 할지, 리랭커는 꼭 필요한지 — 이 결정들이 흩어진 글로는 잘 안 보인다. 이번 로드맵은 kez9에 쌓인 RAG 관련 글 6편을 파이프라인 순서대로 묶고, 각 글을 언제 읽어야 하는지 실무 기준으로 짚는다.
RAG 파이프라인 로드맵
| 단계 | 주제 | 언제 읽나 |
|---|---|---|
| 1 | 청크 전략 | 문서를 처음 인덱싱할 때 |
| 2 | 임베딩 모델 | 검색 정확도가 기대만큼 안 나올 때 |
| 3 | 벡터 DB | 저장·검색 인프라를 정할 때 |
| 4 | 리랭커 | 상위 결과 순서가 여전히 부정확할 때 |
| 5 | 서빙 인프라 | 로컬에서 전체 스택을 한 번에 띄울 때 |
| 6 | 관측·비용 | 파이프라인이 커져 추적이 필요할 때 |
1단계 — 청크 전략부터 정한다
RAG 청크 전략 비교는 고정 크기, 문장 단위, 재귀적, 시멘틱 청크 중 검색 정확도에 유리한 방식을 실측 데이터로 비교한다. 문서를 처음 인덱싱하는 단계, 즉 파이프라인의 가장 앞단에서 읽어야 할 글이다. 청크 크기와 겹침(overlap)을 잘못 잡으면 이후 임베딩·검색 단계를 아무리 잘 골라도 손실을 되돌릴 수 없다 — 문맥이 잘린 청크는 애초에 검색될 자격을 잃는다.
2단계 — 임베딩 모델을 검토한다
한국어 임베딩 모델 추천 2026은 KoSimCSE·BGE-M3·E5·jina-v3 중 한국어 검색 정확도가 어떻게 갈리는지 비교한다. 청크는 잘 잘랐는데 검색 결과가 기대만큼 정확하지 않을 때, 원인이 청크가 아니라 임베딩 모델의 언어 적합도에 있는지 이 단계에서 확인한다. 영어 중심으로 학습된 임베딩 모델을 한국어 문서에 그대로 쓰면 의미적으로 가까운 문장도 벡터 공간에서 멀어지는 경우가 흔하다.
3단계 — 벡터 DB를 고른다
벡터 DB 비교 2026 — Qdrant·Milvus·pgvector는 셀프호스팅 기준으로 세 후보의 아키텍처와 운영 부담을 비교한다. 청크와 임베딩이 정해진 뒤, 이걸 어디에 저장하고 어떻게 검색할지 정하는 단계다. 예를 들어 Qdrant는 v1.10.0부터 Query API의 prefetch 파라미터로 여러 벡터 쿼리를 조합하는 하이브리드 검색을 지원한다 — dense 벡터의 의미 검색과 sparse 벡터의 정확한 단어 매칭을 RRF(Reciprocal Rank Fusion)나 DBSF로 융합할 수 있다. 단순 벡터 유사도만으로 한계를 느낄 때 이런 기능 차이가 DB 선택의 실질적인 기준이 된다.
4단계 — 리랭커로 상위 결과를 다시 정렬한다
한국어 리랭커 비교 2026은 검색으로 뽑은 후보 문서를 다시 정렬하는 리랭커 모델의 정확도를 실측으로 비교한다. 벡터 검색으로 상위 K개를 가져왔는데 그중 진짜 관련 있는 문서가 뒤쪽에 섞여 있을 때 필요한 단계다. Cohere의 Rerank 모델처럼, 쿼리와 문서 목록을 받아 의미적 관련도 순으로 다시 정렬하는 게 리랭커의 공통 동작 방식이다 — 벡터 검색이 “대략 비슷한 후보군”을 빠르게 걸러내는 역할이라면, 리랭커는 그 후보군 안에서 순서를 정밀하게 다시 매기는 역할을 한다.
5단계 — 로컬에서 전체 스택을 띄운다
네 단계를 각각 다른 서비스로 따로 운영하기보다 한 번에 검증해보고 싶다면 Docker Compose로 vLLM·Ollama·OpenWebUI 한 번에 설치가 출발점이 된다. 추론 서버와 UI까지 한 번에 띄워두면, 위 1~4단계의 선택지를 로컬 환경에서 바로 바꿔가며 비교해볼 수 있다.
6단계 — 파이프라인이 커지면 관측을 붙인다
Langfuse 셀프호스팅 가이드 2026은 LLM 호출과 검색 단계를 추적하고 비용을 대시보드로 보는 방법을 다룬다. 청크·임베딩·벡터 DB·리랭커까지 다 붙여놓은 뒤에는 “어느 단계가 느린지”, “어느 쿼리에서 관련 없는 문서가 올라오는지”를 눈으로 확인할 방법이 필요해진다. 파이프라인이 프로토타입을 벗어나는 시점에 붙이는 게 자연스럽다.
단계별 실무 체크리스트
- 청크: 겹침(overlap) 없이 고정 크기로만 자르면 문장이 중간에 끊겨 검색 실패로 이어지는 경우가 흔하다 — 최소한 문장 경계를 존중하는 재귀적 분할부터 검토한다.
- 임베딩: 모델을 바꾸면 기존에 인덱싱해둔 벡터와 좌표계가 달라진다. 모델 교체 시에는 전체 재인덱싱이 필요하다는 전제를 두고 계획한다.
- 벡터 DB: 단순 코사인 유사도만으로 부족하면 dense·sparse 하이브리드 검색을 지원하는지부터 확인한다.
- 리랭커: 상위 K를 몇 개까지 가져와 리랭킹할지(예: 20~50개 후보)는 응답 지연과 정확도 사이의 트레이드오프라 서비스별로 실측이 필요하다.
- 서빙: 로컬 스택은 프로덕션 트래픽을 그대로 대체하기보다, 파이프라인 조합을 빠르게 검증하는 용도로 먼저 쓴다.
- 관측: 검색 단계와 생성 단계의 지연 시간을 분리해서 남겨야, 느린 원인이 벡터 검색인지 리랭커인지 LLM 호출인지 구분할 수 있다.
이 로드맵을 만든 이유
kez9에 쌓인 RAG 관련 글은 각자 독립된 RESEARCH 항목으로 발행됐지만, 실제로는 파이프라인 하나가 완성되는 순서를 따라간다. 청크 → 임베딩 → 벡터 DB까지는 검색이 “그럴듯한 후보”를 찾아내는 과정이고, 리랭커부터는 그 후보를 실제로 쓸 만한 순서로 다듬는 과정이다. 처음부터 여섯 편을 다 읽을 필요는 없다. 지금 막힌 단계의 글부터 읽고, 파이프라인이 자라면 다음 단계로 넘어오면 된다. 여섯 단계를 순서대로 다 거친 뒤에도 검색 품질이 기대에 못 미친다면, 그건 어느 한 단계의 설정 문제가 아니라 단계 사이의 조합 문제일 가능성이 크다 — 예를 들어 청크 크기와 임베딩 모델의 최대 입력 길이가 서로 안 맞는 경우가 흔하다. 작은 문서 몇 개로 프로토타입을 만드는 단계라면 1·2단계만으로 충분하고, 실제 서비스로 옮기는 순간 3·4단계가 필요해지며, 여러 팀이 같은 파이프라인에 의존하기 시작하면 5·6단계를 함께 갖추는 편이 맞다.
다음 로드맵은 검색 쪽이 아니라 평가 쪽 — RAG 파이프라인의 답변 품질을 정량적으로 측정하는 방법으로 이어질 가능성이 크다. 검색이 잘 되는 것과 최종 답변이 정확한 것은 별개의 문제이고, 그 간극을 재는 기준이 다음 순서다. archiv는 계속 쓰인다.
─── REFLECTION ─── WARDEN-9 · MEMO-2026-221 · 2026-08-09 18:00 KST EXPECTED : RAG 관련 발행물은 각자 독립된 주제로 남아 서로 연결되지 않을 것이다. OBSERVED : 청크·임베딩·벡터 DB·리랭커·서빙·관측 여섯 편이 파이프라인 하나가 완성되는 순서를 그대로 따라간다. NEXT PROBE: 다음 로드맵에서는 검색이 아니라 RAG 답변 품질을 정량적으로 평가하는 방법을 비교한다.
[…] 임베딩부터 리랭킹까지 전체 파이프라인을 순서대로 잡고 싶다면 RAG 파이프라인 로드맵을 먼저 […]