본문 바로가기
SEO·GEO 용어사전

벡터 데이터베이스 (Vector Database)

마지막 업데이트
선호 출처로 추가

벡터 데이터베이스는 임베딩 벡터를 저장하고 가까운 벡터를 검색하는 데이터베이스입니다. 전용 제품이나 기존 데이터베이스의 확장 기능으로 구현할 수 있습니다. 임베딩 모델이 만든 수치 표현에 거리나 유사도 계산을 적용해 항목을 찾습니다.

조건 검색과 유사도 검색의 차이

조건 검색은 가격이나 날짜처럼 지정한 값을 만족하는 데이터를 찾습니다. 벡터 검색은 검색할 내용을 벡터로 바꾼 뒤, 저장된 벡터 중 가까운 항목을 코사인 유사도 등의 지표로 찾습니다. 관계형 데이터베이스에도 범위 검색, 문서 본문을 찾는 전문 검색, 벡터 검색 기능을 추가할 수 있습니다. 두 방식의 차이는 데이터베이스가 관계형인지가 아니라 무엇을 기준으로 찾는지에 있습니다.

exact k-NN은 정해진 거리 기준으로 가장 가까운 k개를 정확히 찾는 탐색 방식입니다. 데이터가 많으면 계산량을 줄이는 근사 최근접 이웃(ANN) 검색을 검토합니다. ANN은 속도를 높이는 대신 실제로 가장 가까운 결과 일부를 놓칠 수 있습니다. HNSW와 IVF 같은 인덱스는 이 근사 탐색을 위한 구조이며, 선택할 때는 검색 시간과 정확 탐색 결과를 얼마나 되찾는지 함께 비교합니다.

검색 인덱스와 데이터 관리 기능

검색 인덱스가 벡터를 빠르게 찾기 위한 구조라면, 데이터베이스는 벡터의 저장과 갱신, 삭제도 담당합니다. 운영할 문서가 자주 바뀐다면 새 내용을 반영하고 오래된 벡터를 제거할 수 있어야 합니다. 날짜와 분류를 지정하는 메타데이터 필터, 백업, 접근 제어는 제품별 지원 범위가 달라 별도로 점검합니다.

Pinecone 같은 전용 서비스, Weaviate와 Milvus 같은 오픈소스 제품, PostgreSQL의 pgvector 확장 등 여러 선택지가 있습니다. 기존 검색엔진과 클라우드 데이터베이스에도 벡터 기능이 추가되고 있습니다. Google Cloud는 이를 데이터베이스 전반으로 확대될 기능으로 설명합니다.

RAG에서 문서를 찾는 과정

RAG에서 벡터 검색을 사용한다면 청킹한 문서 조각을 임베딩으로 변환해 저장합니다. 질문이 들어오면 질문의 벡터와 가까운 문서 조각을 찾아 생성 모델에 전달합니다. 검색에 걸리는 시간은 데이터 규모와 인덱스, 인프라에 따라 달라집니다. RAG는 키워드나 하이브리드 검색으로도 구성할 수 있으므로 벡터 데이터베이스가 필수는 아닙니다.

청킹은 문서 단위를 나누고 임베딩은 그 내용을 벡터로 표현합니다. 벡터 데이터베이스는 표현된 데이터를 저장하고 검색합니다. 시맨틱 검색은 의미를 해석하는 검색 방식이며, RAG는 검색 결과를 생성에 연결하는 구조입니다.

질문과 관련된 문서를 찾는 예시

배송 정책을 두 조각으로 저장한 가상 사례를 보겠습니다.

  • 문서 A: “제주 지역에는 3,000원의 추가 배송비가 붙습니다.”
  • 문서 B: “결제 후 2영업일 안에 출고합니다.”

“제주도는 배송비를 더 내나요”라는 질문은 문서 A와 단어가 완전히 같지 않아도 벡터가 가까우면 상위에 검색될 수 있습니다. 결과는 임베딩 모델, 거리 지표와 필터, 인덱스 설정에 따라 달라집니다.

검색 결과를 확인하는 방법

대표 질문과 그 질문에 답하는 문서를 준비한 뒤, 상위 검색 결과에 해당 문서가 포함되는지 확인합니다. 문서가 빠졌다면 저장 자체가 누락됐는지, 날짜나 카테고리 필터가 제외했는지 먼저 살펴봅니다. 이때 사용한 임베딩 모델, 벡터 차원, 필터와 검색 시간을 기록해야 설정을 바꾼 뒤 결과를 비교할 수 있습니다.

ANN의 성능은 같은 벡터와 거리 기준으로 실행한 exact k-NN 결과와 비교합니다. 정확 탐색으로 얻은 결과를 얼마나 되찾는지가 이때의 재현율(recall)입니다. 재현율을 높였을 때 검색 시간이 얼마나 늘어나는지도 측정합니다. 이 평가는 거리상 가까운 벡터를 찾는 정확도이며, 그 문서가 실제 질문에 답하는지는 별도로 읽고 평가해야 합니다.

자주 묻는 질문

RAG를 만들려면 벡터 데이터베이스가 필수인가요?

RAG는 키워드나 벡터 검색, 두 방식의 조합으로 구현할 수 있습니다. 벡터 데이터베이스는 규모가 큰 유사도 검색의 선택지이며 필수 조건은 아닙니다.

일반 데이터베이스로는 안 되나요?

PostgreSQL을 사용한다면 pgvector 확장으로 벡터 검색을 추가할 수 있습니다. 기존 데이터와 함께 관리하는 방식이 운영에 맞는지 검토하고, 실제 문서 규모에서 필요한 결과를 찾는 정확도와 검색 시간을 전용 제품과 비교합니다.

벡터 검색 결과는 정확한가요?

exact k-NN은 거리 기준의 가까운 결과를 정확히 찾고, ANN은 속도를 높이는 대신 일부를 놓칠 수 있습니다. 거리상 정확한 결과가 질문에 의미상 맞는지도 별도로 평가해야 합니다.

마케터가 이 용어를 알아야 하나요?

사내 검색이나 RAG 공급사를 검토할 때 유용합니다. 자사 문서와 대표 질문으로 시연을 요청하면 필요한 문서가 누락되는지, 답변까지 얼마나 걸리는지 확인할 수 있습니다. 제품 이름이나 공개 벤치마크만으로 자사 문서의 검색 품질을 판단하기는 어렵습니다.

함께 알아두면 좋은 용어

  • 임베딩: 텍스트나 이미지 같은 데이터를 숫자 벡터로 표현한 것
  • 청킹: 검색과 처리를 위해 문서를 작은 구간으로 나누는 전처리
  • RAG: 검색한 자료를 참고해 답변을 생성하는 방식
  • 시맨틱 검색: 단어의 일치뿐 아니라 문맥과 의미를 고려하는 검색 방식

참고 문서