코딩/VectorDB

VectorDB : 개념

americanoallday 2025. 7. 10. 17:47

VectorDB(Vector Database)는 벡터 형태의 데이터를 저장하고 빠르게 검색할 수 있도록 설계된 데이터베이스.

일반적인 RDB(MySQL, PostgreSQL)나 NoSQL(MongoDB 등)과는 다르게, 숫자들의 배열(벡터)을 중심으로 작동하는 게 특징.

 

📌 왜 벡터를 쓰는가?

AI, 특히 자연어 처리(NLP), 이미지 분석, 추천 시스템 등에서는 데이터를 숫자 벡터로 표현.

예를 들면:

  • 문장: [0.23, -0.12, ..., 0.75] (BERT, GPT 임베딩 등)
  • 이미지: [0.91, 0.15, ..., 0.33] (CNN 등)
  • 유저 행동: [1.0, 0.5, ..., 0.2] (추천 시스템)

 

이 벡터들 간의 유사도를 기준으로 “비슷한 문장”, “비슷한 이미지”, “비슷한 취향” 등을 빠르게 찾고 싶을 때 VectorDB가 필요.

📚 VectorDB 주요 기능

기능 설명
벡터 저장 수천~수억 개의 벡터를 저장
벡터 검색 (KNN) 입력 벡터와 가장 가까운 벡터를 빠르게 찾아줌
유사도 계산 Cosine, Euclidean, Inner Product 등 다양한 방식 지원
메타데이터 저장 벡터 외에 텍스트, ID, 태그 등도 함께 저장 가능

 

🤖 AI랑 어떻게 같이 써?

사용 예시 AI 역할 VectorDB 역할
RAG (Retrieval Augmented Generation) 질문을 벡터로 변환 관련 문서 벡터 검색
챗봇 사용자의 질문 임베딩 과거 대화나 FAQ 유사 질문 검색
추천 시스템 유저 행동 벡터화 유사한 제품이나 유저 탐색
이미지 검색 이미지 임베딩 추출 비슷한 이미지 찾기

 

🛠 대표적인 VectorDB

이름 특징
FAISS (Meta) 오픈소스, 빠른 성능, 단일 머신용
Pinecone 클라우드 기반, 손쉬운 사용
Weaviate GraphQL 지원, 텍스트 자동 임베딩 가능
Milvus 대규모 분산 벡터 처리
Chroma Python 기반, RAG용으로 많이 사용됨

 

🔚 요약

  • VectorDB = 벡터 데이터 전용 검색 DB
  • AI와 함께 쓰면, “비슷한 것 찾기”를 빠르고 정확하게 처리할 수 있음
  • 특히 RAG, 챗봇, 검색엔진, 추천 시스템에서 활발히 사용됨