Guide

온톨로지 &
지식 그래프

관계를 명시하는 데이터 모델링
AI가 근거를 따라갈 수 있는 데이터를 만드는 법

4단계 온톨로지 스펙트럼
관계 중심 노드 + 엣지 데이터 모델
Hybrid Vector + Graph 라우팅

온톨로지와 지식 그래프란?

데이터에 "의미"를 부여하는 두 가지 핵심 개념

O

온톨로지 (Ontology)

도메인의 개념과 관계를 형식적으로 정의한 체계. "고객은 주문을 하고, 주문은 제품을 포함하고, 제품은 카테고리에 속한다"를 기계가 이해할 수 있는 형태로 표현한다. 온톨로지는 스키마다 — 실제 데이터가 아니라 데이터의 구조와 규칙을 정의한다.

K

지식 그래프 (Knowledge Graph)

온톨로지를 기반으로 실제 데이터를 노드와 엣지로 연결한 그래프 구조. 온톨로지가 "고객은 주문을 한다"라는 규칙이면, 지식 그래프는 "김철수가 주문#1234를 했다"라는 실제 사실이다. 지식 그래프는 인스턴스 데이터다.

쉽게 말하면: 온톨로지는 빈 엑셀의 열 제목(스키마)이고, 지식 그래프는 그 엑셀에 채워진 실제 데이터다. 하지만 엑셀과 달리 행과 열이 아니라 그래프(노드와 엣지)로 표현되기 때문에 복잡한 관계를 자연스럽게 표현할 수 있다.

관계형 DB와 뭐가 다른가?

관계형 DB는 테이블과 JOIN으로 관계를 표현한다. 관계가 깊어지면 JOIN이 복잡해지고 성능이 떨어진다. 지식 그래프는 관계 자체를 일급 시민으로 저장하기 때문에, "3단계 떨어진 관계"를 찾는 것이 자연스럽고 빠르다. AI가 "김철수의 동료가 구매한 제품의 카테고리"를 찾아야 할 때, JOIN 5개보다 그래프 순회가 빠르다.

왜 AI에 중요한가?

벡터 검색은 의미가 비슷한 문서를 찾는 데 강하지만, 관계의 종류와 경로를 그대로 보존하지는 않는다. 지식 그래프는 엔티티와 관계를 명시해 멀티홉 탐색과 전역 요약에 쓸 구조를 제공한다. 다만 효과는 데이터·질문·추출 품질에 따라 달라지므로, Microsoft Research의 GraphRAG 연구처럼 과업별 평가로 확인해야 한다.

온톨로지 스펙트럼: 단순에서 복잡으로

처음부터 OWL을 만들 필요는 없다 — 단계적으로 깊이를 더한다

Glossary

단어와 정의만 있는 목록

시작점

Taxonomy

계층 구조 (is-a 관계). 예: 동물 > 포유류 > 개

분류

Thesaurus

동의어, 관련어, 상위어/하위어

관계

Ontology

속성, 제약, 논리 규칙, 추론 가능

추론
실전 원칙: 보편적으로 최적인 클래스 수는 없다. 먼저 답해야 할 컴피턴시 질문에서 최소 개념·관계·제약을 도출하고, 새 질문을 표현할 수 없을 때 확장한다. OWL 같은 형식 논리는 실제 추론이나 상호운용 요구가 생긴 뒤 선택해도 늦지 않다.

트리플: 지식 그래프의 기본 단위

모든 지식 그래프는 주어-술어-목적어 트리플로 구성된다

김철수 (Subject)
주문했다 (Predicate)
주문#1234 (Object)
주어(누가) → 술어(무엇을 했다) → 목적어(무엇에 대해)
주문#1234
포함한다
MacBook Pro
MacBook Pro
속한다
노트북 카테고리
트리플을 연결하면 그래프가 된다 — "김철수 → 주문 → MacBook Pro → 노트북 카테고리"
이것이 관계형 DB와 근본적으로 다른 점이다. 관계형 DB에서 "김철수가 주문한 제품의 카테고리"를 찾으려면 고객 테이블 → 주문 테이블 → 주문상품 테이블 → 제품 테이블 → 카테고리 테이블을 JOIN해야 한다. 지식 그래프에서는 노드를 따라가기만 하면 된다. 관계가 깊어질수록 이 차이는 극적으로 커진다.

GraphRAG: 지식 그래프 + RAG

벡터 검색만으로 한계에 부딪혔다면 — 그래프가 답일 수 있다

