Zvec은 Alibaba가 공개한 오픈소스 인프로세스(in-process) 벡터 데이터베이스다. 별도 서버를 띄우지 않고 Python, Node.js, Go, Rust, Dart/Flutter 애플리케이션 안에 직접 임베드해 벡터 검색, 전문 검색(full-text search), 하이브리드 검색을 처리한다.
왜 주목할 만한가
많은 벡터 데이터베이스는 독립 서버나 관리형 클러스터로 운영된다. 운영 규모가 커지면 이 방식이 맞지만, 로컬 앱, 엣지 디바이스, 데스크톱 도구, 테스트 환경, 작은 rag 서비스에는 네트워크 홉과 별도 운영 부담이 더 큰 문제가 된다. Zvec은 “검색 엔진을 앱에 넣는” 방향을 택한다.
v0.5.0 기준으로 Zvec은 문자열 필드 전문 검색, dense/sparse vector, scalar filter, MultiQuery 기반 하이브리드 검색, WAL 기반 영속성, DiskANN 온디스크 인덱스를 제공한다.
핵심 기능
| 기능 | 설명 |
|---|---|
| 인프로세스 실행 | 별도 서버 없이 라이브러리처럼 링크해 사용 |
| Dense + sparse vector | 임베딩 기반 검색과 sparse 검색을 함께 지원 |
| Full-text search | 문자열 필드에 FTS 인덱스를 붙여 키워드 검색 수행 |
| Hybrid retrieval | 벡터, 전문 검색, 필터 조건을 한 번의 쿼리로 조합 |
| DiskANN | 큰 인덱스를 디스크에 두어 메모리 사용량 절감 |
| WAL | 프로세스 크래시나 전원 장애에도 쓰기 내구성 확보 |
설치
pip install zvec
npm install @zvec/zvec공식 SDK는 Python, Node.js, Go, Rust, Dart/Flutter를 지원한다. 시각적으로 컬렉션을 탐색하고 쿼리를 디버깅하려면 Zvec Studio를 사용할 수 있다.
사용 대상
- 로컬 RAG 앱 개발자: SQLite처럼 앱과 함께 배포되는 벡터 검색 저장소가 필요할 때
- 엣지/데스크톱 앱 개발자: 서버형 벡터 DB를 운영하기 어려운 환경에서 검색 기능을 넣을 때
- 프로토타입 팀: Qdrant, Milvus, Weaviate 같은 서버형 시스템을 도입하기 전 빠르게 검색 품질을 검증할 때
주의할 점
Zvec은 인프로세스 설계이므로 다중 테넌트 운영, 대규모 분산 인덱싱, 엄격한 운영 관측성이 필요한 환경에서는 서버형 벡터 DB가 더 적합할 수 있다. 반대로 단일 앱 안에서 낮은 지연시간과 단순 배포가 중요하다면 Zvec의 설계가 장점이 된다.
관련 문서
- vector-db-tips-comparison — 벡터 데이터베이스 선택 기준
- rag — 검색 증강 생성의 기본 구조
- supavec — Supabase 기반 오픈소스 벡터 검색 엔진
참고 자료
- alibaba/zvec — GitHub 공식 저장소