그래프 데이터베이스(Graph Database)개념과 활용사례
안녕하세요. 오늘 주제는 [ 그래프 데이터베이스(Graph Database)개념과 활용사례]입니다.
1. 그래프 데이터베이스(Graph Database)란?
그래프 데이터베이스는 1) 노드(node 혹은 정점vertex), 2) 엣지(edge), 3) 속성(Property) 으로 구성된 데이터베이스의 유형입니다.
아래 그림에서 Id, Name, Age가 담긴 부분을 ‘노드(node)’로 부르고 그 안에 담긴 ‘키 — 값’ 으로 이뤄진 ‘Id: 1, Name: Alice, Age: 18’ 부분을 ‘속성(property)’, 노드 간의 관계가 표시된 화살표를 ‘엣지(edge)’라고 합니다.
2. 그래프데이터의 장점
(1) 빅데이터/실시간 데이터 분석에 용이함
: 기존 관계형데이터베이스가 표(table)로 저장되어 있어 데이터 간의 의미해석을 위해 별도의 데이터 시각화 작업을 필요로 했다면, 그래프데이터는 데이터 자체가 ‘점 — 선’으로 저장되어 있고 특정 속성에 따라 연결관계를 바로 확인할 수 있기 때문에 대량의 빅데이터/실시간 데이터 분석에 용이하다는 장점이 있습니다.
(2) 데이터 저장의 유연성
: 데이터 추가 시 기존 관계형데이터베이스에서는 테이블의 컬럼 항목, Primary key 확인, foreign key 연동 테이블 확인 등 데이터베이스의 안정성을 위해 복잡한 단계를 거쳐야했다면, 그래프데이터는 새로운 데이터가 담긴 노드를 추가하고 다른 데이터들과의 관계를 엣지로 연결하기만 하면 데이터 추가가 완료되기 때문에 데이터 저장에 매우 유연하다는 장점을 가집니다.
(3) 빠른 질의(Query) 속도
: 그래프데이터의 대표적인 예시로 소셜네트워크 데이터를 들 수 있는데, 특정 인물의 친구의 친구 데이터를 조회하거나 이커머스 쇼핑몰에서 한 고객의 여러 쇼핑몰의 주문데이터를 확인해야 하는 등 관계의 복잡성이 올라가는 데이터를 조회해야 할 때, 기존 관계형데이터베이스의 경우 분석가가 전체 데이터베이스 구조를 파악한 다음 조인(Join)쿼리 등을 사용해 데이터를 가져와야 하고 관계가 복잡할수록 쿼리도 복잡해지는 단점을 가지는 반면, 그래프데이터는 데이터 객체(노드)들 간의 관계가 엣지로 이어져있기 때문에 처음 검색 노드와 관련 엣지만 파악하면 연결데이터를 빠르게 찾을 수 있다는 장점이 있습니다.
3. 그래프 데이터베이스(Graph Database) 활용 사례
그래프 데이터가 주목을 받게 된 이유는 ‘빅데이터와 실시간 데이터 활용의 증가’와 관련이 깊습니다.
대표적으로 아래와 같은 서비스들이 있습니다.
비트나인의 AgensGraph는 2017년 UN의 세계식량계획(WFP) 연구 중 아프리카 기아문제 해결에 활용되었는데, 아프리카 지역별로 어떤 영양소가 부족한지 ‘영양소별 섭취 횟수’를 그래프 데이터로 시각화해 적정한 영양 공급에 기여했다고 합니다. (참고기사)
위 예시뿐 아니라, 이커머스 고객의 상품별 장바구니/결제 데이터를 확인해 연관도가 높은 추천 상품을 제시하거나, AI기반의 학습플랫폼(그래프 데이터로 학생의 영역별 부족한 부분을 빠르게 파악하여 맞춤 커리큘럼을 제시), 자산관리시스템(실시간으로 자산의 변동 상황을 그래프데이터로 파악하여 상황에 따른 데이터를 보여주고, 관리해주는 시스템), 이상거래탐지(입국자 경로 관계 분석으로 불법 밀수품 탐지, 계좌 간 거래 패턴 분석으로 숨겨진 대포통장 탐지)등이 있습니다.
마치며..
실시간으로 대용량의 데이터를 빠르게 저장하고 분석할 수 있는 구조이기 때문에 디지털 서비스 이용이 증가함에 따라 그래프데이터의 활용도도 높아져 세계적으로 관심을 받고 있는 분야라고 합니다.
비트나인이 곧 코스닥 상장에 속도를 낸다고 하는데, 이 부분도 흥미로운 점인 것 같습니다.
이상으로, [ 그래프 데이터베이스(Graph Database)개념과 활용사례 ] 포스팅을 마칩니다. 다음에 더 흥미로운 주제로 찾아 뵙겠습니다.
감사합니다.