AI 개발에서 사용할 수 있는 DB

한상우·2026년 4월 3일

AI

목록 보기
1/11
post-thumbnail

AI 개발자가 알아야 할 데이터베이스: RDB, Vector DB, Graph

LLM 기반 서비스에서는 기존의 관계형 데이터베이스만으로는 해결하기 어려운 문제들이 생기죠. 오늘은 AI 개발자 관점에서 세 가지 데이터베이스의 기본 개념과 특징을 정리해보겠습니다.

1. RDB (관계형 데이터베이스)

핵심 개념

RDB는 데이터를 테이블 형태로 저장하고, 테이블 간의 관계를 정의하는 데이터베이스입니다. 각 테이블은 행(row)과 열(column)로 구성되며, 기본 키(Primary Key)와 외래 키(Foreign Key)로 테이블 간의 관계를 맺습니다.

기본 구조

  • 테이블: 데이터를 저장하는 단위
  • 스키마: 테이블의 구조를 정의 (어떤 컬럼이 있고, 타입은 무엇인지)
  • 관계: 1:1, 1:N, N:M 등으로 테이블을 연결

데이터 저장 방식

사용자 테이블을 예로 들면, 각 사용자는 하나의 행으로 저장되고, ID, 이름, 이메일 같은 속성들이 열로 정의됩니다. 이때 ID가 기본 키가 되어 각 행을 고유하게 식별합니다.

쿼리 방식

SQL(Structured Query Language)을 사용합니다. "특정 조건을 만족하는 데이터를 찾아라"는 선언적 방식으로 작동하죠. 예를 들어 "지난 달에 가입한 사용자를 모두 찾아라"라고 요청하면, 데이터베이스가 알아서 최적의 방법으로 찾아줍니다.

트랜잭션과 ACID

RDB의 가장 큰 특징은 ACID 속성입니다.

  • Atomicity(원자성): 모든 작업이 완전히 수행되거나, 전혀 수행되지 않음
  • Consistency(일관성): 데이터베이스의 규칙이 항상 유지됨
  • Isolation(격리성): 동시에 실행되는 트랜잭션들이 서로 영향을 주지 않음
  • Durability(지속성): 완료된 트랜잭션은 영구적으로 저장됨

AI 서비스에서의 활용

AI 서비스에서 RDB는 주로 메타데이터 관리에 사용됩니다. 사용자 정보, 대화 세션 기록, 모델 버전 관리, API 사용량 추적 등 정형화된 데이터를 다룰 때 적합합니다.

장단점

장점

  • 데이터 일관성 보장
  • 복잡한 조인과 집계 연산 가능
  • 성숙한 생태계와 풍부한 도구
  • 명확한 스키마로 데이터 구조 파악 용이

단점

  • 스키마가 고정되어 유연성이 떨어짐
  • 비정형 데이터 처리 어려움
  • 유사도 검색 같은 AI 특화 기능 부족
  • 대용량 데이터에서 조인 성능 저하 가능

2. Vector DB

핵심 개념

Vector DB는 고차원 벡터를 저장하고 유사도를 기반으로 검색하는 데이터베이스입니다. 여기서 벡터란 숫자들의 배열을 의미하는데, AI에서는 텍스트, 이미지, 오디오 등을 숫자 벡터로 변환(임베딩)하여 표현합니다.

벡터란 무엇인가

"안녕하세요"라는 문장을 임베딩 모델에 넣으면 [0.23, -0.45, 0.67, ...] 같은 수백~수천 개의 숫자 배열이 나옵니다. 이 벡터는 문장의 의미를 수학적으로 표현한 것이죠. 의미가 비슷한 문장은 비슷한 벡터를 가지게 됩니다.

유사도 측정 방식

두 벡터가 얼마나 비슷한지 측정하는 방법에는 여러 가지가 있습니다.

  • 코사인 유사도: 벡터 간의 각도를 측정 (방향이 중요)
  • 유클리드 거리: 벡터 간의 직선 거리를 측정 (절대적 거리가 중요)
  • 내적: 벡터의 방향과 크기를 모두 고려

인덱싱 구조

수백만 개의 벡터에서 빠르게 유사한 벡터를 찾기 위해 특수한 인덱싱 구조를 사용합니다.

  • HNSW (Hierarchical Navigable Small World): 그래프 기반으로 계층적 탐색
  • IVF (Inverted File Index): 벡터를 클러스터로 묶어서 검색 범위 축소
  • PQ (Product Quantization): 벡터를 압축하여 메모리 절약

이 인덱싱 방법들은 정확도를 약간 희생하는 대신, 속도를 크게 높이는 근사 검색(Approximate Nearest Neighbor Search)을 가능하게 합니다.

데이터 저장 방식

Vector DB는 벡터와 함께 메타데이터도 저장합니다. 예를 들어 문서의 벡터를 저장할 때, 원본 텍스트, 문서 ID, 작성일 등을 함께 저장하죠. 검색 시에는 벡터 유사도로 찾고, 메타데이터로 필터링합니다.

AI 서비스에서의 활용

LLM 기반 서비스에서 가장 중요한 역할을 합니다. RAG(Retrieval Augmented Generation) 시스템의 핵심으로, 사용자 질문과 관련된 문서를 의미적으로 찾아내는 데 사용됩니다.

작동 원리
1. 문서를 적절한 크기로 나눕니다 (청킹)
2. 각 청크를 임베딩 모델로 벡터화합니다
3. 벡터를 Vector DB에 저장합니다
4. 사용자 질문도 같은 방식으로 벡터화합니다
5. 질문 벡터와 가장 유사한 문서 벡터들을 찾습니다
6. 찾은 문서를 LLM에 컨텍스트로 제공합니다

