
주요 벡터 DB 특징 간략 비교 — 초보자를 위한 선택 가이드
요약
RAG 및 시맨틱 검색 구축을 위한 주요 벡터 데이터베이스(Vector DB)의 특징을 비교한 가이드입니다. 각 DB의 운용 형태와 장단점을 정리하여 초보자가 상황에 맞는 도구를 선택할 수 있도록 돕습니다.
핵심 포인트
- 벡터 DB는 임베딩 모델이 아닌 유사 벡터 검색을 위한 데이터 스토어임
- 인덱싱과 쿼리 시 반드시 동일한 임베딩 모델을 사용해야 함
- pgvector는 기존 PostgreSQL 환경과의 통합에 유리함
- Chroma는 Python 기반의 프로토타입 제작에 적합함
- Pinecone은 인프라 관리 부담이 적은 서버리스 SaaS 방식임
RAG나 시맨틱 검색 (Semantic Search)을 구축할 때, "임베딩 벡터를 어디에 저장할 것인가"가 첫 번째 설계 판단 기준이 된다.
선택지는 계속 늘어나고 있지만, 모두를 깊게 비교할 필요는 없다. 우선 대표적인 벡터 DB의 "성격"과 초보자가 혼란스러워하기 쉬운 포인트를 정리한다.
| 관점 | 초보자를 위한 선택 방법 |
|---|---|
| 먼저 결정할 것 | 매니지드 (SaaS)인가 셀프 호스트인가, 기존 DB에 추가할 것인가 |
| ... | |
| 포인트: 벡터 DB는 "검색 엔진"이며, 임베딩 모델 그 자체가 아니다. 어떤 DB를 선택하더라도, 동일한 임베딩 모델로 인덱스(Index)와 쿼리(Query)를 맞추는 것이 전제 조건이다. |
벡터 DB (vector database)는 고차원 벡터와 메타데이터를 저장하고, **유사 벡터 검색 (similarity search / nearest neighbor search)**을 고속으로 실행하기 위한 데이터 스토어다.
RAG 파이프라인에서는 다음과 같은 역할을 담당한다.
[오프라인]
문서 → 청크 분할 (Chunking) → 임베딩 → 벡터 DB로 저장
[온라인]
...
| 기능 | 설명 |
|---|---|
| 벡터 저장 | 수백~수천 차원의 float 배열을 대량으로 저장 |
| ... | |
| "전문 검색 엔진 (Elasticsearch 등)"이나 "관계형 DB (Relational DB)"와의 차이점은, 의미 벡터 공간에서의 근방 탐색 (Nearest Neighbor Search)에 최적화되어 있다는 점이다. |
이하는 2026년 시점의 공식 문서 및 공개 정보에 기반한, 초보자를 위한 개관이다. 세부 사항은 버전이나 플랜에 따라 달라지므로, 선정 전에 반드시 공식 정보를 확인할 것.
| DB | 운용 형태 | 특징 (간략히) | 적합한 상황 |
|---|---|---|---|
| pgvector | PostgreSQL 확장 (셀프 호스트/매니지드 DB) | 기존 PostgreSQL에 벡터 열을 추가할 수 있음 | 이미 Postgres를 사용 중이며, 트랜잭션과 벡터를 공존시키고 싶을 때 |
| Chroma | OSS · 임베디드형 | Python에서 간편하게 시작 가능, 로컬/PoC 적합 | 학습 · 프로토타입 · 소규모 앱 |
| Qdrant | OSS + 클라우드 | Rust 제작, 필터와 페이로드 (Payload) 설계가 명확함 | 셀프 호스트하면서 본업 운용, 메타데이터 포함 검색 |
| Weaviate | OSS + 클라우드 | 모듈형, GraphQL API, 하이브리드 검색 | 여러 벡터라이저 (Vectorizer) 연동, 키워드 + 벡터 병용 |
| Milvus | OSS + 클라우드 (Zilliz) | 대규모용, 분산 아키텍처 (Distributed Architecture) | 억 단위의 벡터, 스케일 아웃 (Scale-out) 전제 |
| Pinecone | 매니지드 SaaS | 운용 부하가 낮음, 서버리스 (Serverless) 방식의 이용 | 인프라를 최소화하고 싶은 본업 RAG |
| Elasticsearch | OSS + 클라우드 | 전문 검색에 강하며, dense_vector로 벡터 검색도 가능 | 기존 Elasticsearch 운용 경험이 있고, 검색 기반을 통합하고 싶을 때 |
pgvector는 PostgreSQL의 확장 기능으로, 일반 테이블에 vector 타입의 열을 추가할 수 있다.
| 장점 | 단점 |
|---|---|
| 기존 Postgres 운용 · 백업 · 권한 관리를 유용할 수 있음 | 초대규모 · 초고 QPS(Queries Per Second)에서는 전용 엔진에 뒤처질 수 있음 |
| ... | |
| 적합한 사람: 이미 PostgreSQL을 사용 중인 팀, RAG의 데이터량이 수백만 벡터 미만인 단계. |
Chroma는 Python 생태계와 궁합이 좋으며, 몇 줄의 코드로 컬렉션 생성과 검색을 할 수 있다.
| 장점 | 단점 |
|---|---|
셋업이 가벼움 (pip install chromadb) | 대규모 본업에서는 스케일 설계(Scale Design)를 별도로 검토해야 함 |
| 로컬 영속화 · 서버 모드 모두 대응 | 엔터프라이즈용 운용 기능은 타 DB보다 부족함 |
| LangChain / LlamaIndex와의 연동 사례가 풍부함 | 멀티 테넌트(Multi-tenant) 등의 요건은 빠르게 한계를 확인해야 함 |
적합한 사람: RAG의 개념을 배우고 싶다, 사내 데모를 이번 주 안에 내놓아야 한다.
Qdrant는 Rust로 제작된 벡터 검색 엔진으로, Docker 하나로 셀프 호스트할 수 있다. Qdrant Cloud도 존재한다.
| 장점 | 단점 |
|---|---|
| 페이로드 (Metadata) 필터가 직관적임 | 팀에 따라 Weaviate/Pinecone보다 정보량이 적을 수 있음 |
| ... | ... |
| 적합한 사람: 클라우드 SaaS에 의존하지 않고 프로덕션을 구축하고 싶거나, 필터가 포함된 RAG를 견고하게 만들고 싶은 경우. |
Weaviate는 객체 지향형 스키마를 가지며, 벡터 검색 외에도 BM25 등의 키워드 검색을 결합하기 쉽다.
| 장점 | 단점 |
|---|---|
| 하이브리드 검색 (벡터 + 키워드)이 내장됨 | 개념 (Class, Property, Module) 학습이 필요함 |
| ... | ... |
| 적합한 사람: 키워드 일치와 의미 검색이 모두 필요하거나, 스키마를 명시적으로 설계하고 싶은 경우. |
Milvus는 대규모 벡터 데이터용으로 설계된 OSS(Open Source Software)이며, Zilliz Cloud를 통해 매니지드 서비스로도 제공된다.
| 장점 | 단점 |
|---|---|
| 십억 단위 규모의 벡터로 스케일링 가능 | 소규모 용도로는 구성이 과도해지기 쉬움 |
| ... | ... |
| 적합한 사람: 데이터량이 매우 크거나, 수평적 확장 (Horizontal Scale)이 전제된 프로덕트. |
Pinecone은 풀 매니지드 (Full-managed) 벡터 DB로, 인프라 관리를 최소화하고 싶은 팀이 주로 선택한다.
| 장점 | 단점 |
|---|---|
| 서버리스 (Serverless) 방식의 이용, 자동 스케일링 | 셀프 호스트 불가, 비용은 데이터량 및 QPS에 따라 달라짐 |
| ... | ... |
| 적합한 사람: 인프라 팀 규모가 작거나, 빠르게 프로덕션 RAG를 안정적으로 운영하고 싶은 경우. |
시작
│
├─ 이미 PostgreSQL을 프로덕션에서 사용 중인가?
...
| # | 확인 항목 | 이유 |
|---|---|---|
| 1 | 임베딩 차원 수와 DB의 상한선 | 모델 변경 시 재인덱싱 (Re-indexing)이 필요함 |
| ... | ... | ... |
- 사용할 임베딩 모델과 차원 수를 문서화했다.
- 예상 벡터 수 (1년 후)를 개략적으로 산출했다 (10만 / 100만 / 1000만).
- 메타데이터 필터 요구사항을 나열했다 (예: 공개 플래그, 카테고리, 업데이트 날짜).
- 매니지드 vs 셀프 호스트의 운영 비용 (인건비 포함)을 비교했다.
- 후보 2곳에 동일한 데이터셋을 넣어 검색 품질을 비교했다 (Recall@K).
- 백업 및 복구 (Backup/Restore) 절차를 확인했다.
- 프로덕션과 개발 환경에서 동일한 DB 제품을 사용할지 결정했다 (PoC에서 Chroma 사용 후 프로덕션으로 이전할 때의 비용).
패턴 1: 벤치마크 기사의 수치만 보고 결정하는 경우
타인의 환경에서의 QPS는 자사의 데이터 분포 및 필터 조건과 일치하지 않는다.
→ 대책: 자사의 청크 (Chunk) 데이터로 후보 2곳을 비교한다.
패턴 2: PoC용 DB를 그대로 프로덕션에 가져가는 경우
Chroma로 만든 프로토타입이 권한, 멀티테넌시 (Multi-tenancy), 모니터링 요구사항을 충족하지 못하게 된다.
→ 대책: PoC 단계에서 "프로덕션 후보와 동일 계열의 DB"로 검증하거나, 이전 비용을 산출한다.
패턴 3: pgvector를 사용하면서 인덱스를 설정하지 않은 채 프로덕션에 올리는 경우
데이터량이 늘어나면 전체 테이블 스캔 (Full Table Scan)이 발생하여 레이턴시 (Latency)가 급증한다.
→ 대책: HNSW 또는 IVFFlat 인덱스를 생성하고, EXPLAIN으로 확인한다.
패턴 4: 매니지드 DB의 비용 산출 부족
벡터 수, 쿼리 수, 스토리지의 종량제 비용이 예상치를 초과한다.
→ 대책: 1년 후의 벡터 수와 월간 쿼리 수를 기준으로 요금 시뮬레이터를 사용한다.
- 벡터 DB는 "임베딩 벡터의 저장과 유사도 검색"에 특화된 스토어다.
- 초보자는 **운영 형태 (매니지드/셀프 호스트)**와 기존 인프라와의 친화성을 기준으로 후보를 좁히는 것이 지름길이다.
- PoC라면 Chroma나 pgvector, 프로덕션 스케일이라면 Qdrant / Weaviate / Milvus / Pinecone이 대표적인 후보가 된다.
- 최종 판단은 자사 데이터에서의 검색 품질 비교와 운영 비용 (인건비 포함)을 통해 수행한다.
다음 단계로, 후보 2곳에 동일한 100개의 청크를 넣고, 동일한 쿼리 10개로 히트 결과를 나란히 놓고 비교해 보면, 표의 숫자만으로는 알 수 없는 "체감되는 정밀도 차이"를 파악할 수 있다.
- pgvector — GitHub
- Chroma — Documentation
- Qdrant — Documentation
- Weaviate — Documentation
- Milvus — Documentation
- Pinecone — Documentation
- Elasticsearch — Dense vector search
- OpenAI — Embeddings guide
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기