TopicClipping

UML 이란?

이상봉 2022. 10. 13. 10:11

UML(Unified Modeling Language)

프로그램의 설계를 그림으로 표현하는 것으로 객체지향 언어와 밀접한 관련이 있어서 객체지향 모델링 언어 라고도 불린다.

단, UML은 모델링 언어일뿐 프로그래밍 언어가 아니고 방법론 또한 아니다.

건물을 짓기 전 청사진을 그리는것 처럼 소프트웨어 시스템을 구축하기전에 모델을 설계하는것이 필수인데, 이때 복잡한 설계상황을 가독성이 좋은 시각화 모델링을 할 수 있도록 돕는것이 UML의 가장 큰 역활이다.

한마디로 UML은 분석하고, 디자인하고, 프로그래밍하는 3단계 과정이다.

  1. OOA : Object Oriented Analysis
    • 서비스가 무슨 작업을 해야하는지
  2. OOD : Object Oriented Design
    • 어떻게 그 작업이 수행되는지
  3. OOP : Object Oriented Programming
    • 이 모든것을 구현하는지

UML의 다이어그램은 구성요소간의 형태를 표현하기 위한 `구조적 다이어그램` 과 구성요소가 어떤 행위를 하는지 표현하기위한 `행위 다이어그램`으로 나눌 수 있다.

  • 구조적 다이어그램은 클래스다이어그램, 객체다이어그램, 컴포넌트 다이어그램 등이 있다.
  • 행위 다이어그램은 시퀀스 다이어그램, 유케이스 다이어그램 등이 있다.

 

 

클래스 다이어그램

가장 일반적으로 사용되는 클래스다이어그램의 예시다.

시스템의 구조를 나타내며 클래스끼리 연결시켜 그 내부에 변수,데이터 타입함수를 정의할 수 있으며 한눈에 보기에도 편하다.

 

 

시퀀스 다이어그램

이 시퀀스 다이어그램은 Batch 인스턴스에서 DB로 사진의 아이디값을 전달하면 DB에서 해당 아이디를가진 사진을 return 해주는 흐름을 보여준다.

 

PlantUML

PlantUML은 텍스트로 UML 다이어그램을 생성하는 오픈소스 프로젝트다.

PlantUML Docs

PlantUML GitHub

특이한 점은 UML 외에도 JSON data, 네트워크 다이어그램, Archimate diagram 등의 여러가지 다이어그램을 지원한다.

PlantUML로 시퀀스다이어그램을 그린 예시이다.

 

 

Mermaid

마크다운 문법을 사용해서 UML을 그릴 수 있는 자바스크립트 기반의 라이브러리다. (IDE에서 플러그인을 설치하면 mermaid를 바로 사용할 수 있다)

Mermaid

Mermaid 라이브에디터

플로우차트, 시퀀스다이어그램, 간트차트, 클래스다이그럼, User Journey diagram 를 사용가능하다.

mermaid를 이용해서 클래스다이어그램을 그리는 코드예시이며, 심지어 Notion 노트 앱에서 임배디드형식으로 입력이 가능하다.