벡터데이터베이스(Vector DB)란 무엇이며, 관계형DB와 어떻게 다를까?
AI 시대의 새로운 데이터 저장 방식, ‘의미를 기억하는 데이터베이스’를 이해하기 쉽게 풀어봅니다.
1. 벡터 데이터베이스란?
벡터 데이터베이스는 텍스트, 이미지, 음성 등 비정형 데이터를 ‘숫자 벡터(의미 좌표)’ 형태로 저장하고, 서로 비슷한 의미를 가진 벡터를 빠르게 찾아주는 시스템입니다.
예를 들어, 언어모델이 “고양이(cat)”을 [0.21, 0.56, 0.88, …]로, “개(dog)”를 [0.20, 0.58, 0.85, …]로 표현하면 두 단어는 비슷한 벡터값을 가지죠. 벡터DB는 이처럼 ‘숫자로 표현된 의미’를 이해합니다.
2. 관계형 데이터베이스와의 차이점
| 구분 | 관계형 데이터베이스 (RDB) | 벡터 데이터베이스 (Vector DB) |
|---|---|---|
| 데이터 형태 | 표(Table), 행(Row), 열(Column) | 숫자 벡터(고차원 좌표) |
| 검색 방식 | 정확한 값 일치 (예: WHERE name='철수') | 유사도 기반 (예: ‘이 문장과 비슷한 문장’) |
| 주요 용도 | 금융, ERP, 재고 등 정형 데이터 | 텍스트, 이미지 등 비정형 데이터 의미 검색 |
| 검색 결과 | 정확히 일치하는 결과 | 의미적으로 가장 유사한 순서로 정렬 |
| 예시 쿼리 | “서울 사는 고객 불러와” | “서울과 비슷한 느낌의 도시 찾아줘” |
3. 왜 벡터DB가 필요한가?
현대의 AI 모델은 텍스트나 이미지를 단순한 문자가 아니라 숫자 벡터로 이해합니다. 예를 들어 “오늘 날씨 어때?”와 “오늘 기온이 어떤가요?”는 글자는 다르지만 의미는 같습니다. 벡터DB는 이런 ‘의미 유사성(Semantic Similarity)’을 계산해 가장 비슷한 데이터들을 찾아줍니다.
4. 실제 활용 예시
| 상황 | 기존 RDB | 벡터 DB |
|---|---|---|
| 검색엔진 | 단어 일치 기반 검색 | 의미 검색 (동의어, 유사 개념 포함) |
| 챗봇 | 단순 FAQ 매칭 | 질문의 의미를 이해해 적절한 답변 반환 |
| 추천 시스템 | 같은 카테고리 상품 추천 | 설명이나 분위기가 유사한 상품 추천 |
| 이미지 검색 | 파일명이나 태그 검색 | 이미지 내용 자체의 유사도 검색 |
5. 내부 동작 원리
벡터DB는 데이터를 n차원 벡터 공간에 저장하고, 코사인 유사도(cosine similarity)나 거리(Euclidean distance)를 계산해 입력 벡터와 가장 가까운 항목들을 찾아냅니다.
이때 수백만 개 데이터 중에서도 빠르게 찾기 위해 ANN(Approximate Nearest Neighbor) 탐색 알고리즘을 사용합니다.
6. LLM과의 결합 — AI의 외장 기억장치
LLM은 긴 대화나 최신 정보를 스스로 기억하기 어렵습니다. 이때 벡터DB를 연결하면, 모델이 대화 맥락을 벡터로 저장하고, 필요할 때 유사한 맥락을 다시 불러올 수 있습니다. 즉, 벡터DB는 LLM의 외장하드 같은 역할을 합니다.
이 구조를 흔히 RAG (Retrieval-Augmented Generation)이라 부릅니다.