코딩/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, 챗봇, 검색엔진, 추천 시스템에서 활발히 사용됨