개발/용어 사전

Vector DB란? 벡터 검색을 위한 데이터베이스

cedis 2026. 6. 11. 23:30
AI 응용 기술 용어 정리

Vector DB는 embedding vector를 저장하고, 질문과 가까운 벡터를 빠르게 찾기 위한 저장소입니다.

핵심 요약

Vector DB는 일반 DB처럼 데이터를 저장하지만, 핵심 관심사가 텍스트 원문이 아니라 벡터 유사도 검색이라는 점이 다릅니다.

  • Vector Store와 Vector DB
  • MySQL 기반 직접 구현
  • pgvector, FAISS, ChromaDB, Pinecone, OpenSearch의 위치

1. 한 줄로 정의하면

Vector DB는 embedding vector를 저장하고, 어떤 query vector가 들어왔을 때 가까운 벡터를 찾아주는 데이터베이스 또는 검색 엔진입니다.

Vector Store
벡터를 저장하고 꺼내는 저장 계층을 넓게 부르는 말입니다.
Vector DB
벡터 유사도 검색을 주요 기능으로 제공하는 데이터베이스입니다.
ANN
Approximate Nearest Neighbor. 완전 탐색 대신 근사적으로 가까운 벡터를 빠르게 찾는 방식입니다.
Index
벡터를 빠르게 찾기 위해 미리 만들어두는 검색 구조입니다.

2. 왜 이 개념이 필요했나

콘텐츠가 100개라면 MySQL에 JSON으로 벡터를 저장하고 전부 비교해도 됩니다. 하지만 문서가 수만 개, 수십만 개가 되면 모든 벡터를 매번 비교하는 방식은 느려집니다.

그래서 운영 단계에서는 pgvector, FAISS, ChromaDB, Pinecone, OpenSearch Vector Search 같은 도구가 등장합니다. 이들은 벡터를 저장하고 가까운 벡터를 빠르게 찾는 데 초점을 맞춥니다.

다만 학습 단계에서는 MySQL에 직접 저장하고 cosine similarity를 계산해보는 방식도 의미가 있습니다. 내부 흐름을 직접 보면서 Vector DB가 왜 필요한지 체감할 수 있기 때문입니다.

3. 동작 흐름

1
콘텐츠 벡터 생성
OpenAI Embedding API 등으로 콘텐츠 벡터를 만듭니다.
2
벡터 저장
document_id, model, sourceHash, vector를 저장합니다.
3
질문 벡터 생성
사용자 검색어도 같은 embedding model로 벡터화합니다.
4
유사도 검색
저장된 벡터 중 query vector와 가까운 것을 top-k로 가져옵니다.

4. 구조를 그림처럼 보면

순서 흐름
1
콘텐츠 벡터 생성
OpenAI Embedding API 등으로 콘텐츠 벡터를 만듭니다.
2
벡터 저장
document_id, model, sourceHash, vector를 저장합니다.
3
질문 벡터 생성
사용자 검색어도 같은 embedding model로 벡터화합니다.
4
유사도 검색
저장된 벡터 중 query vector와 가까운 것을 top-k로 가져옵니다.

5. 서비스 예시로 이해하면

지식베이스형 서비스의 초기 구현은 MySQL 기반 Vector Store입니다. document_embeddings 테이블에 embedding vector를 JSON 형태로 저장하고, 검색 시 cosine similarity를 직접 계산하는 구조입니다.

이 방식은 운영 최적화보다는 학습에 가깝습니다. 대신 document_embeddings가 왜 필요한지, sourceHash로 최신 여부를 왜 확인하는지, 전문 Vector DB로 갈 때 어떤 부분이 바뀌는지 이해하기 좋습니다.

document_embeddings
- id
- document_id
- embedding_model
- embedding_vector_json
- source_hash
- created_at

검색 시:
query_vector vs embedding_vector_json 전체 비교

6. 헷갈리기 쉬운 비교

선택지성격언제 적합한가
MySQL JSON 저장 직접 구현에 가까움 학습용, 소규모 데이터, 구조 이해
pgvector PostgreSQL 확장 관계형 DB와 벡터 검색을 같이 쓰고 싶을 때
FAISS/Chroma/Pinecone 전문 벡터 검색 도구 검색 규모와 성능이 중요할 때
OpenSearch Vector Search 검색 엔진 기반 벡터 검색 텍스트 검색과 벡터 검색을 함께 운영할 때

7. 실무에서 조심할 점

  • Vector DB를 쓴다고 검색 품질이 자동으로 좋아지는 것은 아닙니다. 입력 텍스트와 chunking 전략이 여전히 중요합니다.
  • 직접 구현은 검색 구조를 배우기 좋지만, 대규모 데이터에서는 속도와 비용 한계가 빨리 옵니다.
  • 벡터만 저장하면 원문 근거를 보여주기 어렵습니다. document_id나 source metadata를 반드시 함께 저장해야 합니다.

이번 글에서 기억할 것

  • Vector Store는 벡터 저장 계층, Vector DB는 벡터 검색에 특화된 DB라고 보면 됩니다.
  • 초기 구현은 MySQL로도 가능하지만, 규모가 커지면 전문 검색 구조가 필요합니다.
  • 벡터와 원문을 연결하는 metadata가 중요합니다.

스스로 점검

  • 왜 단순 MySQL JSON 저장이 학습용으로는 괜찮지만 운영 한계가 있는가?
  • Vector DB와 일반 DB의 관심사가 어떻게 다른가?
  • 검색 결과에서 source citation을 보여주려면 어떤 정보를 함께 저장해야 하는가?

참고한 공식 문서