레이블이 plantuml인 게시물을 표시합니다. 모든 게시물 표시
레이블이 plantuml인 게시물을 표시합니다. 모든 게시물 표시

2017년 11월 24일 금요일

Plantuml의 설치와 사용법

차례


시작하며….

지난 번에 UML과 UML을 그릴 수 있는 도구인 Plantuml에 대해 간단하게 알아보았지요.

이번에는 그 Plantuml를 어떻게 사용하는지에 대해 알아보는 시간을 가지려고 합니다.

그 전에 무얼 할 수 있는지에 대해서 조금 이야기한 다음에 하겠습니다.

Plantuml로 할 수 있는 것들

지난 번에도 말씀드렸듯 UML의 여러 Diagram을 을 그릴 수 있는 Tool이에요.

현재 그릴 수 있는 Diagram의 종류는 다음과 같아요.

  • Sequence Diagram
  • Usecase Diagram
  • Class Diagram
  • Activity Diagram
  • Component Diagram
  • State Diagram
  • Object Diagram
  • Deployment Diagram
  • Timing Diagram


이렇다고 홈페이지(http://plantuml.com)에 나와 있어요.

그 외에도 non-UML Diagram도 지원하고 있는데 그건 직접 확인해 보셔도 될 거 같아요.

현재도 새로운 기능이 계속 나오는 중이니 직접 확인하시는 게 더 편할 거 같아서요.

저런 용도로 사용된다고 알아 두고 그럼 이제 본격적으로 어떻게 해야 하는지를 알려 드릴게요.

설치는 사용법을 보고 알려드릴게요!!

Diagram 그리는 방법과 확인 방법

보통 UML을 그리는 Tool은 이것저것 복잡하지요.

아래 그림은 StarUML의 ScreenShot 중 일부입니다.

StarUML ScreenShot

출처 : https://sourceforge.net/projects/staruml/#screenshots


하지만 이것과 다르게 Plantuml을 그리기 위해서는 메모장과 Chrome 같은 웹 브라우저만 있으면 돼요.

그러니 우선 메모장 같은 프로그램을 실행해 주세요.
(우리는 이미 Vim에 대한 기본을 배웠으니.. Vim을 실행해 주면 좋겠지요??^^)

사실 초반에는 메모장도 필요가 없지만, 저장을 하고 싶은 분들이 있을 수 있으니 이렇게 진행하도록 하겠습니다.

@startuml
엄마 -> 아들 : 일어나()
엄마 <-- 아들 : 알았어()
@enduml

위처럼 적어 보시겠어요???

“엄마_아들_Sequence_Diagram.puml”로 저장을 하시고 크롬을 실행시켜 보세요.

https://www.planttext.com

위의 사이트를 들어가시면 아래와 같은 화면을 볼 수 있지요.

planttext

오른쪽에 메모장처럼 글을 적을 수 있는 부분이 있어요.

그 곳에 방금 적었던 내용을 복사해서 붙여 넣기 해 주세요.

그리고 하단의 Refresh 를 클릭하시면….

아래 처럼 그림이 나오는 것을 확인할 수 있어요.^^

planttext ex

PNG라고 적혀 있는 부분을 누르거나 이미지의 우클릭을 하면 Link를 얻을 수 있어요.

물론 이미지를 내려받을 수도 있고요.

그러면 필요한 곳에 업데이트하시면 되는 거고요.

어렵지 않지요???

PC의 설치 방법

사이트를 접속해서 사용하는 건 쉬운 방법이지만 혹시나 본인 PC에 직접 설정을 하고 싶으신 분들이 있을지 몰라서 사용법을 알려 드릴게요.

만약에 설치하기 싫다면 이 부분은 넘기시면 됩니다.

그리고 plantuml 사이트에 들어가면 모두 적혀 있는 내용이기도 합니다.

그것이 귀찮을 수 있으니 적어 드리는 거고요.

Graphviz 설치

Sequence Diagram이나 Activity Diagram은 필요가 없다지만 그 외의 Diagram을 그리기 위해서는 위의 툴이 반드시 필요하더라고요.

http://www.graphviz.org/Download.php

위에서 다운을 받아서 설치하시면 됩니다.

palntuml.jar 다운로드 및 설정

아래 링크를 통해 내려받을 수 있습니다.

http://sourceforge.net/projects/plantuml/files/plantuml.jar/download

위의 파일을 받아서 아무 폴더에 저장해 주세요.

저 같은 경우는 “C:\UserPrograms” 라는 폴더에 복사해 두었다고 가정할게요.

그리고 아래와 같이 Path에 대한 환경변수 설정을 해 주세요.
(점점 복잡해지네요…. 그러니 싫으신 분들은 패스하시면 돼요.ㅎㅎ)

경로 환경설정

그리고 아래와 같은 내용을 입력하여 bat 파일을 만들어서 같은 폴더(“C:\UserPrograms”)에 저장해주세요.

파일의 이름은 runPlantuml.bat가 좋겠네요.

java -jar C:\UserPrograms\plantuml.jar -gui .\

그리고 puml이 있는 폴더에 명령어 창에 runPlantuml.bat라고 입력세요.

runPlantuml.bat 실행

그러면 GUI 프로그램이 동작하면서 자동으로 png 파일이 생성되는 걸 확인하실 수 있을 거예요.

아래 그림처럼요.

png 파일 생성

이거 외에도 그림을 그리는 방법이 매우 많아요.

사이트 가면 확인이 가능한데…

우선 제가 봤을 때는 이렇게 하는 게 가장 편한 거 같아서 소개해 드립니다.

당연히 인터넷으로 접속해서 하는 게 가장 편하고요.

고급 사용

http://www.planttext.com을 통해 png 파일을 하나 만들어 봐요.

그리고 이미지 링크를 얻어 보겠습니다.

https://www.planttext.com/plantuml/img/SyfFKj2rKqZCoKnEjLB8ICt9oGS0

위와 같은 링크의 그림은 아래와 같아요.

그런데 저 링크의 뒷부분은 무엇일까요????(그림의 빨간색 상자 부분)

뒤 부분은 script가 압축된 형태라고 하네요.

그래서 저 뒷부분만 알고 있으면 원본 Script로 얻을 수 있다고 하네요.

만약에 글을 개시할 때 link 형태로 이미지를 넣어 두었어요.

그런데 나중에 이 부분이 잘못된 것을 알게 되었죠.

그럼 어떻게 수정을 할 수 있을까요????

위에 다 이야기는 했지만…

링크된 뒤쪽만 있으면 가능해요.^^

뒷 부분을 때서 아래의 링크 뒤에 넣어 보세요.

http://www.planttext.com/?text=SyfFKj2rKqZCoKnEjLB8ICt9oGS0

그럼 원본 글이 나오게 되지요.

그럼 언제 어디서든 링크 주소만 알면 해당 글을 수정해서 다시 링크를 걸 수 있겠지요.

마치며….

생각보다 쉽게 UML이 그려지는 것을 확인하셨죠??

그리고 인터넷만 되면 사용법은 더 쉽고요.

물론 다음에 배울 내용이지만 여러 종류의 Diagram이 존재하여서 각각의 Diagram을 그리는 문법에 대해 자꾸 잊게 되기도 해요.

하지만 사용법의 문서가 너무 잘 정리 되어 있으니 사용법에 대해서는 문서를 켜 놓고 문서를 작성하면 되니까 어렵지는 않을 거예요.

기본적인 사용법에 대해서는 저도 이야기 드릴게요.

다음에 또 뵙겠습니다.

감사합니다.

2017년 11월 19일 일요일

UML과 Plantuml

차례


시작하며….

개발을 배우게 되면 자연스럽게 UML이란 것도 배우거나 알게 됩니다.

개발을 할 때 보통 준비 작업 없이 머릿속의 있는 것을 Code로 변환하지요.

물론 간단한 것들은 그렇게 해도 큰 문제 없이 진행 가능하지요.

하지만 다수가 함께하려면 서로의 의견을 그림으로 설명을 해야 하죠.

또한 호흡이 긴 프로젝트라고 하면 자신을 위해서라도 자료를 만들어 둘 필요가 있어요.

왜냐면… 왜 그렇게 구현을 했는지 나중에 왜 그렇게 했는지 잊어 버리게 돼요..ㅎㅎㅎㅎ
(저만 그럴 수도 있지만요..;;;))

