
VectorDB란
- 텍스트를 수치(벡터)로 저장하고 의미 기반으로 검색할 수 있는 데이터베이스
- VectorDB는 텍스트나 이미지를 임베딩(embedding) 모델을 통해 의미를 반영한 고차원 벡터(n-dimensional vector)로 변환해 저장
이 벡터 간의 거리를 계산해 문맥적으로 유사한 문서를 찾을 수 있다. - 저장 공간(로컬/클라우드)에 따른 성능 차이는 직접적이지 않으며, 실제 성능은 검색 알고리즘(인덱싱 구조) 에 따라 달라진다.
기존 DB와의 차이점
- 기존 DB는 단어(키워드) 단위의 저차원 인덱스 구조로 되어 있어,단어가 같지만 문맥이 다른 경우에도 동일한 결과로 인식하는 한계가 있었다.
- 반면 VectorDB는 텍스트를 임베딩 모델로 의미 기반 고차원 벡터로 변환하여 문맥적으로 유사한 문서를 검색할 수 있다.
- 임베딩 벡터는 일반적으로 텍스트보다 고차원 수치 데이터로 표현되지만, 이 구조 덕분에 벡터 간의 의미적 유사도 계산이 가능하고 검색 효율이 높아진다.
VectorDB 사용 시 주요 포인트
- 임베딩 모델에 따라 벡터 차원 수가 다르므로,
VectorDB 생성 시 모델의 차원 수를 정확히 지정해야 한다. - fetch_k: 검색 시 우선 가져올 문서 수
- k: 최종적으로 반환할 문서 수
→ 두 값의 균형이 정확도에 직접적인 영향을 준다.
fetch_k가 너무 작으면 좋은 문서를 놓칠 수 있고,
너무 크면 잡음이 많아져 정확도와 비용 효율이 떨어진다. - collection_name을 반드시 지정해야 한다.
지정하지 않으면 서로 다른 문서가 같은 VectorDB에 섞여 저장되어
검색 시 불필요한 문서까지 함께 반환되어 정확도가 낮아진다.
VectorDB 선택 기준
“로컬 환경 vs 클라우드 환경”, “데이터 규모, 예산, 확장성, 메타데이터 활용 여부”에 따라 선택이 달라진다.
- 로컬 VectorDB
→ 소규모 데이터, 개발·실험용 프로젝트에 적합 - 클라우드 VectorDB
→ 대규모 데이터, 빠른 검색 속도와 확장성이 필요한 서비스에 적합
대규모 데이터의 경우 클라우드 VectorDB는 분산 처리를 통해 빠른 검색이 가능하지만,
소규모 데이터에서는 로컬 VectorDB가 비용과 속도 면에서 더 효율적일 수 있다.
주요 VectorDB 비교
Chroma
- 오픈소스 로컬 VectorDB
- 장점
- 로컬에서 사용 가능 → 비용 절감
- 메타데이터 저장 및 필터링 지원
- 멀티모달(VectorDB) 구축 가능
(텍스트와 이미지는 임계치가 다르므로 별도 DB로 나누는 것이 정확도 향상에 유리)
- 단점
- 데이터 용량이 커질수록 성능 저하
- 분산 처리 불가 → 대규모 서비스에는 부적합
적합한 경우
- 데이터 규모가 크지 않음
- 다양한 필터링(메타데이터 검색 등)이 필요
- 빠른 검색보다는 기능적 다양성이 중요
- 개인 프로젝트 / 로컬 RAG 실험 환경
FAISS
- Meta(Facebook)에서 개발한 벡터 검색 라이브러리
- 밀집 벡터(Dense Vector)의 효율적 유사도 검색과 클러스터링에 특화
- 로컬 환경에서 동작, GPU 버전도 지원
- 장점
- 매우 빠른 검색 속도 (특히 GPU 사용 시)
- 다양한 인덱스 구조 선택 가능 (IVF, HNSW 등)
- 데이터를 어떻게 저장하고 나중에는 어떻게 검색할 수 있는지 설정해놓을 수 있다는 뜻 (Chroma와 Pinecone은 자동적으로 고정된 인덱싱 알고리즘을 사용하게끔 되어있음)
- 모든 벡터를 하나씩 직접 비교할 수도 있고 (Flat)
- 미리 비슷한 벡터끼리 그룹화해두고 그룹 단위로 탐색할 수도 있고 (IVF)
- 그래프 구조를 만들어서 빠르게 이동하며 가까운 벡터를 찾을 수도 있어요 (HNSW)
- 단점
- 라이브러리 형태이므로 직접 저장(write_index) 필요
- 메타데이터 관리 제한적
적합한 경우
- 데이터 규모가 어느 정도 크고, 검색 속도가 중요할 때
- 메타데이터 관리보다는 빠른 검색 성능이 필요한 경우
- 모델 학습용 벡터 실험, 추천 시스템, 로그 검색 등
Pinecone
- 클라우드 기반 완전 관리형(Vector as a Service)
- 의미 기반 검색에 최적화된 고성능 VectorDB
- 하이브리드 검색 시 metric을 dotproduct 로 지정하는 것이 일반적
- 장점
- 확장성 우수 – 대규모 데이터 관리에 용이
- 관리 편의성 – 완전 관리형 서비스로 인프라 부담 감소
- 실시간 업데이트 – 삽입, 삭제, 수정 즉시 반영
- 분산 처리 – 대량 데이터 검색 시에도 빠른 응답
- 단점
- 비용 – 클라우드 기반이라 사용량에 따라 과금
- 커스터마이징 제한 – 내부 인덱스 구조 변경 불가
Pinecone + Kiwi (Hybrid Search)
Pinecone은 의미 기반(semantic) 검색만 수행한다.
단어 기반(lexical) 검색을 보완하기 위해 한국어 형태소 분석기 Kiwi를 함께 사용한다.
- Pinecone → 문장의 “의미”를 벡터로 변환해 유사한 문장 검색
- Kiwi → 문장을 형태소 단위로 분석해 “정확한 단어” 검색
두 검색 방식을 결합하면
의미가 유사한 문서와 특정 키워드가 포함된 문서를 동시에 찾을 수 있는 Hybrid Search가 가능하다.
이 방식은 특히 한국어 RAG 환경에서 정확도와 커버리지를 모두 확보할 수 있는 효과적인 접근법이다.
VectorDB 선택 요약
| 구분 | Chroma | FAISS | Pinecone |
| 환경 | 로컬 | 로컬 | 클라우드 |
| 구조 | DB | 라이브러리 | 완전 관리형 서비스 |
| 메타데이터 관리 | 가능 | 불가 | 가능 |
| 확장성 | 낮음 | 중간 | 매우 높음 |
| 검색 속도 | 중간 | 빠름 | 매우 빠름 |
| 비용 | 무료 | 무료 | 유료 |
| 적합한 경우 | 소규모 / RAG 실험 | 중규모 / 속도 중시 | 대규모 / 상용 서비스 |
결론
VectorDB는 문장의 의미를 수치화하여 저장하고 검색하는 데이터베이스이다.
Chroma는 소규모 프로젝트와 메타데이터 관리 중심의 실험에 적합하고,
FAISS는 중규모 데이터에서 빠른 검색이 필요한 경우 유용하다.
Pinecone은 대규모 프로덕션 환경과 실시간 서비스에 적합하며, 한국어 환경에서는 Kiwi(형태소 분석기) 와 결합해 의미 검색과 키워드 검색을 동시에 수행하는 하이브리드 검색 구조를 구현할 수 있다.
'개발공부 > RAG' 카테고리의 다른 글
| ReRanker (0) | 2025.10.31 |
|---|---|
| Retriever (1) | 2025.10.20 |
| Embedding (임베딩) (0) | 2025.10.10 |
| Text Splitter (텍스트 분할) (0) | 2025.09.28 |
| langchain 공부하기 - LLM 평가 방법 : RAGAS (2) | 2025.07.08 |