Graph DB 종류 및 특징

그래프 데이터베이스는 데이터 모델쿼리 언어에 따라 다양한 제품이 존재합니다.


1. 주요 Graph DB 비교

1.1 기본 정보

구분 Neo4j Amazon Neptune JanusGraph ArangoDB
유형 Property Graph Property Graph & RDF Property Graph Multi-Model
라이선스 Enterprise (상용) / Community (오픈소스) AWS 클라우드 서비스 Apache 2 (오픈소스) Enterprise (상용) / Apache 2 (오픈소스)
쿼리 언어 Cypher Gremlin, SPARQL Gremlin AQL, Gremlin

1.2 특징 및 강점

제품 핵심 강점
Neo4j 시장 선두, Cypher의 직관적 문법, ACID 트랜잭션 지원, 성숙한 에코시스템
Amazon Neptune AWS 완전 관리형, Property Graph + RDF 멀티 모델, 높은 확장성/가용성
JanusGraph 분산 아키텍처, 수십억 노드 처리 가능, Cassandra/HBase/Bigtable 백엔드 연동
ArangoDB 그래프 + 문서 + 키-값 멀티 모델, 단일 시스템으로 다양한 데이터 처리

1.3 주요 사용 분야

제품 적합한 사용 사례
Neo4j 소셜 네트워크, 추천 시스템, 지식 그래프, IT 인프라 관리
Amazon Neptune 클라우드 네이티브 앱, RDF 기반 시맨틱 웹 프로젝트
JanusGraph 대규모 분산 그래프 처리, 빅데이터 분석
ArangoDB 관계형 + 비관계형 데이터 혼합 애플리케이션

2. 그래프 데이터 모델

2.1 Property Graph Model

대부분의 Graph DB가 채택하는 가장 실용적인 모델

┌──────────────────────────────────────────────────┐
│           Property Graph Model 구조               │
│                                                  │
│  [Node]              [Edge]              [Node]  │
│  ├─ id: 1            ├─ type: "친구"     ├─ id: 2│
│  ├─ name: "철수"     ├─ since: 2020      ├─ name: "영희"
│  └─ age: 25          └─ weight: 0.9      └─ age: 24
│                                                  │
└──────────────────────────────────────────────────┘
구성 요소 설명
노드 (Node) 엔터티를 표현, 프로퍼티 보유
엣지 (Edge) 관계 정의, 방향성/유형/프로퍼티 보유
프로퍼티 (Property) 노드/엣지의 속성 (키-값 쌍)

채택 제품: Neo4j, JanusGraph, ArangoDB

2.2 RDF (Resource Description Framework) Model

시맨틱 웹 구현을 위한 표준 모델

┌──────────────────────────────────────────────────┐
│              RDF Triple 구조                      │
│                                                  │
│     Subject ──── Predicate ────→ Object          │
│     (주어)        (술어)          (목적어)         │
│                                                  │
│  예시: "철수" ──── "친구이다" ────→ "영희"         │
└──────────────────────────────────────────────────┘
특징 설명
데이터 표현 주어-술어-목적어 트리플 형태
초점 데이터 간 의미론적 관계
주요 용도 지식 그래프, 학술 연구, 온톨로지

채택 제품: Amazon Neptune (SPARQL 지원)


3. 쿼리 언어 비교

언어 개발사 특징 스타일
Cypher Neo4j SQL 유사, 그래프 패턴을 시각적으로 표현 Declarative
Gremlin Apache TinkerPop 다양한 백엔드 지원, 단계적 탐색 방식 Procedural
SPARQL W3C RDF 데이터 전용, 시맨틱 웹 표준 Declarative
AQL ArangoDB 그래프 + 문서 쿼리 통합 지원 Declarative

3.1 쿼리 예시 비교

“철수의 친구 찾기”

// Cypher (Neo4j)
MATCH (p:Person {name: "철수"})-[:친구]->(friend)
RETURN friend.name
// Gremlin (JanusGraph, Neptune)
g.V().has('name', '철수').out('친구').values('name')
# SPARQL (Neptune RDF)
SELECT ?friend WHERE {
  :철수 :친구 ?friend .
}

4. 선택 가이드

어떤 Graph DB를 선택해야 할까?

├── 빠른 시작 + 직관적 쿼리 → Neo4j
├── AWS 클라우드 네이티브 → Amazon Neptune
├── 초대규모 분산 처리 → JanusGraph
└── 멀티 모델 (그래프 + 문서) → ArangoDB
고려 사항 추천 제품
학습 곡선이 낮아야 함 Neo4j (Cypher)
AWS 인프라 활용 Amazon Neptune
수십억 노드 처리 JanusGraph
다양한 데이터 모델 통합 ArangoDB
RDF/시맨틱 웹 필요 Amazon Neptune