그럴 때 UML이라는 것이 도움되곤 합니다.

사실 필요성을 느끼지 못한다면 안 만들어도 되지요.

하지만 반대로 필요성을 느낀다면 그만큼 강력한 도구이기도 하고요.

그럼 UML을 그리기 위한 도구가 당연히 필요할 텐데요.

제가 UML이란 무언가를 간략하게 보여 드리고..

지금 사용하고 있는 Tool인 Plantuml에 대해 설명해 드리겠습니다.

UML


1. UML

Unified Modeling Language의 단축형으로 단순히 해석을 하게 되면 통합 모델링 언어쯤 되겠네요.

좀더 자세히 들어가면 소프트웨어 엔지리어링 분야에서 개발이나 모델링을 할 때 사용하는 언어라고 하더라고요.

근데 어려운 말은 다 지우고 하나만 기억하시죠.

언어!!

언어란 누군가에게 자기 생각을 전달하는 도구 아닌가요?

그러니 이 UML 역시 개발 시에 어떻게 구조를 잡을 것이고 어떤 순서로 진행되는지를 상대방에게 알려주는 도구라고 보시면 될 거 같아요.

물론 그 상대방이 미래의 자신이 될 수도 있고요.

소프트웨어 프로그램을 나타낼 때 크게 두 가지로 나눌 수 있다고 하네요.

