#개념

벡터 데이터베이스(Vector Database)는 텍스트, 이미지, 오디오, 사용자·상품 등을 임베딩(Embedding) 모델로 변환한 고차원 실수 벡터를 저장하고, 주어진 질의 벡터와 의미적으로 가장 가까운 벡터들을 효율적으로 검색하는 데 특화된 데이터베이스다. 전통적인 관계형 데이터베이스는 값의 정확한 일치나 범위 조건으로 행을 찾지만, 벡터 데이터베이스는 "이 문장과 의미가 비슷한 문서", "이 이미지와 닮은 상품"처럼 거리 척도로 정의되는 유사도 검색(Similarity Search)을 핵심 연산으로 삼는다. $N$개의 $d$차원 벡터 중에서 질의와 가장 가까운 $k$개를 찾는 k-최근접 이웃(k-Nearest Neighbors, kNN) 탐색을 모든 벡터와 전수 비교(brute-force, flat search)로 수행하면 계산량이 $O(Nd)$가 되어 수억 개의 벡터에서는 실시간 응답이 불가능하다. 이 때문에 벡터 데이터베이스는 약간의 정확도를 희생하는 대신 검색 속도를 수십에서 수천 배 높이는 근사 최근접 이웃 탐색(Approximate Nearest Neighbor, ANN) 색인을 사용하며, 검색 결과가 정확한 kNN 결과와 얼마나 일치하는지를 나타내는 재현율(Recall)을 품질 지표로 삼는다. 벡터 간의 거리는 주로 세 가지 척도로 측정한다. 코사인 유사도(Cosine Similarity)는 두 벡터 사이 각도의 코사인 값으로 방향의 유사성만 비교하여 텍스트 임베딩에 널리 쓰이고, 유클리드 거리(L2 Distance)는 $\sqrt{\sum_i (a_i - b_i)^2}$로 벡터 간의 직선 거리를 재며, 내적(Inner Product, Dot Product)은 $\sum_i a_i b_i$로 방향과 크기를 함께 반영하여 추천 시스템의 사용자·아이템 벡터 비교에 자주 사용된다. 벡터를 단위 길이로 정규화하면 세 척도는 동일한 순위를 만들며, 어떤 척도를 사용할지는 임베딩 모델이 학습된 방식과 일치시켜야 한다.
벡터 데이터베이스의 성능은 ANN 색인 구조에 의해 결정되며, 대표적인 세 계열이 있다. HNSW(Hierarchical Navigable Small World)는 Malkov와 Yashunin(2016)이 제안한 그래프 기반 색인으로, 각 벡터를 노드로 하여 가까운 이웃끼리 연결한 근접 그래프를 여러 층으로 쌓는다. 상위 층은 노드가 적고 긴 연결로 이루어져 탐색의 "고속도로" 역할을 하고, 하위 층으로 내려갈수록 노드가 조밀해지며, 검색은 최상위 층의 진입점에서 시작해 탐욕적으로 질의에 가까운 노드로 이동하며 층을 내려가는 방식으로 진행되어 로그 규모의 탐색 복잡도를 보인다. 노드당 연결 수 $M$, 색인 구축 시 후보 폭 $ef\_construction$, 검색 시 후보 폭 $ef$가 주요 매개변수로, 값을 키우면 재현율이 높아지는 대신 메모리와 지연 시간이 증가한다. HNSW는 높은 재현율과 빠른 질의 속도로 대부분의 벡터 데이터베이스가 기본 색인으로 채택하지만, 그래프 전체를 메모리에 유지해야 하고 대량 삽입·삭제 시 색인 관리가 까다롭다. IVF(Inverted File Index)는 k-평균 군집화(K-Means Clustering)로 벡터 공간을 $nlist$개의 셀(Voronoi cell)로 분할하고 각 벡터를 가장 가까운 중심점(centroid)의 목록에 저장한 뒤, 검색 시 질의와 가까운 $nprobe$개의 셀만 탐색하는 역색인 방식이다. 구현이 단순하고 메모리 효율이 좋으며 $nprobe$로 정확도와 속도를 직관적으로 조절할 수 있지만, 셀 경계 근처의 벡터를 놓칠 수 있고 데이터 분포가 바뀌면 중심점을 다시 학습해야 한다. 곱 양자화(Product Quantization, PQ)는 Jégou 등(2011)이 제안한 벡터 압축 기법으로, $d$차원 벡터를 $m$개의 부분 벡터로 나누고 각 부분 공간을 독립적으로 $k$-평균으로 양자화하여 벡터를 $m$개의 중심점 인덱스(예: 각 8비트)로 표현한다. 1,536차원 32비트 실수 벡터(6KB)를 수십 바이트로 줄일 수 있으며, 질의와 각 부분 중심점 사이의 거리를 미리 계산한 표를 조회하여 거리를 근사(asymmetric distance computation)하므로 압축된 상태에서 빠른 검색이 가능하다. 실제 시스템에서는 IVF로 탐색 범위를 좁히고 PQ로 메모리를 줄이는 IVF-PQ, HNSW 그래프에 PQ나 스칼라 양자화(Scalar Quantization, SQ)를 결합한 변형, 그리고 SSD에 그래프를 두어 메모리보다 큰 데이터를 다루는 DiskANN 같은 디스크 기반 색인이 함께 사용된다. 결국 색인 선택은 정확도(재현율)-지연 시간-메모리 사이의 삼각 절충이며, HNSW는 정확도와 속도가 높은 대신 메모리를 많이 쓰고, IVF-PQ는 메모리를 크게 절약하는 대신 재현율이 낮아지며, 플랫 색인은 정확하지만 느리다. 벡터 데이터베이스는 이 절충을 컬렉션 단위로 설정하고 재현율-QPS(초당 질의 수) 곡선으로 벤치마크한다.
실무의 검색은 벡터 유사도만으로 끝나지 않는다. 메타데이터 필터링(Metadata Filtering)은 "2024년 이후 작성된 한국어 문서 중에서", "이 사용자가 열람 권한이 있는 문서 중에서"처럼 구조화된 조건과 벡터 검색을 결합하는 기능으로, 벡터 데이터베이스는 각 벡터에 JSON 형태의 페이로드(payload)를 함께 저장하고 이에 대한 보조 색인을 유지한다. 필터를 적용하는 방식에는 벡터 검색 후 조건을 거르는 후처리 필터링(post-filtering), 조건에 맞는 벡터만 먼저 추린 뒤 검색하는 사전 필터링(pre-filtering), 그리고 HNSW 그래프 탐색 중에 조건을 확인하는 필터 인식 탐색이 있다. 후처리 필터링은 선택도가 높은 조건에서 결과가 $k$개에 못 미칠 수 있고, 사전 필터링은 후보가 많으면 느려지므로, 대부분의 벡터 데이터베이스는 조건의 선택도에 따라 전략을 자동으로 전환한다. 하이브리드 검색(Hybrid Search)은 밀집 벡터 검색과 BM25나 SPLADE 같은 희소 벡터(sparse vector) 기반 키워드 검색을 결합하여 상호 순위 융합(Reciprocal Rank Fusion)이나 가중합으로 최종 순위를 만드는 방식으로, 의미적 유사성과 정확한 어휘 일치를 모두 반영하기 위해 널리 사용되며, 최근 벡터 데이터베이스는 희소 벡터 색인과 융합 연산을 내장하고 있다. 이 밖에도 여러 임베딩 모델의 벡터를 한 레코드에 함께 저장하는 다중 벡터(named vectors), 하나의 문서를 여러 토큰 벡터로 표현하는 ColBERT식 후기 상호작용(late interaction), 검색 결과를 크로스 인코더로 재정렬하는 리랭킹 연동, 이진·정수 양자화를 통한 비용 절감 등이 주요 기능으로 자리 잡았다.
벡터 데이터베이스 제품은 크게 두 진영으로 나뉜다. 전용 벡터 데이터베이스는 벡터 검색을 위해 처음부터 설계된 시스템으로, Milvus는 스토리지·색인·질의 노드를 분리한 클라우드 네이티브 아키텍처로 수십억 벡터 규모의 수평 확장을 지향하고, Qdrant는 Rust로 구현되어 필터 인식 HNSW와 양자화, 희소 벡터를 지원하며, Weaviate는 객체와 벡터를 함께 저장하고 임베딩 생성 모듈과 GraphQL 인터페이스를 내장하며, Pinecone은 인프라 관리가 필요 없는 완전 관리형 서비스로 제공된다. 이 밖에 Chroma나 LanceDB처럼 프로토타이핑과 임베디드 사용에 적합한 경량 저장소, Faiss나 hnswlib처럼 데이터베이스 기능 없이 색인 알고리즘만 제공하는 라이브러리도 있다. 반면 기존 데이터베이스의 벡터 확장은 이미 운영 중인 시스템에 벡터 타입과 ANN 색인을 추가하는 접근이다. PostgreSQL의 pgvector 확장은 vector 자료형과 HNSW·IVFFlat 색인을 제공하여 SQL의 조인·트랜잭션과 벡터 검색을 한 질의에서 결합할 수 있고, Elasticsearch와 OpenSearch는 dense_vector 필드와 HNSW 색인을 텍스트 역색인과 함께 제공하여 하이브리드 검색에 강점이 있으며, Redis는 인메모리 특성을 살린 초저지연 벡터 검색을, MongoDB·Cassandra·ClickHouse 등도 벡터 검색 기능을 갖추고 있다. 전용 데이터베이스는 대규모 벡터에서의 성능과 벡터 특화 기능이 풍부한 대신 새로운 시스템을 운영하고 원본 데이터와 동기화해야 하는 부담이 있고, 확장 방식은 데이터가 한곳에 있어 정합성 유지와 운영이 단순하지만 수천만 벡터를 넘는 규모나 높은 QPS에서는 성능 한계에 부딪힐 수 있다. 벡터 수가 수백만 개 이하이고 이미 PostgreSQL이나 Elasticsearch를 쓰고 있다면 확장 방식으로 시작하고, 규모와 지연 시간 요구가 커지면 전용 시스템으로 옮기는 것이 일반적인 선택 기준이다.
운영 관점에서 벡터 데이터베이스는 몇 가지 고유한 고려 사항을 갖는다. 첫째, 임베딩 모델 버전 관리가 필수적이다. 질의와 저장된 벡터는 반드시 같은 모델로 만들어져야 하며, 모델을 교체하면 전체 데이터를 다시 임베딩하고 재색인해야 하므로 컬렉션에 모델 이름과 버전을 기록하고 무중단으로 새 컬렉션에 전환하는 절차가 필요하다. 둘째, 데이터 갱신과 삭제다. HNSW 같은 그래프 색인은 삭제를 즉시 반영하기 어려워 삭제 표시(tombstone) 후 주기적으로 세그먼트를 병합·재구축하는 방식을 쓰며, 잦은 갱신은 색인 품질과 재현율에 영향을 줄 수 있어 배치 적재와 실시간 적재를 분리하는 설계가 흔하다. 셋째, 용량 계획이다. 벡터 메모리는 대략 $N \times d \times 4$바이트에 HNSW 그래프 연결 정보를 더한 크기이므로, 1억 개의 1,024차원 벡터는 원본만 400GB에 이르며 양자화, 차원 축소(Matryoshka 임베딩 등), 디스크 색인으로 비용을 관리해야 한다. 넷째, 분산과 가용성으로, 데이터를 샤드로 나누어 여러 노드에 분산하고 복제본으로 장애를 견디며, 필터와 다중 테넌시(multi-tenancy)를 파티션이나 네임스페이스로 분리하여 테넌트 간 격리와 성능을 확보한다. 다섯째, 관측과 평가로, 재현율·지연 시간·QPS를 지속적으로 측정하고 $ef$나 $nprobe$ 같은 검색 매개변수를 서비스 수준 목표에 맞게 조정하며, 색인 구축 시간과 메모리 사용량을 감시한다. 벡터 데이터베이스는 검색 증강 생성(Retrieval-Augmented Generation, RAG)의 지식 저장소, 의미 기반 문서·상품 검색, 유사 이미지 검색, 추천 시스템의 후보 생성, 이상 탐지와 중복 제거, 장기 기억이 필요한 AI 에이전트 등 임베딩을 활용하는 거의 모든 응용의 기반 인프라이며, LLM 응용의 확산과 함께 데이터 플랫폼의 표준 구성 요소로 자리 잡고 있다.

