PlantUML은 텍스트 기반의 도메인 특화 언어(DSL)를 이용해 UML(통합 모델링 언어) 다이어그램을 자동으로 생성하는 오픈 소스 소프트웨어이다. 주된 목적은 복잡한 그래픽 작업 없이도 순수 텍스트 파일만으로 시퀀스 다이어그램, 클래스 다이어그램, 유스케이스 다이어그램, 활동 다이어그램, 컴포넌트 다이어그램, 상태 다이어그램, 객체 다이어그램, 배포 다이어그램, 타이밍 다이어그램 등 다양한 UML 다이어그램을 작성하고 시각화하는 데 있다.
개요
- 개발자: 아노 로쉐(Arnaud Rocher) 등
- 최초 공개 시기: 2009년경
- 구현 언어: Java
- 라이선스: GNU GPL 버전 3(일부 상업용 라이선스 제공)
- 주요 출력 형식: PNG, SVG, LaTeX, PDF, ATX(ASCII), Graphviz DOT 등
기능 및 특징
- 텍스트 기반 DSL
- 단순한 문법으로 다이어그램을 정의한다. 예를 들어
@startuml과@enduml사이에Alice -> Bob: Hello와 같은 구문을 입력하면 시퀀스 다이어그램이 생성된다.
- 단순한 문법으로 다이어그램을 정의한다. 예를 들어
- 다양한 다이어그램 지원
- UML 표준에 포함된 대부분의 다이어그램 유형을 지원하며, 추가적으로 와이어프레임, 배경 이미지 위에 레이어링하는 기능도 제공한다.
- 외부 도구 연계
- 레이아웃 계산에 Graphviz를 활용한다. Graphviz가 설치되어 있으면 복잡한 관계를 자동 배치할 수 있다.
- 플랫폼 독립성
- Java 기반이므로 Windows, macOS, Linux 등 주요 운영체제에서 동일하게 실행된다.
- 통합 및 확장성
- 명령행 인터페이스(CLI), Maven/Gradle/Ant 플러그인, Docker 이미지 등 다양한 형태로 제공된다.
- Eclipse, IntelliJ IDEA, Visual Studio Code, Atom, Sublime Text 등 주요 IDE와 플러그인 형태로 연동 가능하며, Markdown, Asciidoctor, Jupyter Notebook 등에서도 직접 삽입해 사용할 수 있다.
- 온라인 서비스
- 공식 웹사이트(plantuml.com)에서는 서버 기반 렌더링 API를 제공한다. 사용자는 HTTP 요청을 통해 텍스트를 전송하고 이미지 결과를 받아볼 수 있다.
사용 사례
- 소프트웨어 설계 문서화
- 개발 과정에서의 빠른 프로토타이핑
- 기술 블로그나 교육 자료에 삽입되는 다이어그램 자동 생성
- CI/CD 파이프라인에서 설계 문서의 자동 업데이트
연혁 (주요 이정표)
| 연도 | 내용 |
|---|---|
| 2009 | 최초 공개 (버전 1.0) |
| 2012 | Graphviz 의존성을 명시적으로 도입, 레이아웃 품질 향상 |
| 2014 | Maven 플러그인 공식 배포 |
| 2016 | Docker 이미지 제공 시작 |
| 2020 | SVG 및 LaTeX 출력 최적화 |
| 2022 | GPLv3 외에 상업용 라이선스 모델 도입 (기업용 지원) |
제한 및 고려사항
- 다이어그램 복잡도가 높아질 경우 렌더링 시간이 증가할 수 있다.
- GPLv3 라이선스 하에 배포되는 경우, 파생 제품에 동일 라이선스를 적용해야 한다.
- 일부 고급 UML 기능(예: 프로파일, 메타모델 확장)은 기본 DSL만으로는 표현이 제한될 수 있다.
어원·명명
‘PlantUML’이라는 명칭은 “Plant(식재하다, 심다)”와 “UML(통합 모델링 언어)”의 합성어로 추정된다. 텍스트로 정의된 다이어그램을 “심어”(plant) 그래픽 형태로 “성장”시킨다는 의미를 내포하고 있는 것으로 해석된다. 공식적인 어원 설명이 공개된 바는 없으나, 위와 같은 해석이 일반적으로 받아들여진다.
참고 문헌 및 외부 링크
- 공식 웹사이트: https://plantuml.com
- GitHub 저장소: https://github.com/plantuml/plantuml
- 라이선스 전문: https://www.gnu.org/licenses/gpl-3.0.html
(본 내용은 공개된 공식 자료와 일반적으로 검증 가능한 정보를 기반으로 작성되었으며, 확인되지 않은 추측은 포함되지 않는다.)