ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1편: 벡터 데이터베이스의 개념과 필요성
    Open Source/VectorDB 2025. 6. 3. 12:00
    반응형

    벡터 데이터베이스, 뭘까?

    요즘 벡터 데이터베이스 를 적용해보려는 업무를 하는데 사실 저도 정확히 뭘 하는 건지 잘 몰라서 정리를 해보려고 합니다.

    이 글에서는 벡터 데이터베이스의 개념과 필요성만 간단히 정리해두고, 다음 글부터는 조금 더 기술적인 내용으로 들어가 볼 예정입니다.

    벡터란 무엇인가?

    1. 물리학에서의 벡터
      • 물리학에서는 벡터를 크기(길이)와 방향을 가진 물리량으로 봅니다.
      • 예: 속도 벡터(방향 + 크기), 힘 벡터(방향 + 크기)
      • 보통은 화살표로 나타내며, 위치 이동(변위)도 벡터로 표현됩니다.
      • 수학적 표현:
        • 2D: $\mathbf{v} = (x, y)$
        • 3D: $\mathbf{v} = (x, y, z)$
    2. 수학에서의 벡터
      • 수학에서는 벡터를 성분의 나열로 생각합니다.
        • 예: $\mathbf{v} = (v_1, v_2, \dots, v_n)$
      • 보통 벡터는 선형대수의 기본 개념으로, 벡터 공간, 내적, 외적 등의 연산이 정의됩니다.
      • 크기나 방향보다는 좌표공간에서의 위치나 방향을 다루는 개념으로 쓰입니다.
    3. 컴퓨터과학/데이터 과학에서의 벡터
      • 컴퓨터과학에서는 벡터를 숫자로 이루어진 배열로 다룹니다.
      • 주로 데이터 표현(특징 벡터, 임베딩), 또는 머신러닝 모델의 입력/출력 형태로 사용됩니다.
      • 물리학/수학처럼 물리적인 방향은 의미가 없고, 각 벡터의 위치 관계와 유사성이 중요합니다.
      • 예를 들어:
        • 텍스트 임베딩: 문장 하나를 512차원 벡터로 표현
        • 이미지 특징 벡터: CNN에서 추출한 이미지의 벡터 표현
    관점 특징 예시
    물리학 크기(길이)와 방향을 가진 물리량 속도, 힘, 전기장 등
    수학 숫자의 나열, 좌표공간에서의 위치 (1, 2, 3), (0.1, -0.5, 0.7)
    컴퓨터과학/AI 데이터 의미를 표현한 숫자 배열 텍스트 임베딩, 이미지 특징 벡터

    기존 데이터베이스의 한계

    • 기존의 RDB나 NoSQL 같은 데이터베이스는 정확히 일치하는 값 검색을 처리하는 데는 강점이 있습니다.
    • 하지만 AI나 검색 엔진처럼 의미가 비슷한 데이터를 찾는 경우, 단순 문자열 매칭만으로는 부족합니다.
    • 예를 들어 "벡터 DB 배우고 싶어요""벡터 DB 공부 중입니다"는 단어는 다르지만 의미는 비슷한데, 기존 DB로는 이런 의미 기반 검색이 어렵습니다.
    # 텍스트를 임베딩하는 예시 (가상코드)
    text1 = "벡터 DB 배우고 싶어요"
    embedding1 = model.encode(text1)  # embedding: [0.1, 0.3, ..., 0.9]
    
    text2 = "벡터 DB 공부 중입니다"
    embedding2 = model.encode(text2)  # embedding: [0.1, 0.3, ..., 0.8]

    벡터 데이터베이스의 필요성

    • 벡터 데이터베이스는 이런 문제를 해결하기 위한 기술입니다.
    • 데이터(문서, 이미지 등)를 벡터로 변환해서 저장하고, 비슷한 벡터를 빠르게 찾아주는 기능에 최적화되어 있습니다.
    • 이걸 유사도 검색(similarity search) 혹은 근접 이웃 검색(Nearest Neighbor Search) 이라고 부릅니다.

    벡터 DB의 주요 기능

    • 벡터 저장.
    • 나랑 비슷한 벡터 찾아줘 요청이 들어오면, 미리 만들어 둔 인덱스를 사용해서 비슷한 벡터를 빠르게 찾아줍니다.
    • 결과를 유사도가 높은 순으로 반환합니다.

    마무리

    정리하면:

    • 벡터는 데이터를 숫자 벡터로 바꾼 표현 방식이다.
    • 기존 DB로는 의미가 비슷한 데이터를 찾기 어렵다.
    • 벡터 DB는 이런 의미 기반 검색을 지원하기 위해 만들어졌다.

    앞으로 실제로 벡터 검색이 어떻게 동작하는지, 기술적인 내용을 더 다뤄보려고 합니다.

    다음 글에서는...

    "유사도 검색이 실제로 어떻게 구현되는지 (인덱싱, 검색 원리)" 를 정리해보려고 합니다.

    반응형

    'Open Source > VectorDB' 카테고리의 다른 글

    2편: 유사도 검색과 벡터 인덱싱  (0) 2025.06.05

    댓글

Designed by Tistory.