글을 쓰는 목적
무료 UML 툴인 StartUML을 자주 사용했는데 몇가지 불편한 점이 있었다.
1. 새로 문서 만들기시 이전 문서가 열리는 버그가 있었어서 매번 열때마다 프로젝트 열기가 불편했다.
2. UML 작성 후 UML 구조를 고치려고 하면 그림을 그려서 움직이는 것이라 유지보수가 잘 안되는 문제가 있었다.
그래서 대체할 UML 툴을 찾던 도중 텍스트 편집기를 지원하는 PlantUML과 UMLet 을 찾았는데 그중에 UMLet 은 Visual stuido code를 통해 사용할 수 있기 때문에 제외했고 PlantUML은 웹 서버에서 테스트 할 수 있어서 Plant UML을 사용해 보기로 하였다.
작업 환경
Visual code Plant UML extension
https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml
PlantUML - Visual Studio Marketplace
Extension for Visual Studio Code - Rich PlantUML support for Visual Studio Code.
marketplace.visualstudio.com
PlantUML 서버
https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000
사용 후기
장점
1. 스크립트를 작성하면 자동으로 UML을 그려줘서 편하다
2. 텍스트 스크립트로 테스트하고 편집하기 때문에 유지보수 하기 편하다.
단점
1. Plant UML 스크립트 언어를 공부해야한다.
2. Editor를 지원하지 않아 저장과 로드하기가 불편하다. (서버 에디터와 텍스트 변환 툴 제공,Eclipse 지원 기능이 있는 것 같은데 테스트 해보지 않음)
3. Sequence Diagram 그리기가 불편하다. StartUML은 실행 기간이 자동으로 그려졌는데 PlantUML은 스크립트로 관리해야한다. 그리고 리턴문이 생각보다 잘 작동 안하는 것 같다. Sequence Diagram은 복잡도가 높아지면 StarUML보다 더 사용하기 불편할 수도 있을 것 같다.
사용법 요약
Activity Diagram
Plant UML을 Flowchart를 제공하지 않는다. Activity Diagram으로 대체해서 작성해야할 듯 하다.
Type | 사용법 | 설명 |
start, stop | Start Stop |
시작, 종료 |
aciton | :Hello World; | aciton |
if | if (condition) then (yes) : test esle (no) : test2 endif |
조건문 |
loop | repeat stop |
루프 |
@startuml
start
:적에게 다가 간다;
if (적당한 거리에 있는가?) then (yes)
: "공격";
else (no)
endif
stop
@enduml
Class Diagram
Type | 사용법 | 설명 |
상속 | <|-, -|> | 상속 |
구성 | *--, --* | 구성 |
참조 | <.., ..> | 참조 |
Type | 사용법 | 설명 |
Class | class TestClass {} | 클래스 |
Array | Object[] elementData | 배열 |
Function | Size() | 함수 |
Variable | flightNumber : Integer | 변수 |
@startuml
class Dummy {
String data
void methods()
}
class Flight {
flightNumber : Integer
departureTime : Date
}
Dummy ..> Flight
@enduml
Sequence Diagram
Type | 사용법 | 설명 |
호출 | Alice <- Bob : message 1 Bob -> Alice : message 1 |
호출 |
반환 | Alice <-- Bob : message 1 Bob --> Alice : message 1 |
반환 |
Type | 사용법 | 설명 |
조건 | alt successful case Bob -> Alice : Authentication Accepted else somd kind of failure else another type of failure end |
조건 |
@startuml
Alice -> Bob: Authentication Request
alt successful case
Bob -> Alice: Authentication Accepted
else some kind of failure
Bob -> Alice: Authentication Failure
group My own label
Alice -> Log : Log attack start
loop 1000 times
Alice -> Bob: DNS Attack
end
Alice -> Log : Log attack end
end
else Another type of failure
Bob -> Alice: Please repeat
end
@enduml
Plant UML 툴
Visual code 에서도 Plant UML 을 제공한다. Visual code는 자동으로 갱신해준다. uml.wsd로 저장하면 된다.
https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml
PlantUML - Visual Studio Marketplace
Extension for Visual Studio Code - Rich PlantUML support for Visual Studio Code.
marketplace.visualstudio.com
NotePade도 Plant UML extension이 있지만 자동 갱신을 해주지 않는다. 취향에 맞게 사용하면 될 것 같다.
참고
https://plantuml.com/ko/class-diagram
클래스 다이어그램 구문 및 기능
PlantUML 클래스 다이어그램 구문 : 당신은 정의 할 수 있습니다 인터페이스, 회원, 관계, 패키지, 제네릭, 음 ... 변경 글꼴과 색상도 가능하다.
plantuml.com
https://www.itworld.co.kr/news/130999
'MS 비주얼 스튜디오' vs. 'MS 비주얼 스튜디오 코드'··· 장·단점 비교와 선택 팁
필자는 지난 수십 년 동안 아침에 출근하면 먼저 마이크로소프트 비주얼 스튜디오(또는 그 전신인 비주얼 C++이나 비주얼 인터데브 중 하나)를 시작한 후 차를 내렸다.프로그램 시작 과정이 완료
www.itworld.co.kr
'개발' 카테고리의 다른 글
[FTP]LFTP 사용법 (0) | 2022.06.14 |
---|---|
Android KeyStore 정보 확인 (0) | 2022.03.18 |
MacBook에서 iPhone 또는 iPad 에 케이블 연결시 계속 "신뢰하겠습니까?"가 떠서 정상적으로 연결이 안되는 현상 수정 방법 (0) | 2021.08.23 |
Window에서 Redmine 설치방법 (1) | 2020.05.04 |