구조와 행동으로요.

그래서 UML도 크게 Structure diagrams와 Behavior diagrams로 나누어지는데 대표적인 Diagram을 적어 볼게요.
(여기서 대표적이라고 하는 건 제가 사용한다는 거예요.^^ 굉장히 주관적이라는 거죠.ㅎㅎ)

1) Structure Diagrams

  • Class Diagram : Class와 Interface의 상관도


Component Diagram, Object Diagram도 있지만..

제가 잘 안 쓰게 되더라고요.

그리고 서로 간의 차이도 잘 모르겠기도 했고요.

더 중요한 건…. 다른 사람들도 그 차이를 잘 몰라요…ㅎㅎㅎ

그러니 특별히 구분 질 필요가 없어요.

아까도 이야기 했지만 UML은 언어예요.

본인이 아무리 고급스러운 사자성어를 쓰고 어려운 영어 단어를 쓴다고 하더라도 상대방이 모르면 우리는 서로의 생각을 이해 할 수 없잖아요.

그러니 다른 사람도 알만한 언어로 이야기 하자고요.

2) Behavior Diagrams

  • Sequence Diagram : Object 간의 함수 Call의 흐름
  • Activity Diagram : 순서도
  • State Diagram : 상태에 변화도
  • Use Case Diagram : 시스템이 수행하는 업무들


정의를 내리려고 하지만 잘 안되네요.

예제를 보여 주면서 하는 게 좋을 텐데 다음 장에 UML 도구로 간단하게 보여 드리도록 할게요.

이런 Diagram에서는 각자 사용하는 문법이 조금씩 달라요.

또한 시간에 따라 언어가 바뀌었듯 UML도 버전이 업이 되면서 새롭거나 사라진 문법들도 있고요.

여기서는 역사 이야기는 하지 않을게요.^^

그럼 저런 UML을 잘 만들어 줄 수 있는 툴이 뭐가 있는지 같이 볼게요.

Plantuml


2. UML 작성 툴 : Plantuml

현재는 UML을 작성 할 때 Plantuml만 사용하고 있어요.

그 만큼 만족한다는 거겠죠.

그렇다고 하면 저는 이전에 어떤 툴을 사용하였고 Plantuml이 무언지 아주 간단하게 알려 드릴게요.

1) 이전 Tool들의 단점

혹시 StarUML이나 Visio 같은 프로그램을 들어 보셨나요??