장단점

장점

  • 의미적 유사도 검색 가능 (키워드 매칭보다 정교함)
  • 다국어 검색 가능 (같은 벡터 공간에 매핑됨)
  • 멀티모달 검색 가능 (텍스트로 이미지 검색 등)
  • 확장성이 좋음

단점

  • 정확한 키워드 매칭은 RDB보다 약함
  • 임베딩 모델 품질에 의존적
  • 벡터 차원이 높을수록 메모리 사용량 증가
  • 벡터 업데이트 시 재계산 필요

3. Graph DB

핵심 개념

Graph DB는 데이터를 노드(Node)와 엣지(Edge)로 표현하는 데이터베이스입니다. 노드는 개체를 나타내고, 엣지는 개체 간의 관계를 나타냅니다. 수학의 그래프 이론을 데이터베이스에 적용한 것이죠.

기본 구조

  • 노드: 사람, 장소, 사물 등의 개체
  • 엣지: 노드 간의 관계 (방향성을 가질 수 있음)
  • 속성: 노드와 엣지 모두 속성을 가질 수 있음
  • 레이블: 노드의 타입을 구분 (User, Product, Category 등)

RDB와의 차이

RDB에서는 관계를 외래 키로 표현하고, 관계를 탐색하려면 조인을 해야 합니다. 하지만 Graph DB에서는 관계 자체가 1급 시민(First-class citizen)입니다. 관계를 직접 저장하고 탐색할 수 있어서, 다단계 관계 탐색이 훨씬 빠릅니다.

예를 들어 "친구의 친구가 좋아하는 책"을 찾는다면, RDB는 여러 번의 조인이 필요하지만, Graph DB는 그래프를 따라 탐색하면 됩니다.

쿼리 방식

Cypher(Neo4j), Gremlin 같은 그래프 쿼리 언어를 사용합니다. 패턴 매칭 방식으로 작동하죠. "A라는 사람과 연결된 모든 사람을 찾고, 그들이 좋아하는 책을 찾아라" 같은 식입니다.

저장 방식

Graph DB는 보통 두 가지 방식으로 저장합니다.

  • Native Graph Storage: 그래프 구조를 직접 저장 (빠른 탐색)
  • Non-Native Storage: RDB나 NoSQL 위에 그래프 레이어 구축

Native 방식이 관계 탐색에서 더 빠르지만, Non-Native 방식은 기존 인프라를 활용할 수 있다는 장점이 있습니다.

AI 서비스에서의 활용

지식 그래프 구축, 추천 시스템, 관계 분석에 사용됩니다. 최근에는 Graph RAG라는 개념이 등장했는데, 단순히 문서 조각을 찾는 것을 넘어 엔티티 간의 관계까지 활용하는 방식입니다.

지식 그래프 예시

"서울은 대한민국의 수도다"라는 문장에서

  • 노드: 서울, 대한민국
  • 엣지: 수도_관계
  • 엣지 속성: 시작_연도: 1394

이렇게 구조화하면 "서울과 관련된 모든 정보", "대한민국의 수도 변천사" 같은 복잡한 질문에 답할 수 있습니다.

장단점

장점

  • 복잡한 관계 탐색에 최적화
  • 다단계 연결 쿼리가 빠름
  • 그래프 알고리즘 활용 가능 (최단 경로, 중심성 분석 등)
  • 스키마가 유연함

단점

  • 단순 CRUD는 RDB보다 복잡함
  • 학습 곡선이 높음
  • 전체 데이터 스캔이 필요한 집계는 느림
  • 샤딩(분산 처리)이 어려움

비교 정리

데이터 모델 관점

RDB: 테이블 중심. "이 데이터는 어느 테이블에 속하는가?"
Vector DB: 벡터 중심. "이 데이터는 무엇과 비슷한가?"
Graph DB: 관계 중심. "이 데이터는 무엇과 연결되어 있는가?"

검색 방식 관점

RDB: 정확한 조건 검색. "나이가 30살이고 서울에 사는 사람"
Vector DB: 의미적 유사도 검색. "기계 학습에 관한 문서"
Graph DB: 관계 탐색 검색. "이 사람의 친구들이 좋아하는 제품"

성능 특성 관점

RDB: 인덱스 기반 검색이 빠름. 조인이 많으면 느려짐
Vector DB: 고차원 유사도 검색에 최적화. 근사 검색으로 속도 확보
Graph DB: 관계 탐색이 빠름. 전역 집계는 느림

선택 가이드

RDB를 선택하는 경우

  • 데이터 구조가 명확하고 정형화되어 있을 때
  • 트랜잭션과 일관성이 중요할 때
  • 복잡한 집계와 통계가 필요할 때

Vector DB를 선택하는 경우

  • 의미적 검색이 필요할 때
  • 비정형 데이터(텍스트, 이미지)를 다룰 때
  • RAG 시스템을 구축할 때

Graph DB를 선택하는 경우

  • 데이터 간의 관계가 복잡할 때
  • 다단계 연결을 자주 탐색할 때
  • 지식 그래프나 추천 시스템을 만들 때

마치며

AI 서비스를 개발할 때는 각 데이터베이스의 기본 개념과 강점을 이해하는 것이 중요합니다. RDB는 정형 데이터와 트랜잭션에 강하고, Vector DB는 의미적 유사도 검색에 특화되어 있으며, Graph DB는 복잡한 관계 탐색에 최적화되어 있습니다.

profile
안녕하세요

0개의 댓글