데이터의 시각화: 네트워크 그래프

DH 교육용 위키
이동: 둘러보기, 검색

김현
한국학중앙연구원 인문정보학 교수

데이터의 시각화

인문 연구의 분야에서 탐구하는 사실을 시각적으로 표현하기 위해서는 어떠한 형태의 데이터를 만들어야 할까? 표현하고자 하는 주제에 따라 시각화의 방법도 다양하게 선택될 수 있지만, 개체와 개체 사이의 관계를 그래프로 보여 주는 네트워크 시각화는 가장 일반적으로 활용되고 있는 데이터 시각화 기술 중의 하나라고 할 수 있다.

네트워크 그래프의 구성 요소

네트워크 그래프가 그려지려면 두 종류의 데이터가 있어야 한다. 하나는 그물망 속에서 연결선이 만나는 접점(node)이 되는 개체의 목록이고, 다른 하나는 개체와 개체 사이를 연결(link)하는 관계성에 대한 목록이다. 접점(node)과 연결(link) 두 가지는 온톨로지(Ontology) 설계에서 다루는 ‘개체’(individual) 및 ‘관계성’(relation)과 다르지 않다. 사실상 데이터를 시각화 하는 것은 그 데이터를 구조화 하는 작업이 전제되어야 하는 것이기 때문에, 온톨로지 설계 방법을 알면 데이터의 시각화를 훨씬 더 용이하게 할 수 있다.

NodeNEdge.jpg

네트워크 그래프의 구성 요소: 접점(node)과 연결(link)[1]

네트워크 그래프 작성 예시

무엇에 관한 네트워크이든 그것의 시각화를 위해서는 먼저 그 네트워크를 형성하는 개체와 그 개체들 사이의 관계가 일정한 형식의 데이터로 정리되어 있어야 한다. 아래의 그림은 조선시대에 만들어진 광산 김씨 가문의 족보(族譜) 지면이다. 이 족보의 내용을 네트워크 그래프(Network Graph)로 재현하는 방법을 생각해 보자.

FamilyTree00.jpg

광산 김씨 족보: 김효로(金孝盧, 1454~1534)와 그의 자손


우리가 시각적으로 표현하려고 하는 대상이 족보의 내용이라면, 족보상의 인물 한 사람 한 사람이 그물망의 접점(node)이 될 것이고, 그 인물들 사이의 친속관계가 꼭짓점과 꼭짓점 사이의 연결(link)로 표시될 것이다. 위에 예시한 광산 김씨 족보 내용 중에 15세기 후반에 살았던 ‘김효로(金孝盧, 1454~1534)’와 그의 직계 친속 몇 사람을 뽑아서 접점과 연결의 목록을 만들어 보았다.


접점 목록(Node List)

ID 이름 그룹
GSKN10005 김효지 남자
GSKN10006 김회 남자
GSKN10010 김효로 남자
GSKN10011 김연 남자
GSKN10012 김수 남자
GSKN20037 김효로 처 이씨 부인
GSKN20039 김연 처 조씨 부인
GSKN20040 김수 처 김씨 부인
GSKN40049 김효로 1녀
GSKN40050 김효로 2녀
GSKN50063 김우 사위
GSKN50064 금재 사위


연결 목록(Link List)

개체 1 관계 개체 2
김효지 양자로 삼다 김효로
김회 아들을 낳다 김효로
김효지 아내로 맞이하다 김효로 처 이씨
김효지 아들을 낳다 김연
김효지 아들을 낳다 김수
김효지 딸을 낳다 김효지 1녀
김효지 딸을 낳다 김효지 2녀
김연 아내로 맞이하다 김연 처 조씨
김수 아내로 맞이하다 김수 처 김씨
김우 아내로 맞이하다 김효지 1녀
금재 아내로 맞이하다 김효지 2녀

네트워크 그래프 표현

위와 같이 두 종류의 목록이 만들어 지면 네트워크 그래프를 그리기 위한 모든 준비가 다 이루어진 셈이다. 남은 일은 그래프를 그려 주는 소프트웨어에 이 2가지 데이터를 입력하는 것이다. 어떤 소프트웨어를 선택하느냐에 따라 데이터 입력 형식도 다소의 차이는 있지만, 접점과 연결 즉 개체와 관계성의 목록은 필수적인 공통 요소이다.

GephiTM

FamilyTree01.jpg

광산 김씨 가계도의 시각화: 그래프 소프트웨어 GephiTM 사용[2]

GephiTM의 입력 데이터 형식: 접점과 연결선의 목록

Nodes

Id Label
GSKN10005 김효지
GSKN10006 김회
GSKN10010 김효로
GSKN10011 김연
GSKN10012 김수
GSKN50063 김우
GSKN50064 금재
GSKN20037 김효로 처 이씨
GSKN20039 김연 처 조씨
GSKN20040 김수 처 김씨
GSKN40049 김효로 1녀
GSKN40050 김효로 2녀

Edges

Source Target
GSKN10005 GSKN10010
GSKN10006 GSKN10010
GSKN10010 GSKN10011
GSKN10010 GSKN10012
GSKN10010 GSKN20037
GSKN10011 GSKN20039
GSKN10012 GSKN20040
GSKN10010 GSKN40049
GSKN10010 GSKN40050
GSKN50063 GSKN40049
GSKN50064 GSKN40050

Google Visualization API

FamilyTree02.jpg

광산 김씨 가계도의 시각화: Google Visualization API를 사용한[3] HTML 문서

Neo4jTM Graph Database

FamilyTree03.jpg

광산 김씨 가계도의 시각화: 그래프 데이터베이스 Neo4jTM 사용[4]

데이터를 시각화하는 이유

SNS(Social Networking Service)의 확산과 더불어 그 네트워크의 양태를 분석하고자 하는 수요가 일어나면서 네트워크 시각화 기술의 활용이 일반화되었고, 이를 도와주는 다양한 소프트웨어들이 개발되었다. 인문학 연구와 교육도 이러한 시각화 기술의 도입을 통해 효과적인 표현과 의미 있는 발견을 추구할 수 있다. 인문지식 데이터를 그래프로 표현하는 것은 우리가 이미 알고 있는 것을 남들에게 보여 주기 위해서 하는 일만은 아니다. 시각화의 방법을 통해 우리는 더욱 정확한 데이터를 만들 수 있고, 그 속에서 우리가 미처 몰랐던 새로운 사실을 발견할 수도 있다.

네트워크 그래프 활용 예시




  1. 이러한 그래프에서의 접점(node)과 연결(link)을 각각 꼭짓점(vertex, pl. vertices)과 연결선(edge)이라고 부르기도 한다.
  2. Gephi: 네트워크 분석 및 시각화 소프트웨어. 프랑스 콩피에뉴 공대(University of Technology of Compiègne, UTC)에서 처음 개발하였다. 오픈 소스 프로그램이어서 대학에서의 연구, 교육 목적으로 많이 활용되고 있다. https://gephi.org/
  3. https://developers.google.com/chart/interactive/docs/gallery/table#overview
  4. Neo4J: Neo Technology사에서 개발한 그래프 데이터베이스 관리 시스템. 모든 데이터를 노드, 링크, 속성의 형태로 저장하기 때문에 데이터의 관계성에 대한 질의가 가능하고, 검색 결과를 그래프 형태로 표현할 수 있다. http://neo4j.com/

※ 이 기사는 『디지털 인문학 입문(김현 외, HUEBOOKs, 2016, 5. 31.) 제2편 Ⅲ-2. 데이터의 시각화의 글을 발췌. 정리한 것입니다.