■ 브라우저 환경의 한계

     ⛔ 브라우저에 할당된 메모리 내에서만 동작

ㅁ SVG

  • 빠르고 높은 퀄리티의 2D 벡터 그래픽을 제공
  • 브라우저 메모리 사용
  • d3, amChart, cytoscape 등 대부분의 차트 라이브러리가 svg 를 사용
  • 그려야 하는 객체의 개수가 늘어날 수록(10만 개  ) 브라우저 과부하

ㅁ WebGL

  • 브라우저에 무언가를 렌더링 할 때 그래픽 하드웨어(GPU) 성능을 이용할 수 있음
  • 렌더링 기능에 특화되어있어 svg 와 비교해 인터랙션 성능은 떨어짐
  • (이벤트 핸들러 지원 X)

대부분의 고성능 네트워크 그래프 라이브러리가 WebGL 로 노드와 엣지를 렌더링하고 툴팁, 라벨, 축 등은 SVG 로 그리는 방식을 사용 → 기본적인 인터랙션 구현 가능

ㅁ 10만건 Scatter 성능비교

https://www.grapecity.com/wijmo/demos/Chart/Performance/WebGL/Scatter/purejs

** 그래프 성능 비교 아티클 - Interactive media lab (sigma.js 제작 팀)

SVG vs WebGL.pdf

 

■ 자체 개발 시 고려요소

  • WebGL 러닝커브
  • 렌더링 위치 결정, 노드 엣지 렌더링 엔진
  • 애니메이션 엔진 (레이아웃 알고리즘)
  • 렌더링 & UI 요소 간 위치 매칭 알고리즘
    → cluster 끼리 비슷한 위치에 렌더링되어야함
    → 관련도가 적을수록 떨어져 위치해야함
    → edge 의 교차가 적어야 분석이 수월함

& 그래프DB를 써도 결국 노드-엣지 관계 데이터를 받아와야 하고 하나씩 그리긴 해야함 (툴, 자체개발 모두)


■ 툴 후보군 조사

위 조사에서 얻은 내용을 바탕으로 후보군을 선정해 비교함

선정기준 (파랑: 후보군 모두 충족)

  • WebGL 사용여부 (+성능)
  • 알고리즘 → 빅데이터 네트워크 분석 기업 cylynx 레포트 참조
  • 커스터마이징 유연성
  • 인터랙션
  • 커뮤니티 규모
  • 레이아웃 다양성
  • Neo4j 연동 플러그인 지원
  • .gexf (gephi 파일형식) 입출력 지원 여부

웹 환경의 네트워크 그래프 툴이 적어 거의 모든 툴 조사 진행


✅ Keyline 

개발 커뮤니티에서 평이 좋지만 데모를 제공하지 않아서 trial 버전을 요청해둠.
사용 전이라 자료 기반으로 작성

pros

  • 타 라이브러리 대비 좋은 성능
  • 다양한 레이아웃 제공(8가지)
  • 노드 내 노드 제공
  • 준수한 인터랙션 탑재

cons

  • 유료
  • 일반적인 네트워크 그래프 라이브러리와 데이터 구조 상이
  • (Neo4j 와 연결 플러그인은 지원)
  • gephi 파일 형식 (.gexf) 지원 X


✅ Sigma.js
 

pros

  • 오픈소스 (MIT License)
  • 준수한 성능
  • gephi 파일 형식 지원

cons

  • 상대적으로 떨어지는 인터랙션
  • 레이아웃이 2D 레이아웃 하나만 존재


✅ Ogma 

pros

  • 타 라이브러리 대비 좋은 성능
  • 다양한 스타일 옵션
  • 공식문서 깔끔
  • gephi 파일 형식 (.gexf) 지원

cons

  • 유료


✅ Vivagraph

  •  그래프 렌더링 엔진에 가까움
  • 인사이트 도출을 위한 네트워크 그래프에 적합하지 않음


✅ G6

 

pros

  • 오픈소스 (MIT License)
  • 다양한 스타일 옵션
  • 다양한 레이아웃

cons

  • 커뮤니티 & 문서가 중국어
  • 데모 실행 중에도 프레임 저하 발생


✅ ElGrapho

pros

  • 오픈소스 (MIT)
  • 인터랙션을 극한으로 배제하여 매우 빠른 속도

cons

  • 인터랙션이 너무 없어 인사이트 도출에 부적합
  • 커뮤니티가 작음


■ 정리

ㅁ 데이터

  • 네트워크 그래프를 그리려면 클라이언트 측의 데이터 요청/응답은 불가피
  • 다만 모든 노드와 엣지에 대한 정보를 가져오는게 아닌 관계를 알 수 있는 테이블을 가져오고 노드 별 관계는 차트 툴 알고리즘에 맡겨야 함
  • 따라서, 웹단 최적화를 위해선 데이터 후처리 절차를 최대한 배제하고 neo4j 로부터 받아온 데이터 그대로 렌더링하는 구조가 필요

ㅁ 가능성 체크를 위한 유사서비스

CosmoGraph - 네트워크 그래프 웹 렌더링 툴/서비스

Retina

 

 


※ Resources

  • 동국대 통계학과/융합소프트웨어 오성과한음 작성.

 

 

+ Recent posts