맨위로가기

Graphviz

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

Graphviz는 그래프 시각화를 위한 오픈 소스 패키지이다. DOT 언어를 기반으로 하며, dot, neato, fdp, sfdp, twopi, circo 등 다양한 레이아웃 도구와 dotty, lefty와 같은 GUI 도구를 제공한다. 다양한 응용 프로그램과 개발 및 문서화 도구, UML 도구, 위키 및 협업 도구 등에서 사용되며, 그래프를 시각화하고 편집하는 데 활용된다.

더 읽어볼만한 페이지

  • 이클립스 라이선스 소프트웨어 - JUnit
    JUnit은 자바 환경에서 단위 테스트를 위한 프레임워크로, 반복적인 테스트 실행을 통해 버그 수정에 용이하며, 어노테이션 기반의 간편한 테스트 코드 작성과 IDE 통합을 지원하여 개발 효율성을 높인다.
  • 이클립스 라이선스 소프트웨어 - Eclipse (소프트웨어)
    이클립스는 IBM에서 개발한 자바 기반의 통합 개발 환경으로, OSGi 서비스 플랫폼을 런타임 아키텍처로 사용하며, 플러그인을 통해 기능을 확장할 수 있고, 이클립스 퍼블릭 라이선스를 따르며, 한국어를 지원한다.
  • C로 작성된 자유 소프트웨어 - PostgreSQL
    PostgreSQL은 캘리포니아 대학교 버클리 분교의 Ingres 프로젝트에서 시작되어 전 세계 개발자들의 협력을 통해 발전해온 객체 관계형 데이터베이스 관리 시스템(ORDBMS)이다.
  • C로 작성된 자유 소프트웨어 - 김프
    김프(GIMP)는 GNU 프로젝트에서 개발된 크로스 플랫폼 기반의 무료 오픈소스 래스터 그래픽 편집기로, 다양한 운영체제를 지원하며 풍부한 기능을 제공하지만 사용자 인터페이스에 대한 비판과 일부 기능의 부족함에 대한 평가도 존재한다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 브루클린 미술관
    브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다.
  • 공식 웹사이트에 알 수 없는 변수를 사용한 문서 - 광주지방기상청
    광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
Graphviz - [IT 관련 정보]에 관한 문서
일반 정보
Graphviz 로고
Graphviz 로고
개발자AT&T Labs Research 및 기여자
발표일1991년 이전
저장소Graphviz GitLab 저장소
프로그래밍 언어C
운영체제리눅스
macOS
윈도우
장르그래프 시각화
라이선스이클립스 퍼블릭 라이선스
웹사이트Graphviz 공식 웹사이트

2. 도구

Graphviz는 그래프 기술 언어인 DOT 언어를 기반으로 하며[14], DOT 파일을 생성 및 편집하는 도구들로 구성된다. 주요 도구는 다음과 같다.


  • dot: 유향 그래프를 레이아웃하여 PostScript, PDF, SVG 등 다양한 파일 형식을 생성하는 명령줄 도구이다.
  • neato: '''dot'''의 무향 그래프 버전이다.
  • twopi: 방사형 레이아웃용 도구이다.
  • circo: 환상형 레이아웃용 도구이다.
  • fdp: 무향 그래프용 레이아웃 도구이다.
  • dotty: 그래프를 시각화하고 편집할 수 있는 그래픽 사용자 인터페이스 (GUI)이다.
  • lefty: DOT 그래프를 그리기 위한 프로그래밍 가능한 위젯으로, 사용자가 마우스로 조작할 수 있다. 모델-뷰-컨트롤러형 GUI에서 뷰(View)로 사용 가능하다.

