| <colbgcolor=#30638e><colcolor=#fff,#fff> Graphviz | |
| | |
| 종류 | 그래프 시각화 소프트웨어 그래프 기술 언어 |
| 개발 | AT&T 연구소 |
| 개발 시작 연도 | 1988년[1] |
| 안정 버전 | 14.0.0 |
| 개발 언어 | C |
| 라이선스 | Eclipse Public License 1.0 |
| 링크 |
| Pandora FMS로 탐색한 내부망 구조를 twopi 레이아웃으로 시각화한 모습 |
1. 개요
라이브러리, CLI 및 그래프 기술 언어를 포함한 그래프 시각화 도구 툴체인.2. DOT
#소스로 사용되는 그래프 기술 언어.
기본적으로 그래프 정의(무향그래프, 유향그래프 등)로 시작하며, 그래프 정의 내부에 개별 노드를 선언하고 해당 노드를 잇는 edge를 차례대로 정의하는 방식이다.
모양, 색, 크기 등 개별 요소의 모습을 바꾸기 위해 대괄호로 속성(attribute)를 추가할 수 있다.
3. 레이아웃
그래프 정의를 읽어들여 실제 렌더링을 수행하는 알고리즘 및 구현체. 다음과 같은 레이아웃 엔진이 기본적으로 내장되어 있으며, 사용자 정의 레이아웃 엔진을 사용할 수도 있다.- dot
- neato: 스프링 모델 알고리즘으로, dot과 다르게 방향이 없기 때문에 노드 수가 적을 때 그래프가 보기 좋게 둘러져서 나온다.
- fdp
- sfdp
- circo
- twopi
- nop
- nop2
- osage
- patchwork
4. 쓰임
공학 분야의 논문, 기술 보고서, 표준 명세(formal specification) 등 문서에 삽입될 보기 이미지를 생성하기 위해 자주 사용된다.특히 컴퓨터과학 분야에 정말 많이 사용된다. 이산수학이랑 밀접한 특성상 그래프 자체를 자주 다루기도 하고, 유한 상태 기계 등을 도식화하거나 각종 알고리즘, 자료구조 등의 원리를 시각화하는 용도로 좋기 때문이다. 이웃 학문인 컴퓨터공학 쪽으로 넘어가도 네트워크 시각화나 빌드 위상 정렬 기반 빌드/CI 시스템 시각화, 종속성 트리 시각화, 추상 구문 트리 시각화, UML 설계도 시각화, 인공신경망 레이어 시각화 등 대부분의 컴퓨터공학 분야에 사용할 수 있다.
간단한 프로그래밍이나 스크립팅을 통해 대량의 DOT 데이터를 자동 생성할 수 있기에 프로그래머가 사용하기 쉬운 점도 한몫한다.
5. 외부 링크
- 데모 모음 페이지
- viz-js - Emscripten 컴파일 WebAssembly 포팅 버전
- viz-js.com - 위 viz-js를 이용하는 온라인 플레이그라운드
6. 관련 문서
[1] The Graphviz software began with a precursor of dot in 1988, followed by neato in the early 90’s. Ellson, J., Gansner, E., Koutsofios, L., North, S.C., Woodhull, G. (2002). Graphviz— Open Source Graph Drawing Tools. In: Mutzel, P., Jünger, M., Leipert, S. (eds) Graph Drawing. GD 2001. Lecture Notes in Computer Science, vol 2265. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45848-4_57