벡터 데이터베이스
중급벡터 데이터베이스는 AI 문맥에서 자주 등장하는 개념입니다. 이 페이지는 중급 난이도로 벡터 데이터베이스의 뜻과 쓰임을 빠르게 이해할 수 있도록 정리한 AI 용어사전 항목입니다.
벡터 데이터베이스를 처음 보는 독자도 헷갈리지 않도록 정의와 맥락, 관련 글 1개를 한 페이지에 묶었습니다. 아래 설명을 먼저 읽고, 이어서 연결된 개념과 글까지 보면 이해가 훨씬 빨라집니다.
벡터 데이터베이스(Vector Database)는 임베딩 벡터를 저장하고, 벡터 간 유사도를 기반으로 빠르게 검색할 수 있도록 설계된 특수한 데이터베이스입니다. 기존 관계형 DB가 정확한 키워드 매칭에 특화되어 있다면, 벡터 DB는 의미 기반 검색에 최적화되어 있습니다.
기존 데이터베이스와의 가장 큰 차이점은 검색 방식입니다. 일반 DB에서 '강아지'를 검색하면 '강아지'라는 단어가 포함된 결과만 나옵니다. 하지만 벡터 DB에서는 '귀여운 반려견'이나 '펫 케어'처럼 의미적으로 유사한 결과도 함께 찾아줍니다. 이것이 가능한 이유는 ANN(Approximate Nearest Neighbor) 알고리즘으로 수백만 개의 벡터 중에서 가장 가까운 것들을 빠르게 찾아내기 때문입니다.
대표적인 벡터 데이터베이스로는 Pinecone, Weaviate, Chroma, Qdrant 등이 있습니다. PostgreSQL에 벡터 검색을 추가하는 pgvector 확장도 많이 쓰입니다. RAG 시스템에서 벡터 DB는 문서 임베딩을 저장하고 질문과 가장 관련 있는 문서를 찾아주는 핵심 역할을 합니다.
벡터 데이터베이스는 '의미를 이해하는 도서관 사서'와 같습니다. 일반 검색이 책 제목이나 색인에서 정확한 단어를 찾는 방식이라면, 벡터 DB는 '이런 내용의 책이 필요한데'라고 말하면 내용이 비슷한 책을 알아서 찾아주는 사서입니다.
벡터 데이터베이스가 중요해진 배경에는 대규모 언어 모델의 확산이 있습니다. LLM은 학습 데이터의 한계 때문에 최신 정보나 기업 내부 문서를 모릅니다. 그래서 실시간으로 관련 문서를 검색해 모델에게 제공하는 RAG(Retrieval-Augmented Generation) 아키텍처가 필요해졌고, 이 흐름에서 벡터 DB가 핵심 인프라로 자리 잡았습니다.
벡터가 어떻게 만들어지는지 이해하면 벡터 DB의 작동 원리가 더 명확해집니다. 텍스트나 이미지를 임베딩 모델에 입력하면 수백 차원의 숫자 배열이 출력됩니다. 예를 들어 '왕'이라는 단어는 [0.25, -0.13, 0.87, ...] 같은 형태로 표현됩니다. 의미가 비슷한 단어나 문장은 이 숫자 배열이 서로 가까운 공간에 위치합니다. 벡터 DB는 이 수치들을 저장하고, 검색 시 코사인 유사도나 내적 같은 계산으로 가장 가까운 벡터를 찾아냅니다.
실제 활용 사례는 매우 다양합니다. 고객 지원 챗봇에서는 사용자의 질문을 벡터로 변환한 뒤 FAQ 문서 중 가장 유사한 항목을 찾아 답변을 생성합니다. 전자상거래 플랫폼에서는 상품 설명을 벡터화해 '빨간 원피스와 어울리는 가방'처럼 자연어로 상품을 검색할 수 있습니다. 법률 분야에서는 수만 건의 판례를 벡터 DB에 저장하고 유사 판례를 빠르게 검색하는 데 사용합니다.
벡터 DB를 선택할 때 고려해야 할 기준도 있습니다. Pinecone은 완전 관리형 서비스라 인프라 관리 부담이 없지만 비용이 발생합니다. Chroma는 로컬에서 빠르게 시작하기 좋아 프로토타입 단계에서 많이 씁니다. Qdrant는 오픈소스이면서도 고성능 필터링을 지원해 프로덕션 환경에서 인기를 끌고 있습니다. pgvector는 기존 PostgreSQL 인프라를 그대로 유지하면서 벡터 검색만 추가하고 싶을 때 최적의 선택입니다.
흔한 오해 중 하나는 벡터 DB가 기존 관계형 DB를 완전히 대체한다는 생각입니다. 하지만 벡터 DB는 정확한 조회나 트랜잭션 처리에는 적합하지 않습니다. 실제 시스템에서는 PostgreSQL이나 MySQL 같은 기존 DB와 벡터 DB를 함께 사용하는 경우가 대부분입니다. 사용자 정보와 구매 이력은 관계형 DB에, 상품 설명의 의미 검색 기능만 벡터 DB에 맡기는 방식입니다.
멀티모달 검색도 벡터 DB의 중요한 활용 영역입니다. 텍스트뿐 아니라 이미지, 음성, 비디오도 임베딩으로 변환할 수 있습니다. 덕분에 텍스트로 이미지를 검색하거나, 이미지로 비슷한 이미지를 찾는 작업이 가능해집니다. 핀터레스트나 구글 렌즈 같은 시각 검색 서비스의 핵심 기술이기도 합니다.
벡터 DB를 직접 구축하고 운영하려면 몇 가지 핵심 개념을 이해해야 합니다. 첫 번째는 인덱싱 전략입니다. 데이터가 수백만 건을 넘어가면 단순한 완전 탐색(Brute Force)으로는 검색 속도가 느려집니다. HNSW(Hierarchical Navigable Small World)나 IVF(Inverted File Index) 같은 근사 최근접 이웃 알고리즘을 사용해야 합니다. 두 번째는 차원(Dimension)입니다. OpenAI의 text-embedding-3-small은 1536차원, large 모델은 3072차원을 지원합니다. 차원이 클수록 표현력이 높지만 저장 공간과 검색 비용도 증가합니다.
메타데이터 필터링 기능도 벡터 DB의 중요한 특성입니다. 의미 유사도 검색만으로는 원하는 결과를 좁히기 어려울 때, 날짜 범위나 카테고리 같은 메타데이터 조건을 함께 적용해 검색 결과를 정확하게 제어할 수 있습니다. 예를 들어 특정 작성자의 문서 중에서 특정 주제와 가장 유사한 내용을 찾는 식입니다. 최신 벡터 DB들은 이 필터링을 벡터 검색과 동시에 수행하는 기능을 점점 강화하고 있습니다.
관련 글
아래 글들은 벡터 데이터베이스가 실제 문맥에서 어떻게 쓰이는지 보여주는 참고 자료입니다. glossary에서 개념을 잡고 관련 글로 넘어가면 이해가 훨씬 쉬워집니다.
