1. 벡터 스토어의 역할과 구조 이해하기
RAG 시스템의 벡터 스토어(Vector Store)에는 수많은 문서들의 의미 있는 방식으로 정리되어 있어서, 사용자가 원하는 정보를 빠르고 정확하게 찾을 수 있도록 도와줍니다. 하지만 단순히 벡터 스토어를 이해하고 넘어가면, 실무에서 성능 문제나 확장성 문제에 부딪힐 수 있어요.
이번 스텝에서는 벡터 스토어가 내부적으로 어떻게 작동하는지, Retriever와는 어떤 관계인지, 그리고 다양한 인덱싱 방식이 성능에 어떤 영향을 미치는지 명확하게 판단할 수 있을 거예요!
1.1. 벡터 스토어와 Retriever의 관계
많은 분들이 벡터 스토어와 Retriever를 혼동하거나 비슷한 개념으로 생각하는 경우가 있는데, 둘은 완전히 다른 역할과 책임을 가지고 있어요. 이 관계를 정확히 이해하는 것이 효과적인 RAG 시스템 설계의 출발점이라고 할 수 있습니다.

📊 벡터 스토어의 핵심 역할
벡터 스토어는 데이터 저장과 기본적인 검색 기능을 제공하는 저장소예요. 임베딩된 벡터들을 효율적으로 저장하고, 벡터 간의 유사도를 빠르게 계산해서 가장 유사한 벡터들을 찾아내는 것이 주요 기능이죠. 이는 마치 도서관의 서가 시스템과 같다고 생각하면 돼요. 책들이 분류 번호에 따라 정리되어 있고, 특정 주제의 책을 찾을 때 빠르게 해당 구역으로 안내해주는 역학을 합니다.
👤 Retriever의 상위 레벨 역할
Retriever는 벡터 스토어를 활용해서 실제 검색 로직을 수행하는 상위 레벨 컴포넌트예요. 단순히 벡터 유사도만 계산하는 것이 아니라, 어떤 검색 전략을 사용할지, 검색 결과를 어떻게 후처리할지, 여러 검색 방법을 어떻게 조합할지 등을 결정하고, 찾은 책들 중에서 가장 적절한 것들을 선별해서 제공하는 역할을 합니다.
🔧 협력 관계의 이해
벡터 스토어는 어떻게 빠르게 저장하고 찾을 것인가에 집중하고, Retriever는 어떻게 사용자의 의도에 맞게 검색할 것인가에 집중하는 거죠. 예를 들어, 하나의 Chroma 벡터 스토어에 VectorStoreRetriever, MultiQueryRetriever, ContextualCompressionRetriever 등 다양한 Retriever가 연결될 수 있고, 각각 다른 검색 전략을 사용할 수 있습니다.
1.2. 인덱싱 방식이 성능에 미치는 영향
벡터 스토어의 성능을 결정하는 가장 중요한 요소 중 하나가 바로 인덱싱 방식이에요. 같은 데이터라도 어떤 인덱싱 방식을 사용하느냐에 따라 검색 속도, 메모리 사용량, 검색 정확도가 크게 달라질 수 있어요. 각 인덱싱 방식의 특성을 이해하고 적절히 선택하는 것이 중요합니다.
📏 Flat 인덱싱의 특성
Flat 인덱싱은 가장 단순하고 직관적인 방식이에요. 모든 벡터를 순차적으로 저장하고, 검색할 때는 모든 벡터와 하나씩 유사도를 계산해서 가장 유사한 것들을 찾아내는 방식입니다. 장점은 구현이 간단하고 검색 정확도가 높다는 것이죠. 하지만 데이터가 많아질수록 검색 시간이 선형적으로 증가한다는 단점이 있어요. 보통 수천 개 이하의 작은 데이터셋이나 프로토타입 단계에서 주로 사용됩니다.
🌐 HNSW(Hierarchical Navigable Small World)의 혁신
HNSW는 그래프 기반의 근사 검색 방식으로, 현재 가장 널리 사용되는 인덱싱 방법 중 하나예요. 다층 그래프 구조에서 각 레벨마다 그래프 탐색을 통해 점진적으로 더 좋은 후보들을 찾아가는 방식으로 작동합니다. 빠른 검색 속도와 좋은 정확도를 동시에 제공하지만, 메모리 사용량이 많고 인덱스 구축 시간이 오래 걸린다는 단점이 있어요. 중간 규모 이상의 데이터셋에서 주로 사용됩니다.
⚖️ IVF(Inverted File)의 클러스터링 접근
IVF는 벡터 공간을 여러 클러스터로 나누고, 각 클러스터 내에서만 검색을 수행하는 방식이에요. 검색할 때는 먼저 어떤 클러스터에서 찾을지 결정하고, 해당 클러스터 내에서만 상세 검색을 수행합니다. IVF는 기본적으로 하나의 클러스터에서만 검색하지만, 여러 클러스터를 동시에 검색(nprobe 설정)하여 정확도를 높일 수도 있습니다. 메모리 사용량이 적고 대용량 데이터에서는 빠른 검색이 가능해서 대용량 데이터셋에서 주로 사용되지만, 클러스터링 품질에 따라 검색 정확도가 크게 좌우되고 클러스터 중심 계산 과정에서 추가적인 계산 비용이 발생하는 단점이 있어요.
⚖️ 실무에서의 선택 기준
인덱싱 방식 선택은 데이터 규모, 성능 요구사항, 하드웨어 환경을 종합적으로 고려해야 해요. 일반적인 가이드라인으로는 소규모(수만 개)에서 Flat, 중대규모에서는 HNSW, 메모리 제약이 있는 대규모에서는 IVF를 고려할 수 있지만, 실제 선택은 메모리 용량, 정확도 요구사항, 데이터 특성에 따라 달라져요.
벡터 스토어의 이런 기본 구조와 특성을 제대로 이해하고 나면, 다양한 벡터 스토어 제품들의 차이점을 더 명확하게 파악할 수 있고, 여러분의 프로젝트에 가장 적합한 선택을 할 수 있을 거예요. 다음 스텝에서는 제품 비교 및 선택 기준을 자세히 살펴보겠습니다.
'Python > LangChain' 카테고리의 다른 글
| LangChain, RAG - 메타데이터 기반 필터링 검색 (0) | 2025.12.08 |
|---|---|
| LangChain, RAG - 주요 벡터스토어 비교 분석하기 (1) | 2025.12.07 |
| LangChan, RAG - 검색 중심으로 RAG 다시 이해하기 (0) | 2025.12.05 |
| LangChain, RAG - 임베딩 모델 성능 비교 실습 (0) | 2025.12.04 |
| LangChain, RAG - 임베딩 모델을 선택하는 기준 (0) | 2025.12.03 |