#관련 용어

임베딩
객체를 의미적 유사성이 보존되는 실수 벡터로 변환한 표현으로, 벡터 데이터베이스에 저장되는 기본 단위
근사 최근접 이웃 탐색(ANN)
약간의 정확도를 희생하여 대규모 벡터 집합에서 질의와 가까운 벡터를 빠르게 찾는 색인 기반 검색 기법
HNSW
다층 근접 그래프를 탐욕적으로 탐색하여 높은 재현율과 빠른 속도를 제공하는 그래프 기반 ANN 색인
곱 양자화(PQ)
벡터를 부분 공간별 중심점 인덱스로 압축하여 메모리 사용량을 크게 줄이는 벡터 양자화 기법
k-평균 군집화
벡터 공간을 중심점 기준의 셀로 분할하는 알고리즘으로, IVF 색인과 PQ의 코드북 학습에 사용된다
검색 증강 생성(RAG)
벡터 데이터베이스에서 검색한 문서를 언어 모델의 입력에 포함하여 답변을 생성하는 기법

#직무 연관도

DA
Data Analyst
낮음
유사 문서·고객 탐색이나 중복 제거에 의미 검색을 활용하고, 검색 품질 지표를 비즈니스 관점에서 해석하는 데 활용된다
DS
Data Scientist
높음
임베딩 모델 선택과 거리 척도 결정, 색인 매개변수에 따른 재현율 평가, 의미 검색·추천 후보 생성 실험에 직접 활용된다
DE
Data Engineer
밀접
색인 구조 선택과 정확도-지연-메모리 절충, 전용 DB와 확장 방식의 선정, 재색인·샤딩·모니터링 등 벡터 검색 인프라 구축과 운영의 핵심 영역

#사용 사례

인터넷 서비스전자상거래금융의료미디어통신제조
개요
벡터 데이터베이스는 RAG 기반 질의응답 시스템의 지식 저장소, 의미 기반 문서·상품 검색, 유사 이미지·음악 검색, 추천 시스템의 후보 생성, 이상 거래 탐지, 중복 콘텐츠 제거, 얼굴·지문 등 생체 인식, AI 에이전트의 장기 기억 저장 등 임베딩 유사도 검색이 필요한 다양한 서비스에 활용된다.
사례
패션 전자상거래 플랫폼에서 수천만 개의 상품 이미지를 멀티모달 임베딩으로 변환하여 HNSW 색인의 벡터 데이터베이스에 저장하면, 사용자가 사진을 올렸을 때 카테고리·가격대·재고 여부 같은 메타데이터 필터를 적용한 상태에서 수십 밀리초 안에 시각적으로 유사한 상품을 찾아 보여줄 수 있다. 상품 설명 텍스트의 임베딩과 BM25 키워드 점수를 함께 사용하는 하이브리드 검색으로 "여름용 린넨 셔츠"처럼 의미와 어휘가 모두 중요한 검색어에도 대응한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.