개요
벡터 데이터베이스는 고차원 벡터(임베딩)를 저장하고 **유사도 검색 (Similarity Search)**을 수행하는 특화 데이터베이스입니다. RAG, 추천 시스템, 이미지 검색 등 AI 애플리케이션의 핵심 인프라입니다.
핵심 개념
[텍스트/이미지] → [임베딩 모델] → [벡터 (e.g., [0.12, -0.34, 0.56, ...])] → [벡터 DB 저장]
↓
[검색 쿼리] → [임베딩] → [쿼리 벡터] → [유사도 검색 (ANN)] → [가장 유사한 k개 결과]
| 개념 | 설명 |
|---|
| 임베딩 (Embedding) | 텍스트/이미지를 고차원 숫자 벡터로 변환 |
| ANN (Approximate Nearest Neighbor) | 근사 최근접 이웃 검색 (정확도 vs 속도 트레이드오프) |
| 코사인 유사도 | 벡터 간 각도 기반 유사도 (-1 ~ 1) |
| HNSW | 그래프 기반 ANN 알고리즘 (가장 널리 사용) |
| IVF | 클러스터 기반 ANN (대규모에 효율적) |
전용 벡터 데이터베이스
Pinecone
| 항목 | 내용 |
|---|
| 유형 | 완전 관리형 (SaaS) |
| 핵심 | 설정 없이 바로 사용, 엔터프라이즈 안정성 |
| 인덱스 | 자체 최적화 |
| 무료 | 1개 인덱스, 100K 벡터 |
| 강점 | 가장 쉬운 시작, 스케일링 자동 |
| 약점 | 벤더 종속, 비용 높음, 셀프호스팅 불가 |
Weaviate
Milvus / Zilliz
| 항목 | 내용 |
|---|
| 유형 | 오픈소스 (Milvus) + 클라우드 (Zilliz) |
| 핵심 | 대규모 프로덕션 특화, 수십억 벡터 |
| 인덱스 | IVF, HNSW, DiskANN 등 다양 |
| 언어 | Go + C++ |
| 강점 | 스케일링, GPU 가속 검색, 가장 많은 인덱스 옵션 |
| 약점 | 설정 복잡 (Kubernetes 권장) |
| GitHub | https://github.com/milvus-io/milvus |
Qdrant
Chroma
기존 DB의 벡터 확장
| DB | 벡터 지원 | 특징 |
|---|
| PostgreSQL + pgvector | 확장 | 기존 PostgreSQL에 벡터 검색 추가, SQL과 통합 |
| Elasticsearch | 내장 (8.0+) | kNN 검색, 기존 검색 인프라 활용 |
| Redis Stack | 모듈 | 캐시 + 벡터 검색 통합 |
| MongoDB Atlas | 내장 | 도큐먼트 + 벡터 통합 |
| Supabase (pgvector) | 확장 | BaaS + 벡터 검색 |
| SingleStore | 내장 | OLTP + OLAP + 벡터 통합 |
| SQLite + sqlite-vec | 확장 | 임베디드 벡터 검색 |
비교
| DB | 유형 | 스케일 | 하이브리드 검색 | 셀프호스팅 | 난이도 | 최적 용도 |
|---|
| Pinecone | SaaS | 대 | X | X | 최저 | 빠른 시작, 관리형 |
| Weaviate | 오픈소스 | 대 | 네이티브 | O | 중간 | RAG (하이브리드) |
| Milvus | 오픈소스 | 최대 | O | O | 높음 | 대규모 프로덕션 |
| Qdrant | 오픈소스 | 대 | O | O | 중간 | 고성능, 필터링 |
| Chroma | 오픈소스 | 소~중 | X | O | 최저 | 프로토타입, 개발 |
| pgvector | 확장 | 중 | O (SQL) | O | 낮음 | 기존 PostgreSQL 활용 |
선택 가이드
| 상황 | 추천 |
|---|
| 빠른 프로토타입 | Chroma (pip install) |
| 프로덕션 RAG | Qdrant or Weaviate |
| 기존 PostgreSQL 있음 | pgvector |
| 대규모 (수십억 벡터) | Milvus |
| 관리형 원하면 | Pinecone |
| BaaS 통합 | Supabase (pgvector) |
관련 항목