2. 1. 주요 도구


  • dot: 다양한 출력 형식(PostScript, PDF, SVG, 주석이 달린 텍스트 등)으로 계층형 그래프를 생성하는 명령줄 도구이다.
  • neato: 노드가 약 1000개 이하인 무방향 그래프에 유용하다. "스프링 모델" 레이아웃은 전역 에너지를 최소화한다.
  • fdp: "스프링 모델"과 유사한 힘 기반 그래프 드로잉이지만 에너지가 아닌 힘을 최소화한다. 무방향 그래프에 유용하다.
  • sfdp: 대규모 무방향 그래프 레이아웃을 위한 fdp의 다중 스케일 버전이다.
  • twopi: 방사형 그래프 레이아웃용 도구이다. 노드는 주어진 루트 노드로부터의 거리에 따라 동심원에 배치된다.
  • circo: 원형 레이아웃 도구이다. 특정 통신 네트워크와 같이 여러 순환 구조의 특정 다이어그램에 적합하다.
  • dotty: 그래프를 시각화하고 편집하기 위한 그래픽 사용자 인터페이스이다.
  • lefty: DOT 그래프를 표시하고 사용자가 마우스로 작업을 수행할 수 있게 해주는 프로그래밍 가능한 위젯이다.[3] Lefty는 그래프를 사용하는 모델-뷰-컨트롤러 GUI 애플리케이션의 뷰로 사용할 수 있다.
  • gml2gv, gv2gml: 다른 그래프 파일 형식인 GML로 변환한다.
  • graphml2g: GraphML 파일을 DOT 형식으로 변환한다.
  • gxl2gv, gv2gxl: 다른 그래프 파일 형식인 GXL로 변환한다.

2. 2. 기타 도구

