Unified Modeling Language Diagram
UML이란?
프로그램 개발을 하다 보면 개발자 간의 소통의 수단으로 사용되는 것 중 하나가 UML Diagram이다. UML은 Unified Modeling Language의 줄임말로 한국말로는 통합 모델링 언어라고 부른다. Language라는 의미가 포함되었다는 것은 개발자 간의 생각을 공유하기 위한 수단으로 이용되는 것이라는 의미를 내포하고 있다. 그러니 UML 다이어그램은 개발한 코드에 대해서 생각의 공유가 쉽게 이루어지기 위한 시각적인 언어인 셈이다.
UML Diagram의 종류와 표준
UML Diagram은 정말 다양한 종류가 존재한다. 수많은 종류와 방법 중에서 여러분의 팀이나 동료 개발자와 원하는 방식을 채택해서 사용하면 된다. UML 다이어그램은 개발자 간의 원활한 소통을 목적으로 사용되기 때문에 단일화된 방식으로 사용하지 않는다. 개발하는 상황이나 사람 간의 스타일에 따라서 원하는 방법대로 사용하면 되는 것이다. 여기서 중요한 점은 원하는 스타일대로 다이어그램을 사용하되 기본 규칙은 지켜야 한다. UML의 우선적 목적은 개발자 간의 상호 소통이다. 표준 방식을 고려하지 않고 자기만의 방식으로 다이어그램을 구성한다면 당연히 다른 사람은 당신의 다이어그램을 이해할 수가 없다. 그렇기에 UML Diagram을 사용할 경우 개발자 간의 어떤 방식으로 다이어그램을 구성할 것인지에 대해서 이야기를 나눠서 공통된 방식으로 만들어야 한다.
UML DIagram
UML 다이어그램은 다양한 프로그래밍 과정에서 사용된다. 그 중에서도 UML 다이어그램은 객체 모델링이나 클래스 모델링을 하는 프로그램 개발에서 많이 사용되는 다이어그램이다. UML 다이어그램 특성상 박스와 선을 통해 관계를 구성하고 박스 안에 특정 Methods나 Functions를 강조하여 작성할 수 있다. 일반적으로는 variables(변수)와 Medthods를 작성하고 각 변수나 매서드가 private인지 public인지를 표기하여 코드 이해를 쉽게 할 수 있도록 도와준다.
아래는 필자가 예전에 학부 수업때 만든 Online Shopping System Test Example Code로 이클립스에서 만들어진 UML Diagram 예제이다.
Eclipse UML Diagram
UML 다이어그램을 그릴 수 있는 다양한 사이트와 툴이 있다. 그렇기에 직접 그리지 않고도 툴을 이용해서 쉽게 UML Diagram을 그리고 구성할 수 있다. 예를 들어 Lucid Digarm Tool도 많이 사용하는 UML Diagram Tool 중 하나이다.
https://whoishoo.tistory.com/108
루시드의 경우 유료버전도 있지만 무료로 사용할 수도 있기 때문에 UML 다이어그램을 연습해보기 괜찮다.
또 다른 툴은 이클립스에서 바로 사용하는 플러그인 툴이다. 위의 예제 그림처럼 이클립스에서 바로 사용할 수 있어 많이 사용되는 툴이다. 시각적으로 이쁘거나 보기 좋지는 않지만 Standard 하다. 정말 필요한 다이어그램 요소를 포함하고 있어서 사용하기에 충분히 용이하다. 다른 한편으로는 심플해서 이클립스 UML을 선호하는 개발자들도 많은 편이다. 무엇보다 좋은 점은 무료라는 점도 있지만 코드를 넣으면 자동으로 UML 다이어그램이 만들어진다는 것이다. 일일이 하나하나 그릴 필요 없이 프로그램 코드를 툴 안에 넣으면 자동으로 만들어진다. 필자의 경우도 디자인에 젬병이고 이쁜 거보다는 기능적인 거와 심플한 걸 좋아하는 성격인지라 이클립스 다이어그램 툴로 충분히 만족스럽게 사용하고 있다.
다음 포스트에서는 이클립스에 UML 다이어그램 플러그인을 설치하는 방법을 알아보도록 하겠다.
'Java' 카테고리의 다른 글
[Java] 이클립스 UML 설치 방법, Eclipse UML, ObjectAid (0) | 2021.12.05 |
---|---|
[Java] 웹사이트 만들기 #00 - Prologue (0) | 2021.09.04 |
[Java] 자바 쓰레드와 멀티 쓰레드(Java Thread and Multithreading) (0) | 2021.08.24 |
[Java] Servlet과 JSP란? -#02 (0) | 2021.05.26 |
[Java] Servlet 과 JSP란? - #01 (0) | 2021.05.24 |
댓글