다이어그램을 그릴 수 있는 툴들은 많다. 가장 쉽게 구할 수 있는(?) 파워포인트부터 전통을 자랑하는 Visio, IBM Rational Software 같은 끝판왕급 툴들 그리고 각종 개발툴의 플러그인 형태의 소프트웨어까지.
그런데 갑자기 텍스트 기반 다이어그램 툴이라니.
하지만 개발자가 작성하는 것은 결국 텍스트 파일아닌가. 그렇다면 다이어그램을 텍스트로 작성한다는게 그렇게 이상하지는 않은데…
2009년에 Arnaud Roques라는 분이 Java로 개발해서 발표한 오픈소스 다이어그램 그리기 툴이다.
‘23년 말 현재 지원하는 다이어그램들은 다음과 같다.
이름은 PlantUML이지만 UML이외의 다이어그램을 더 많이 지원한다.
PlantUML로 최고의 속도감을 느낄 수 있는 다이어그램은 시퀀스 다이어그램이다. PPT로 작업한 시퀀스 다이어그램에 스윔레인을 추가해본 적이 있는가. 이 작업이 얼마나 개발자를 좌절시키는지 해본 사람은 안다.
이 작업을 PlantUML로 어떻게 하는지 동영상으로 확인해보자.
재빠르게 문법을 둘러보자.
@startuml
James -> Alice: Hello!
Alice -> James : Hi?
James -> Roger : Hi Roger?
Roger -> James : Good James!
Roger -> James : How's Merry?
James -> Roger : Merry is fine.
Roger -> Alice : How are you Alice?
Alice -> Roger : I'm fine. Please call Merry
Roger -> Alice : No prob.
Roger -> Merry : Are you there?
Merry -> Roger : Honey? Can I help you?
@enduml
설명이 필요없을만큼 직관적이다. 하지만 다른 다이어그램들은 시퀀스 다이어그램만큼 편리하지는 않은데 렌더링 후에 항목을 추가하다보면 레이아웃이 확 바뀌는 문제가 있기 때문이다. 이것은 나름 PlantUML이 사용자를 대신하여 최선을 다해 레이아웃을 맞추는 과정에서 발생하는 문제라 사용자가 특정을 잘 알고 사용해야 한다. 하지만 이 기능이 단점이라고만 할 수 없는 것이 레이아웃을 작성자가 다시 맞추는 것도 보통 작업이 아니기 때문이다. PlantUML은 이 기능을 Smart Layout Algorithms라고 부르고 있다.
그 외에도 많은 툴들이 PlantUML을 지원한다. 목록은 여기에서 확인 할 수 있다