벡터 데이터(Vector Data)와 벡터 데이터베이스(Vector DB)

2026. 3. 13. 16:21·BackEnd/Spring

 

벡터 데이터란 무엇일까?

수학에서 **벡터(Vector)**는 여러 개의 숫자로 이루어진 좌표값을 의미한다.
대부분 고등학교 수학에서 한 번쯤은 접해본 개념일 것이다.

컴퓨터는 텍스트, 이미지, 음성 같은 데이터를 사람이 이해하는 방식 그대로 처리할 수 없다.
따라서 이러한 데이터들을 숫자의 형태로 변환하여 저장하고 처리해야 한다.

이때 사용하는 방식이 **벡터화(Embedding)**이다.

예를 들어 **“강아지”**라는 텍스트 데이터는 다음과 같이 숫자 배열 형태로 표현될 수 있다.

[0.23, 0.91, 0.11, 0.55 ...]

이처럼 어떤 데이터를 여러 개의 숫자로 이루어진 배열 형태로 표현한 것을 **벡터 데이터(Vector Data)**라고 한다.


그렇다면 왜 데이터를 벡터화해야 할까?

일반 데이터를 벡터 형태로 변환하면 의미적으로 비슷한 데이터끼리 벡터 값 또한 비슷해지는 특징이 있다.

예를 들어 다음과 같은 관계를 생각해볼 수 있다.

  • 강아지 ↔ 고양이
  • 강아지 ↔ 자동차

사람이 보기에 강아지와 고양이는 비슷한 개념이지만 강아지와 자동차는 전혀 다른 개념이다.

벡터 데이터에서는 이러한 의미 관계가 **숫자 공간의 거리(distance)**로 표현된다.

즉

  • 강아지 ↔ 고양이 → 벡터 거리 짧음
  • 강아지 ↔ 자동차 → 벡터 거리 김

이러한 특징 덕분에 AI 시스템은 다음과 같은 작업을 수행할 수 있다.

  • 의미 기반 검색(Semantic Search)
  • 추천 시스템
  • 유사도 계산

벡터 데이터의 핵심 특징

벡터 데이터는 다음과 같은 특징을 가진다.

1. 숫자 배열 형태로 표현된다

벡터 데이터는 여러 개의 숫자로 이루어진 배열이다.

예를 들어 다음과 같은 형태를 가진다.

[0.12, 0.88, 0.55, 0.01 ...]

실제 AI 모델에서는 이러한 벡터의 차원이 매우 크다.

일반적으로

  • 384차원
  • 768차원
  • 1536차원

과 같이 수백에서 수천 차원 규모의 벡터가 사용된다.


2. 거리 계산이 가능하다

벡터 데이터의 가장 중요한 특징은 벡터 간 거리 계산이 가능하다는 것이다.

대표적인 계산 방식으로는 다음과 같은 것들이 있다.

  • Cosine Similarity
  • Euclidean Distance

이러한 거리 계산을 통해 데이터 간의 의미적 유사도를 수치적으로 계산할 수 있다.

예를 들어

  • 강아지 ↔ 고양이 → 거리 짧음
  • 강아지 ↔ 자동차 → 거리 김

과 같이 의미적 관계를 수학적으로 표현할 수 있다.


벡터 데이터와 벡터 데이터베이스의 차이

벡터 데이터에 대해 알아보면 자연스럽게 **벡터 데이터베이스(Vector Database)**라는 개념이 등장한다.

이 둘은 이름이 비슷하지만 의미하는 바는 완전히 다르다.

  • 벡터 데이터 → 데이터의 형태
  • 벡터 데이터베이스 → 벡터 데이터를 저장하고 검색하는 시스템

즉,

  • 벡터 데이터는 데이터의 의미를 숫자 배열로 표현한 것이고
  • 벡터 데이터베이스는 그 데이터를 저장하고 유사도 기반 검색을 수행하는 시스템이다.

따라서 벡터 DB는 전통적인 데이터베이스라기보다는 검색 엔진에 더 가까운 시스템이라고 볼 수 있다.


벡터 DB의 핵심 기술

벡터 데이터베이스는 단순히 데이터를 저장하는 것에 그치지 않고
벡터 기반 검색을 효율적으로 수행하기 위한 다양한 기술을 사용한다.

대표적인 핵심 기술은 다음 세 가지다.


1. Embedding 저장

벡터 DB는 텍스트나 문서를 벡터로 변환한 후 저장한다.

과정은 다음과 같다.

문장
↓
Embedding 모델
↓
벡터 생성
↓
Vector DB 저장

이 과정을 통해 텍스트 데이터는 숫자 벡터 형태로 데이터베이스에 저장된다.


2. ANN(Approximate Nearest Neighbor) 검색 알고리즘

벡터 DB에서 가장 중요한 기술 중 하나는 ANN 검색 알고리즘이다.

ANN은

Approximate Nearest Neighbor

의 약자로,

정확히 가장 가까운 데이터를 찾기보다는
거의 가장 가까운 데이터를 매우 빠르게 찾는 방식의 알고리즘이다.

대규모 벡터 데이터 환경에서는 모든 벡터와 거리를 계산하는 방식이 매우 비효율적이기 때문에
이러한 근사 검색 알고리즘이 사용된다.

대표적인 알고리즘으로는 다음과 같은 것들이 있다.

  • HNSW
  • IVF

3. Similarity Search

벡터 DB의 가장 중요한 기능은 **유사도 기반 검색(Similarity Search)**이다.

일반적인 검색이 정확한 값 매칭이라면,
벡터 검색은 의미적으로 유사한 데이터를 찾는 방식이다.

검색 과정은 다음과 같다.

1. 사용자 질문 입력
2. 질문을 벡터로 변환
3. DB에 저장된 벡터들과 거리 계산
4. 가장 가까운 N개의 결과 반환

예를 들어

Query
"MSA란 무엇인가"

↓

Vector 변환

↓

유사 문서 Top 5 검색

과 같은 방식으로 동작한다.


정리

정리하면 다음과 같다.

  • 벡터 데이터는 데이터를 숫자 배열 형태로 표현한 것이다.
  • 이러한 벡터 데이터는 의미적 유사성을 거리 계산으로 표현할 수 있다.
  • **벡터 데이터베이스(Vector DB)**는 이러한 벡터 데이터를 저장하고 유사도 기반 검색을 수행하는 시스템이다.

'BackEnd > Spring' 카테고리의 다른 글

ACL 패턴  (0) 2026.04.05
MSA [2편]  (1) 2026.03.13
MSA [1편]  (0) 2026.03.13
'BackEnd/Spring' 카테고리의 다른 글
  • ACL 패턴
  • MSA [2편]
  • MSA [1편]
JK-LEE98
JK-LEE98
백엔드 개발자
  • JK-LEE98
    JK-LEE98
    JK-LEE98
  • 전체
    오늘
    어제
    • 분류 전체보기 (60)
      • 나의 지식 공유 (4)
      • SQL (4)
      • PS (10)
      • BackEnd (32)
        • Java (3)
        • Spring (4)
        • 내일배움캠프 (20)
        • 프로그래머스 데브코스 (5)
      • 건강한 나 되기🍀 (10)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
JK-LEE98
벡터 데이터(Vector Data)와 벡터 데이터베이스(Vector DB)
상단으로

티스토리툴바