StarUML은 대표적인 무료 툴이었고(최근에 홈페이지 들어가니 유료로 바뀌었더라고요.)
(과거의 무료 버전은 http://staruml.sourceforge.net/v1/ 에서 받을 수 있는거 같아요.)

Visio는 MS의 툴인데 잘 쓰는 분들은 기가 막히게 사용하시더라고요.

그렇지만 저에게는 둘 다 큰 장점을 느낄 수 없었어요.

회사 입사 초반에는 StarUML을 사용하였습니다.

해당 툴로 Diagram 그리는 건 큰 문제 없었지만 몇몇 가지가 너무 힘들었어요.

  • 수정(Edit)
  • 재사용성
  • Viewer의 부재


수정

예를 들어 A와 B Object의 Sequence Diagram을 완벽히 그려 놨어요.

그런데 A와 B 사이에 C라는 Object가 생겼어요.

그럼 지금까지 A와 B 사이의 함수 Call들을 모두 이동을 해줘야 해요.

아시는 분은 아시겠지만 그런 추가 사항들이 나중에는 점점 더 많아진다는 거죠..;;;

그 쯤 되면 이제 개발을 하는 것이 아니라 UML 만들다가 시간이 다 가게 돼요.

그러다 보니 UML은 개발이 완료된 시점에서야 그리게 되는 거죠.

개발 다 했다고 하면 쉬어야 하는데 숙제가 남은 느낌이 되서 오히려 귀찮은 작업이 되는 악순환에 빠지고 안 하게 되는 문제가 있어요.

재사용성

수정 하기가 어려우니 비슷한 Diagram을 만들려고 하더라도 이전에 만들었던 UML은 거의 재사용이 안 되죠.

매번 신규로 만들어야 한다고 보시면 되죠.

그럼 위와 같은 문제가 또 발생하게 되는 거죠.

Viewer의 부재

Visio의 경우는 모르겠지만 제가 사용하던 당시의 StarUML은 Viewer가 없었어요.

그러니 만들어 두더라도 다른 PC에서는 보기가 어려웠죠.

제가 StarUML을 설치를 다시 해야 했으니까요.

처음에는 팀원 분들 모두 설치하게 하려고 했지만….

거의 막내였던 저의 힘은 한없이 초라하니…ㅎㅎ


물론 지금의 StarUML이 위의 단점들이 모두 해결 되었을 수도 있으니 원하시는 분들은 다운 받아 보셔서 사용해 보는 것도 좋을거 같아요.

하지만 그 당시에는 그냥 혼자만 가지고 놀다가 StarUML을 접게 되었습니다.

그렇지만 UML에 목마름은 지속 되었고 저에게 적합한 툴을 찾게 되었어요.

2) PlantUML

우선 주소는 아래와 같아요.

http://plantuml.com/

이름이 굉장히 마음에 들었어요.

UML 공장이라고 보면 되잖아요.^^

간단하게 설명을 하면 Script 방식으로 UML을 작성하고 Generater를 통해 그림 형태로 만드는 거예요.

예를 들어…

@startuml
Bob->Alice : hello
@enduml

라고 적기만 하면 아래와 같은 그림이 나오게 되죠.


더 자세한 문법은 사이트에서 확인할 수 있어요.

그리고 저 역시 다음 장에 사용법에 대해 알려 드리겠습니다.

이 Plantuml의 장점은 위에서 말한 단점을 모두 해결했다는 거예요.

수정도 쉽고 재사용도 쉽고 많은 Generater를 통해 쉽게 변환할 수 있죠.

그리고 상대방에게는 png 형태로 전달하면 되니 특별히 Viewer를 설치할 필요가 없어요.^^

물론 단점도 있어요.

스크립트 대로 그림을 그리는건데 어쩔 때는 제가 원하는 형태가 나오지는 않아요..;;

또한 몇몇가지의 제한 사항들도 있고요.

그래도 장점이 너무 크니 아직도 사용하는 중이겠죠?? ㅎㅎ

마치며….

Plantuml을 사용하면서 UML에 대한 장점들을 많이 느끼고 있었어요.

그렇지만 주변 분들 중에는 UML에 대한 관심을 가지지 않으시는 분들이 많기도 하고요.

그래서 이렇게 글을 쓰는거고요.^^

다음 강좌에서 Diagram을 그리면서 Plantuml에 더 자세히 알아보도록 하겠습니다~!