도구설명
dot다양한 출력 형식(PostScript, PDF, SVG, 주석이 달린 텍스트 등)으로 계층형 그래프 드로잉을 생성하는 명령줄 도구.
neato노드가 약 1000개 이하인 무방향 그래프에 유용하며, "스프링 모델" 레이아웃은 전역 에너지를 최소화함.
fdp"스프링 모델"과 유사한 힘 기반 그래프 드로잉이지만 에너지가 아닌 힘을 최소화하며, 무방향 그래프에 유용함.
sfdp대규모 무방향 그래프 레이아웃을 위한 fdp의 다중 스케일 버전.
twopi방사형 그래프 레이아웃용 도구. 노드는 주어진 루트 노드로부터의 거리에 따라 동심원에 배치됨.
circo원형 레이아웃. 특정 통신 네트워크와 같이 여러 순환 구조의 특정 다이어그램에 적합함.
dotty그래프를 시각화하고 편집하기 위한 그래픽 사용자 인터페이스.
leftyDOT 그래프를 표시하고 사용자가 마우스로 작업을 수행할 수 있게 해주는 프로그래밍 가능한 위젯 ([http://portal.acm.org/citation.cfm?id=318642 EZ]에서 영감을 얻은 언어로).[3] 따라서 Lefty는 그래프를 사용하는 모델-뷰-컨트롤러 GUI 애플리케이션의 뷰로 사용할 수 있음.
gml2gv, gv2gml다른 그래프 파일 형식인 GML로 변환.
graphml2gGraphML 파일을 DOT 형식으로 변환.
gxl2gv, gv2gxl다른 그래프 파일 형식인 GXL로 변환.


3. 아키텍처

Graphviz는 그래프 기술 언어인 DOT 언어를 기반으로 하며[14], DOT 파일을 생성 및 편집하는 다음과 같은 도구로 구성된다.


  • dot: 유향 그래프를 레이아웃하여 다양한 파일 형식([PostScript], PDF, SVG 등)을 생성하는 명령줄 도구
  • neato: 'dot'의 무향 그래프 버전
  • twopi: 방사형 레이아웃용 도구
  • circo: 환상형 레이아웃용 도구
  • fdp: 무향 그래프용 레이아웃 도구
  • dotty: 그래프를 시각화하고 편집할 수 있는 그래픽 사용자 인터페이스 (GUI)
  • lefty: DOT 그래프를 그리기 위한 프로그래밍 가능한 위젯. 사용자가 마우스로 조작할 수 있으며, 그래프를 사용한 Model View Controller형 GUI에서 사용할 수 있다.

4. 응용

Graphviz는 개발 및 문서화 도구, UML 도구, 위키 및 협업 도구, 소셜 네트워크 시각화 등 다양한 분야에서 활용되고 있다.

하위 섹션에서 이미 상세하게 다루고 있으므로, 여기에서는 주요 응용 프로그램 종류만 간략하게 언급한다.


  • 개발 및 문서화 도구: Doxygen, Sphinx 등
  • UML 도구: PlantUML, ArgoUML
  • 위키 및 협업 도구: Confluence, Trac
  • 기타: 페이스북 소셜 네트워크 시각화를 위한 Friend Explorer, 관계도 작성을 위한 OmniGraffle 등

4. 1. 개발 및 문서화 도구

Graphviz는 다음과 같은 다양한 소프트웨어 및 도구에서 활용되고 있다.

  • ArgoUML의 argouml-graphviz (대체 UML 다이어그램 렌더링)[4]
  • AsciiDoc (Graphviz 구문을 다이어그램으로 포함)
  • Bison (언어 시각화를 위해 문법을 dot으로 출력)[5]
  • Confluence (텍스트 설명에서 다이어그램을 렌더링하는 Graphviz 플러그인)
  • ConnectedText (Graphviz 플러그인)
  • Doxygen (소스 코드의 클래스 계층 구조, 협업 및 호출 트리를 포함한 다이어그램 생성)[6]
  • FreeCAD (문서 객체 간 종속성 표시)[7]
  • Gephi (Graphviz 플러그인)
  • Gramps (계보(가계도) 다이어그램 생성)
  • Graph-tool (그래프 조작 및 시각화를 위한 파이썬 라이브러리)
  • OmniGraffle 버전 5 이상 (그래프 자동 배치를 위한 제한된 명령 집합과 함께 Graphviz 엔진 사용)[8]
  • Org-mode (DOT 소스 코드 블록 작업)[9]
  • PlantUML (텍스트 설명에서 UML 다이어그램 생성)
  • Puppet (Graphviz로 볼 수 있는 DOT 리소스 그래프 생성)
  • Scribus (렌더 프레임이라는 특수 프레임 유형에서 내부 편집기를 사용하여 그래프 렌더링, 오픈 소스 DTP 프로그램)[10]
  • Sphinx (문서에 그래프 포함)[11]
  • TOra (GNU GPL 하에 제공되는 자유 소프트웨어 데이터베이스 개발 및 관리 GUI)
  • Trac 위키 (Graphviz 플러그인)[11]
  • Zim (Graphviz dot 언어를 사용하여 페이지 내 다이어그램 추가 및 편집 플러그인 포함)[12]
  • lisp2dot (LISP 프로그램을 DOT 언어로 변환, 유전자 프로그래밍 이용 목적)
  • Doxygen (C++, Java, Python 연계, Graphviz를 사용한 클래스 상속 관계 그림)
  • GraphViz (MediaWiki Graphviz 확장)
  • [http://moinmoin.wikiwikiweb.de/ParserMarket/dot.py MoinMoin wiki GraphViz 확장]
  • [http://www.softwaresecretweapons.com/jspwiki/linguinemaps Linguine Maps Java API to Graphviz]
  • [http://www.umlgraph.org/ UMLGraph] (선언적 기술로부터 UML 클래스 다이어그램 및 시퀀스 다이어그램 작성)
  • [http://www.friendexplorer.net/ Friend Explorer] (Graphviz와 페이스북 API를 사용하여 소셜 네트워크 그림)
  • OmniGraffle ([http://www.act2.com/products/omni/omni_graffle5/ 옴니그래플 5]) (Graphviz 기반 레이아웃 엔진 탑재, 관계도를 GUI 환경에서 작성)

4. 2. UML 도구


  • ArgoUML의 argouml-graphviz는 대체 UML 다이어그램 렌더링 도구이다.[4]
  • PlantUML은 텍스트 설명으로 UML 다이어그램을 생성하기 위해 Graphviz를 사용한다.
  • [http://www.umlgraph.org/ UMLGraph]는 선언적 기술로부터 UML의 클래스 다이어그램과 시퀀스 다이어그램을 작성한다.

4. 3. 위키 및 협업 도구

Graphviz는 다양한 위키 및 협업 도구에서 활용된다.

  • ArgoUML에서 argouml-graphviz라는 대체 UML 다이어그램 렌더링 도구로 사용된다.[4]
  • AsciiDoc은 Graphviz 구문을 다이어그램으로 포함할 수 있다.
  • Bison은 언어 시각화를 위해 문법을 dot으로 출력할 수 있다.[5]
  • Confluence는 텍스트 설명에서 다이어그램을 렌더링하는 Graphviz 플러그인을 제공한다.
  • ConnectedText는 Graphviz 플러그인을 제공한다.
  • Doxygen소스 코드의 클래스 계층 구조, 협업 및 호출 트리를 포함한 다이어그램 생성에 Graphviz를 사용한다.[6]
  • FreeCAD는 문서 내 객체 간의 종속성을 표시하기 위해 Graphviz를 사용한다.[7]
  • Gephi는 Graphviz 플러그인을 제공한다.
  • Gramps는 계보(가계도) 다이어그램을 생성하기 위해 Graphviz를 사용한다.
  • Graph-tool은 그래프 조작 및 시각화를 위한 파이썬 라이브러리이다.
  • OmniGraffle 버전 5 이상은 그래프 자동 배치를 위해 제한된 명령 집합과 함께 Graphviz 엔진을 사용한다.[8]
  • Org-mode는 DOT 소스 코드 블록으로 작업할 수 있다.[9]
  • PlantUML은 텍스트 설명에서 UML 다이어그램을 생성하기 위해 Graphviz를 사용한다.
  • Puppet은 Graphviz로 볼 수 있는 DOT 리소스 그래프를 생성할 수 있다.
  • Scribus는 렌더 프레임이라는 특수 프레임 유형에서 내부 편집기를 통해 그래프를 렌더링하기 위해 Graphviz를 사용할 수 있는 오픈 소스 DTP 프로그램이다.[10]
  • Sphinx는 문서에 그래프를 포함하기 위해 Graphviz를 사용하는 문서 생성기이다.
  • TOra는 GNU GPL 하에 제공되는 자유 소프트웨어 데이터베이스 개발 및 관리 GUI이다.
  • Trac 위키는 Graphviz 플러그인을 제공한다.[11]
  • Zim은 Graphviz dot 언어를 사용하여 페이지 내 다이어그램을 추가 및 편집할 수 있는 플러그인을 포함한다.[12]
  • lisp2dot는 LISP 프로그램을 DOT 언어로 변환하며, 유전자 프로그래밍에 이용을 목적으로 설계되었다.
  • DoxygenC++, Java, Python과 연계하여 Graphviz를 이용해 클래스 상속 관계 그림을 그린다.
  • GraphViz는 MediaWiki Graphviz 확장 기능이다.
  • [http://moinmoin.wikiwikiweb.de/ParserMarket/dot.py MoinMoin wiki GraphViz 확장]
  • [http://www.softwaresecretweapons.com/jspwiki/linguinemaps Linguine Maps Java API to Graphviz]
  • [http://www.umlgraph.org/ UMLGraph]는 선언적 기술로부터 UML 클래스 다이어그램 및 시퀀스 다이어그램을 작성한다.
  • [http://www.friendexplorer.net/ Friend Explorer]는 Graphviz와 페이스북 API를 사용하여 소셜 네트워크를 그린다.
  • OmniGraffle ([http://www.act2.com/products/omni/omni_graffle5/ 옴니그래플 5])은 Graphviz 기반 레이아웃 엔진을 탑재하여 관계도를 GUI 환경에서 작성할 수 있도록 돕는다.

4. 4. 기타 응용 프로그램


  • ArgoUML의 argouml-graphviz라고 불리는 대체 UML 다이어그램 렌더링.[4]
  • AsciiDoc은 다이어그램으로 Graphviz 구문을 포함할 수 있다.
  • Bison은 언어 시각화를 위해 문법을 dot으로 출력할 수 있다.[5]
  • Confluence는 텍스트 설명에서 다이어그램을 렌더링하는 Graphviz 플러그인을 가지고 있다.
  • ConnectedText는 Graphviz 플러그인을 가지고 있다.
  • Doxygen소스 코드의 클래스 계층 구조, 협업 및 호출 트리를 포함한 다이어그램을 생성하기 위해 Graphviz를 사용한다.[6]
  • FreeCAD는 문서의 객체 간의 종속성을 표시하기 위해 Graphviz를 사용한다.[7]
  • Gephi는 Graphviz 플러그인을 가지고 있다.
  • Gramps는 계보(가계도) 다이어그램을 만들기 위해 Graphviz를 사용한다.
  • Graph-tool은 그래프 조작 및 시각화를 위한 파이썬 라이브러리이다.
  • OmniGraffle 버전 5 이상은 그래프를 자동으로 배치하기 위해 제한된 명령 집합과 함께 Graphviz 엔진을 사용한다.[8]
  • Org-mode는 DOT 소스 코드 블록으로 작업할 수 있다.[9]
  • PlantUML은 텍스트 설명에서 UML 다이어그램을 생성하기 위해 Graphviz를 사용한다.
  • Puppet은 Graphviz로 볼 수 있는 DOT 리소스 그래프를 생성할 수 있다.
  • Scribus는 렌더 프레임이라고 하는 특수 프레임 유형에서 내부 편집기를 사용하여 그래프를 렌더링하기 위해 Graphviz를 사용할 수 있는 오픈 소스 DTP 프로그램이다.[10]
  • Sphinx는 문서에 그래프를 포함하기 위해 Graphviz를 사용할 수 있는 문서 생성기이다.
  • TOra는 GNU GPL 하에 제공되는 자유 소프트웨어 데이터베이스 개발 및 관리 GUI이다.
  • Trac 위키는 Graphviz 플러그인을 가지고 있다.[11]
  • Zim은 Graphviz dot 언어를 사용하여 페이지 내 다이어그램을 추가하고 편집할 수 있는 플러그인을 포함한다.[12]
  • lisp2dot - LISP 프로그램을 DOT 언어로 변환한다. 유전자 프로그래밍에서의 이용을 의도하여 설계되었다.
  • Doxygen - C++, Java, Python과 연계하여 Graphviz를 사용한 클래스의 상속 관계 그림을 그린다.
  • GraphViz - MediaWiki Graphviz 확장
  • [http://moinmoin.wikiwikiweb.de/ParserMarket/dot.py MoinMoin wiki GraphViz 확장]
  • [http://www.softwaresecretweapons.com/jspwiki/linguinemaps Linguine Maps Java API to Graphviz]
  • [http://www.umlgraph.org/ UMLGraph] 선언적 기술로부터 UML의 클래스 다이어그램과 시퀀스 다이어그램을 작성한다.
  • [http://www.friendexplorer.net/ Friend Explorer] Graphviz와 페이스북 API를 사용하여 소셜 네트워크를 그린다.
  • OmniGraffle ([http://www.act2.com/products/omni/omni_graffle5/ 옴니그래플 5]) Graphviz 기반의 레이아웃 엔진을 탑재하여 관계도를 GUI 환경에서 작성한다.

참조

[1] 웹사이트 Credits Graphviz https://graphviz.org[...]
[2] 간행물 Drawing graphs with dot AT&T Bell Laboratories, Murray Hill, New Jersey 1991-09
[3] 문서 The Lefty guide (“Editing Pictures with lefty”) http://graphviz.org/[...]
[4] 웹사이트 argouml-graphviz.tigris.org https://web.archive.[...] 2018-01-15
[5] 서적 The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation https://books.google[...] SIAM 2018-01-15
[6] 서적 Xcode 5 Start to Finish: iOS and OS X Development https://books.google[...] Addison-Wesley Professional 2018-01-15
[7] 웹사이트 Std DependencyGraph https://www.freecadw[...] 2018-07-18
[8] 웹사이트 OmniGraffle 7.6 Reference Manual for macOS – Opening and Importing Files in OmniGraffle https://support.omni[...]
[9] 웹사이트 Org tutorial on generating simple process diagrams using dot and tables https://orgmode.org/[...] 2018-01-15
[10] 서적 Scribus 1.3.5 Beginner's Guide https://books.google[...] Packt Publishing Ltd 2018-01-15
[11] 웹사이트 GraphvizPlugin https://trac-hacks.o[...] 2018-01-15
[12] 웹사이트 Zim – a desktop wiki: Diagram Editor http://zim-wiki.org/[...] 2018-01-15
[13] 문서 https://gitlab.com/g[...]
[14] 문서 http://www.graphviz.[...]
[15] 웹인용 Credits Graphviz http://graphviz.org/[...]
[16] 간행물 Drawing graphs with dot AT&T Bell Laboratories, Murray Hill, New Jersey 1991-09



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com