Vector Database
고차원 벡터 임베딩을 저장하고 밀리초 단위의 유사도 검색을 수행하는 AI 시대의 핵심 데이터 인프라. RAG, 추천 시스템, 시맨틱 검색의 기반 기술로 2024년 엔터프라이즈 AI 스택의 필수 구성요소로 자리잡았습니다.
1. Executive Summary
2. Vector Database 정의
3. 핵심 개념: 임베딩과 유사도
4. 인덱싱 알고리즘
5. 주요 Vector Database 비교
6. AWS 기반 구현
7. 활용 사례
8. 성능 최적화
9. 선택 가이드
10. 참고 자료
1. Executive Summary
Vector Database는 텍스트, 이미지, 오디오 등 비정형 데이터를 고차원 벡터(임베딩)로 변환하여 저장하고, 의미적 유사도 기반 검색을 수행하는 특수 목적 데이터베이스입니다. 전통적인 키워드 검색이 아닌시맨틱 검색을 가능하게 하여 AI 애플리케이션의 핵심 인프라로 부상했습니다.
<10ms
10억 벡터 검색 시간
99%+
Recall 정확도 (HNSW)
1536D
일반적 임베딩 차원
$2.8B
2028년 시장 규모 전망
핵심 요약
- 비정형 데이터를 벡터 임베딩으로 변환하여 저장
- ANN(Approximate Nearest Neighbor) 알고리즘으로 밀리초 검색
- RAG, 추천 시스템, 이상 탐지, 이미지 검색 등 AI 핵심 인프라
- Pinecone, Weaviate, Qdrant, Milvus, pgvector 등 다양한 선택지
2. Vector Database 정의
“A vector database stores data as high-dimensional vectors and enables fast similarity searches using approximate nearest neighbor algorithms.”
Vector Database는 데이터를 고차원 수치 벡터로 표현하여 저장합니다. 각 벡터는 원본 데이터의 의미적 특성을 수백~수천 개의 숫자로 인코딩합니다. 이를 통해 “비슷한 의미”를 가진 데이터를 빠르게 찾을 수 있습니다.
전통적 데이터베이스
- • 정확한 키워드 매칭
- • 구조화된 데이터 (행/열)
- • SQL 쿼리
- • B-tree, Hash 인덱스
Vector Database
- • 의미적 유사도 검색
- • 비정형 데이터 (텍스트, 이미지)
- • 벡터 쿼리 (k-NN)
- • HNSW, IVF 인덱스
시맨틱 검색
“강아지”를 검색하면 “puppy”, “개”, “반려견” 등 의미적으로 유사한 결과도 반환
RAG (Retrieval-Augmented Generation)
LLM에 관련 컨텍스트를 제공하여 정확한 응답 생성. Vector DB는 RAG의 핵심 구성요소
실시간 추천
사용자 행동/선호도 벡터와 유사한 상품/콘텐츠를 밀리초 내 검색
멀티모달 검색
텍스트로 이미지 검색, 이미지로 유사 이미지 검색 등 다양한 형식 간 검색
3. 핵심 개념: 임베딩과 유사도
임베딩은 텍스트, 이미지 등의 데이터를 고차원 공간의 점(벡터)으로 변환한 것입니다. 의미적으로 유사한 데이터는 벡터 공간에서 가까운 위치에 배치됩니다.
# 텍스트를 벡터로 변환하는 예시 "강아지가 공원에서 뛰어놀고 있다" → [0.23, -0.45, 0.12, ..., 0.67] # 1536차원 "개가 잔디밭에서 놀고 있다" → [0.21, -0.43, 0.14, ..., 0.65] # 유사한 벡터 "주식 시장이 상승했다" → [-0.56, 0.78, -0.23, ..., 0.11] # 다른 벡터 # 유사도 계산 cosine_similarity(강아지, 개) = 0.95 # 높은 유사도 cosine_similarity(강아지, 주식) = 0.12 # 낮은 유사도
384-4096
일반적인 벡터 차원
1536
OpenAI text-embedding-3-small
3072
OpenAI text-embedding-3-large
| 방법 | 공식 | 범위 | 특징 | 사용 사례 |
|---|---|---|---|---|
| Cosine Similarity | cos(θ) = A·B / (|A||B|) | -1 ~ 1 | 방향만 비교, 크기 무시 | 텍스트 유사도 (가장 일반적) |
| Euclidean (L2) | √Σ(Ai-Bi)² | 0 ~ ∞ | 실제 거리 측정 | 이미지, 클러스터링 |
| Dot Product | Σ(Ai × Bi) | -∞ ~ ∞ | 방향 + 크기 모두 반영 | 추천 시스템 |
| Manhattan (L1) | Σ|Ai-Bi| | 0 ~ ∞ | 격자 거리 | 희소 벡터 |
4. 인덱싱 알고리즘
수십억 개의 벡터에서 정확한 최근접 이웃을 찾는 것은 계산적으로 불가능합니다. ANN 알고리즘은 약간의 정확도를 희생하여 밀리초 단위 검색을 가능하게 합니다.
HNSW (Hierarchical Navigable Small World)
그래프 기반 알고리즘. 계층적 구조로 빠른 탐색 가능.
- ✓ 높은 정확도 (99%+ recall)
- ✓ 빠른 검색 속도
- ✓ 동적 삽입/삭제 지원
- △ 메모리 사용량 높음
- △ 인덱스 빌드 시간 김
IVF (Inverted File Index)
클러스터링 기반. 벡터를 그룹으로 나누어 검색 범위 축소.
- ✓ 메모리 효율적
- ✓ 빠른 인덱스 빌드
- ✓ 대규모 데이터셋에 적합
- △ HNSW 대비 낮은 정확도
- △ 클러스터 수 튜닝 필요
| 알고리즘 | 검색 속도 | 정확도 | 메모리 | 빌드 시간 | 적합한 상황 |
|---|---|---|---|---|---|
| HNSW | 매우 빠름 | 매우 높음 | 높음 | 느림 | 정확도 중시, 실시간 검색 |
| IVF | 빠름 | 중간 | 낮음 | 빠름 | 대규모 데이터, 비용 중시 |
| PQ (Product Quantization) | 빠름 | 중간 | 매우 낮음 | 중간 | 메모리 제한 환경 |
| Flat (Brute Force) | 느림 | 100% | 중간 | 없음 | 소규모, 정확도 필수 |
5. 주요 Vector Database 비교
| Database | 유형 | 인덱스 | 하이브리드 | 호스팅 | 강점 |
|---|---|---|---|---|---|
| Pinecone | 관리형 | 독자 | ✓ | 클라우드 | Zero-ops, 빠른 시작 |
| Weaviate | 오픈소스 | HNSW | ✓ | 둘 다 | 멀티모달, GraphQL |
| Qdrant | 오픈소스 | HNSW | ✓ | 둘 다 | Rust 성능, 필터링 |
| Milvus | 오픈소스 | 다양 | ✓ | 둘 다 | 대규모, GPU 지원 |
| Chroma | 오픈소스 | HNSW | ✗ | 로컬 | 간편함, 프로토타입 |
| pgvector | 확장 | HNSW/IVF | ✓ | 둘 다 | PostgreSQL 통합 |
| OpenSearch | 관리형 | HNSW | ✓ | AWS | AWS 통합, 엔터프라이즈 |
- 완전 관리형, Zero-ops
- 빠른 시작, 간편한 API
- 하이브리드 검색 지원
- 벤더 종속, 비용 높음
- 텍스트, 이미지, 오디오 통합
- GraphQL API
- 셀프호스팅/클라우드 선택
- 학습 곡선 있음
6. AWS 기반 구현
Amazon OpenSearch Serverless
Bedrock Knowledge Bases의 기본 벡터 스토어
- ✓ 완전 관리형, 자동 스케일링
- ✓ 하이브리드 검색 (BM25 + kNN)
- ✓ Bedrock 네이티브 통합
- ✓ 엔터프라이즈 보안
Amazon Aurora PostgreSQL + pgvector
기존 PostgreSQL 인프라 활용
- ✓ 익숙한 SQL 인터페이스
- ✓ 트랜잭션 지원
- ✓ 기존 데이터와 조인 가능
- ✓ 비용 효율적
┌─────────────────────────────────────────────────────────────────┐ │ Amazon Bedrock Knowledge Bases │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ┌──────────┐ ┌──────────────┐ ┌───────────────────┐ │ │ │ S3 │───►│ Bedrock │───►│ OpenSearch │ │ │ │ Documents│ │ Embedding │ │ Serverless │ │ │ │ │ │ (Titan/Cohere)│ │ (Vector Store) │ │ │ └──────────┘ └──────────────┘ └─────────┬─────────┘ │ │ │ │ │ ┌──────────┐ ┌──────────────┐ │ │ │ │ Query │───►│ Retrieve │◄─────────────┘ │ │ │ │ │ & Generate │ │ │ └──────────┘ └──────┬───────┘ │ │ │ │ │ ▼ │ │ ┌──────────────┐ │ │ │ Response │ │ │ │ + Citations │ │ │ └──────────────┘ │ └─────────────────────────────────────────────────────────────────┘
7. 활용 사례
LLM에 관련 문서를 컨텍스트로 제공하여 정확한 응답 생성
키워드가 아닌 의미 기반 검색으로 관련 문서 발견
사용자/상품 임베딩으로 유사 아이템 실시간 추천
정상 패턴과 거리가 먼 벡터를 이상으로 탐지
텍스트로 이미지 검색, 유사 이미지 찾기
유사한 문서, 이미지, 코드 중복 식별
8. 성능 최적화
인덱스 최적화
- • HNSW: ef_construction, M 파라미터 튜닝
- • IVF: nlist (클러스터 수) 최적화
- • 데이터 크기에 맞는 알고리즘 선택
- • 정기적인 인덱스 리빌드
쿼리 최적화
- • 메타데이터 필터링으로 검색 범위 축소
- • 적절한 Top-K 값 설정
- • 배치 쿼리 활용
- • 캐싱 전략 적용
9. 선택 가이드
🚀 빠른 시작, 관리 최소화
→ Pinecone (관리형, Zero-ops)
🏢 AWS 엔터프라이즈 환경
→ OpenSearch Serverless (Bedrock 통합)
💰 비용 효율, 기존 PostgreSQL
→ pgvector (Aurora/RDS)
🔧 프로토타입, 로컬 개발
→ Chroma (간편, 무료)
🖼️ 멀티모달, 온프레미스
→ Weaviate (오픈소스, 유연)
10. 참고 자료
공식 문서
- • Amazon OpenSearch Service
- • Pinecone Documentation
- • Weaviate Docs
- • pgvector GitHub
벤치마크
- • ANN Benchmarks
- • VectorDBBench
- • Zilliz Benchmark
Vector Database는 AI 시대의 핵심 데이터 인프라입니다. 비정형 데이터를 벡터로 변환하여 의미 기반 검색을 가능하게 하며, RAG, 추천 시스템, 시맨틱 검색의 기반 기술로 활용됩니다.
핵심 요약
- • 정의: 고차원 벡터 저장 및 유사도 검색 DB
- • 핵심 알고리즘: HNSW (정확도), IVF (효율)
- • 유사도: Cosine, Euclidean, Dot Product
- • AWS: OpenSearch Serverless, Aurora pgvector
선택 기준
- 1. 관리형 vs 셀프호스팅
- 2. 데이터 규모 및 성장 예상
- 3. 하이브리드 검색 필요 여부
- 4. 기존 인프라 통합
- 5. 비용 및 성능 요구사항