PlantUML은 UML 작성을 도와주는 오픈소스 툴입니다. StarUML, Eclipse의 AmaterasUML 등의 무료 UML도 있는데요. PlantUML은 GUI로 UML을 작성하지 않고, 간단한 언어로 객체간의 관계를 정의해주면 PlantUML이 UML을 생성합니다.
평소에 UML을 작성하지 않지만, 간단히 구조를 PT로 발표할 때 UML이 필요할 때가 있습니다. PlantUML은 웹에서도 UML을 작성할 수 있도록 지원하며, 로컬 프로그램도 매우 작아 설치가 쉽고 빠릅니다. 그렇기 때문에 간단한 작성방법만 숙지하면 빠르게 UML을 만들 수 있습니다. 또한, 마우스보다 키보드로만 UML을 작성하는 것이 편하다면 PlantUML을 한번 사용해보시길 권장합니다.
설치 방법
먼저, PlantUML은 PlantUML Online Server를 제공하며, 웹에서 UML을 만들 수 있습니다.
로컬에 설치하려면, 우분투에서는 아래와 같은 명령어로 간단히 설치할 수 있습니다.
$ sudo apt-get install plantuml
Windows 등에서는 jar 파일을 직접 받아서 사용할 수 있습니다.
PlantUML Download페이지에서 plantuml.jar
를 다운받아 아래와 같은 명령어로 사용할 수 있습니다.
$ java -jar plantuml.jar sequenceDiagram.txt
또한, 이클립스에서 플러그인처럼 설치할 수도 있습니다. 자세한 방법은 사이트를 참고해주세요.
지원하는 다이어그램 종류
지원하는 UML 다이어그램은 아래와 같습니다.
- 시퀀스 다이어그램
- 유즈케이스 다이어그램
- 클래스 다이어그램
- 액티비티 다이어그램
- 컴포넌트 다이어그램
- 상태 다이어그램
- 객체 다이어그램
- Deployment diagram
- Timing diagram
UML 작성 예제
간단한 UML들을 만들어보겠습니다.
시퀀스 다이어그램
uml.txt
라는 파일을 만들고 아래와 같은 코드를 입력합니다.
모든 UML 코드는 @startuml
로 시작하고, @enduml
로 끝납니다.
@startuml
Alice -> Bob: Authentication Request
Bob --> Alice: Authentication Response
Alice -> Bob: Another authentication Request
Alice <-- Bob: another authentication Response
@enduml
웹에서 입력하셨다면 submit
버튼을 눌르시면 UML이 생성됩니다. 로컬에 설치하셨다면 쉘에서 아래와 같은 명령어를 입력하면 텍스트 파일과 동일한 이름의 png 이미지가 생성됩니다.
$ plantuml uml.txt
# jar을 다운받으셨다면 아래처럼 입력하시면 됩니다
$ java -jar plantuml.jar uml.txt
생성된 이미지를 열어보면 아래처럼 보입니다. 위의 코드와 아래 UML을 비교해보면 코드가 UML로 어떻게 표현되는지 쉽게 알 수 있습니다.
더 많은 예제들은 PlantUML에서 확인할 수 있습니다.
언어에 대한 상세한 설명은 PlanUML에서 제공하는 PlantUML 한국어 가이드를 참고해주세요.
클래스 다이어그램
아래 코드는 클래스 다이어그램에 대한 예제입니다.
@startuml
Class11 <|.. Class12
Class13 --> Class14
Class15 ..> Class16
Class17 ..|> Class18
Class19 <--* Class20
@enduml
클래스 간의 관계 외에, 클래스 내부의 필드와 메소드도 모두 정의해줄 수 있습니다.
@startuml
class Student {
Name
}
Student "0..*" -- "1..*" Course
(Student, Course) . Enrollment
class Enrollment {
drop()
cancel()
}
@enduml
더 많은 예제들은 PlantUML에서 확인할 수 있습니다.
상태 다이어그램
상태 다이어그램에 대한 예제입니다.
@startuml
hide empty description
[*] --> State1
State1 --> [*]
State1 : this is a string
State1 : this is another string
State1 -> State2
State2 --> [*]
@enduml
더 많은 예제들은 PlantUML에서 확인할 수 있습니다.
정리
코드로 UML 생성을 도와주는 PlantUML에 대해서 알아보았습니다. 예제로 사용한 것보다 더 많은 다이어그램을 표현할 수 있습니다. 사용 방법이 간단하기 때문에 빠르고 쉽게 UML을 만들 수 있습니다. 또한 이클립스, Notepad++ 등 매우 많은 어플리케이션의 플러그인이 있습니다. 이런 플러그인을 이용하면 자신이 사용하는 툴에서도 쉽게 PlantUML을 사용할 수 있습니다. 이클립스의 경우 코드를 클래스 다이어그램으로 변경해주는 기능도 있습니다. 플러그인 종류들은 PlantUML Running에서 확인할 수 있습니다. 언어에 대한 자세한 설명은 PlantUML의 가이드 및 사이트를 확인해주세요.
Visual Studio Code에서 PlantUML 플러그인을 설치하면 코드 작성과 동시에 UML을 확인할 수 있습니다. 자세한 것은 VSCode - PlantUML 플러그인 설치 및 사용 방법을 참고해주세요.
참고
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - pip와 requirements.txt로 패키지 관리
- 유튜브 쇼츠(Shorts) 자막 끄기/켜기
- SOLID 원칙, 객체지향 설계 5가지 원칙
- Ubuntu 20.04 - Nginx로 React를 배포하는 방법
- 애드센스 '구글 검색 기능' 블로그에 추가
- 트위터 이메일 안오게, 알림 끄기
- 인스타그램 동영상, 사진 저장 방법
- Git 설치 방법 (Ubuntu, Windows)
- Python pip 설치 (Ubuntu / Windows)
- 마우스 우클릭 복사 방지 해제 방법 (크롬)
- Python 에러 해결, 'conda' 용어가 cmdlet, 함수, 스크립트 ... 인식되지 않습니다.
- Python 에러 해결, AttributeError: module 'jwt' has no attribute 'encode'
- Atom - 코드 자동 정렬
- Sublime Text - 코드 자동 정렬, 단축키 설정
- VSCode에서 탭 간격 설정 (Tab to 4 spaces)
- Visual Studio Code에서 코드 자동 정렬
- 구글 검색 기록 삭제, 자동 저장 끄기 (PC, 모바일)
- 안드로이드 개발자 옵션 활성화, USB 디버깅 켜기
- 유튜브 채널 차단, 해제 방법 (PC, 모바일)
- 유튜브 미리보기 자동재생 끄기 (자동 소리 끄기/켜기)
- PC에서 유튜브 모바일 버전(m.youtube.com)으로 보기
- 모바일에서 유튜브 PC버전으로 보기
- 유튜브 시간 링크 만들기, 댓글에 시간 태그 입력하기
- 유튜브 스크립트 함께 보기, 자막 추출 방법
- 유튜브 알고리즘 초기화, 검색 기록과 시청 기록 삭제
- 유튜브 '싫어요' 숫자 다시 보이게 하기
- 구글 크롬, 방금 닫은 탭 다시 열기
- Maven으로 Java프로젝트 build하는 방법
- node.js, npm 버전 확인 방법 (터미널, cmd 명령어)
- GitLab - 'pre-receive hook declined' 에러 해결
- Javacript Heap Out Of Memory 문제 해결
- SSH key 생성하고 GitHub에 등록
- GMT, UTC의 차이점
- Linux(Ubuntu)에 Adobe Photoshop, Illustrator 설치하는 방법