먼저 구분할 것: GraphRAG는 하나의 고정 알고리즘이나 범용 정확도 점수가 아니다. 그래프 구축 방식, 검색 전략, 코퍼스와 질문 세트가 바뀌면 결과도 바뀐다. 아래 표는 보편적 퍼센트가 아니라 원 연구의 문제 설정과 데이터 모델의 특성에서 도출한 선택 기준이다.
질문 유형 Vector RAG GraphRAG 추천
"X에 대한 문서 찾아줘" 적합 과잉 Vector
"A와 B의 관계가 뭐야?" 부족 적합 Graph
"지난달 X의 정확한 총 매출은?" 부적합 생성 답변은 위험 DB/그래프 직접 쿼리
"A가 B에게 미친 영향의 경로?" 불가 적합 Graph
"이 주제의 최신 논문 요약해줘" 적합 불필요 Vector
운영 원칙: 고정 비율을 전제로 하지 말고 실제 질문을 의미 검색·관계 탐색·전역 종합·정확 집계로 라벨링하라. 각 유형에 Vector, GraphRAG, 직접 DB 쿼리를 붙여 평가한 뒤 하이브리드 라우터의 기준을 정한다.

실전 도구 생태계

지식 그래프를 직접 만들어보기 위한 도구들

Graph DB

Neo4j

가장 널리 사용되는 그래프 DB. Cypher 쿼리 언어, 데스크톱 앱으로 빠른 시작 가능. "Ontologies as a First-Class Citizen" 로드맵 (2026).
Cypher · Java · 커뮤니티 최대
Graph DB

FalkorDB

실시간 AI 특화 그래프 DB. 희소 행렬 곱셈 기반 순회로 초저지연. Redis 모듈로 동작. GraphRAG SDK로 자동 온톨로지 생성 지원.
C · Redis Module · Docker 한 줄 시작
Framework

Graphiti (by Zep)

시간 인식 지식 그래프 프레임워크. AI 에이전트 메모리에 특화되어 있으며 Neo4j, FalkorDB, Amazon Neptune 등 여러 DB를 지원한다.
Python · 멀티에이전트 · 실시간
Framework

LangChain + LangGraph

LangChain 생태계에서 GraphRAG 파이프라인 구축. Neo4j, FalkorDB 통합. 벡터 + 그래프 하이브리드 검색 지원.
Python/JS · 가장 넓은 통합
Platform

TrustGraph

Context Operating System. OntologyRAG 지원 — 온톨로지 기반 컨텍스트 그래프를 자동 구축하고 관리.
오픈소스 · OntologyRAG
Platform

GraphRAG SDK (FalkorDB)

비정형 데이터에서 자동으로 온톨로지를 감지하고 지식 그래프를 생성. 수동/자동 온톨로지 관리 모두 지원.
Python · 자동 온톨로지 · 프로덕션급

실전: 어디서부터 시작할까

온톨로지를 처음 만드는 사람을 위한 단계별 접근

1

DB 스키마에서 시작하라

연구에 따르면, DB 스키마에서 온톨로지를 추출하면 텍스트에서 추출한 것과 성능이 비슷하면서 비용은 훨씬 낮다. DDL(테이블 정의)을 LLM에게 주면 클래스, 속성, 관계를 자동 추출할 수 있다. 이미 있는 데이터의 구조를 활용하라.

2

작게 시작하라

첫 컴피턴시 질문을 답하는 데 필요한 핵심 노드와 관계만으로 시작하라. 클래스 수에 보편적인 정답은 없다. 새 질문이 기존 모델로 표현되지 않을 때 근거를 남기고 점진적으로 확장한다.

3

하이브리드로 가라

벡터 검색을 버리고 그래프로 갈 필요는 없다. 의미 검색은 벡터에, 관계 탐색과 전역 종합은 그래프에, 정확 집계는 직접 쿼리에 맡긴다. 실제 질문 분포로 라우팅 기준을 검증하라.

4

엔티티 해소(Entity Resolution)에 투자하라

초기 GraphRAG 구현에서 가장 큰 문제: "John Doe, 45" vs "John Doe, age 45", "Type 2 Diabetes" vs "T2D". 같은 엔티티를 다른 이름으로 인식하면 그래프가 무너진다. 동의어 사전과 정규화가 핵심.

도입 게이트: ROI는 고정 수치가 아니라 데이터 준비도와 질문 분포에 따라 달라진다. 먼저 Vector RAG 베이스라인을 만들고, 관계형 질문의 정답률·지연·인덱싱 비용을 함께 측정하라. 출처와 엔티티가 정리된 AI-Ready Data가 선행 조건이다.