UML 다이어그램 종류 완벽하게 이해하기: UML 다이어그램 종류와 이해

UML 다이어그램 종류 완벽하게 이해하기: UML 다이어그램 종류와 이해
Photo by Christina @ wocintechchat.com / Unsplash

들어가며

비주얼이라는 말에서 알 수 있듯이, 좋은 시각화는 복잡한 아이디어나 프로세스를 이해하기 쉽게 만들어 줍니다. UML(Unified Modeling Language)은 이런 복잡성을 해결하기 위한 아름다운 도구입니다. 이 글에서는 UML의 다양한 다이어그램 종류를 깊게 이해하고, 각각 어떻게 적용해야 하는지 알아보겠습니다.

이 글은 uml-diagrams.org을 참고하여 작성된 글입니다.

구조 다이어그램

1. 클래스 다이어그램(Class Diagram)

클래스 다이어그램 예시

클래스 다이어그램은 객체 지향 프로그래밍에서 가장 기본적인 다이어그램 중 하나입니다. 이 다이어그램은 시스템의 주요 구성요소와 그 관계를 명확하게 보여줍니다. 클래스 다이어그램은 속성, 메소드, 그리고 클래스 간의 관계를 표현합니다.

💡
예를 들어, 쇼핑몰 시스템을 개발한다고 했을 때, '사용자', '상품', '주문' 등의 클래스와 이들이 어떻게 상호작용하는지를 표현할 수 있습니다.

2. 객체 다이어그램(Object Diagram)

객체 다이어그램 예시

객체 다이어그램은 클래스 다이어그램의 인스턴스 버전으로 볼 수 있습니다. 이 다이어그램은 시스템의 런타임 상황을 시각화하는 데 유용합니다.

💡
예를 들어, 로그인 프로세스에서 '사용자 객체'가 어떻게 '인증 객체'와 상호작용하는지를 보여주기 위해 사용됩니다.

3. 복합체 구조 다이어그램(Composite Structure Diagram)

복합체 구조 다이어그램 예시

이 다이어그램은 클래스나 컴포넌트가 런타임에 어떻게 협력하는지를 나타냅니다.

  • 분류기의 내부 구조 - 내부 구조 다이어그램
  • 포트를 통한 분류기와 환경과의 상호작용
  • 협업의 동작 - 협업 사용 다이어그램

이 유형의 다이어그램에서 "구조"라는 용어는 UML에서 상호 연결된 요소들의 구성으로 정의되며, 이는 실행 시간 인스턴스가 통신 링크를 통해 어떤 공통 목표를 달성하기 위해 협력한다는 것을 나타냅니다.

💡
복잡한 게임 엔진의 각 구성 요소가 어떻게 상호작용하는지 이해할 때 유용합니다.

4. 배포 다이어그램(Deployment Diagram)

배치 다이어그램 예시-1
배치 다이어그램 예시-2

배포 다이어그램은 소프트웨어 아티팩트를 배포 대상에 배포(배포)하는 시스템의 아키텍처를 보여주는 구조 다이어그램 입니다 .

아티팩트는 개발 프로세스의 결과인 물리적 세계의 구체적인 요소를 나타냅니다. 아티팩트의 예로는 실행 파일, 라이브러리, 아카이브, 데이터베이스 스키마, 구성 파일 등이 있습니다.

배포 대상은 일반적 으로 하드웨어 장치 또는 일부 소프트웨어 실행 환경인 노드 로 표시됩니다 . 노드는 통신 경로를 통해 연결되어 임의의 복잡성을 지닌 네트워크 시스템을 만들 수 있습니다.

💡
클라우드 기반 서비스의 인프라를 설계할 때 매우 유용합니다.

5. 컴포넌트 다이어그램(Component Diagram)

컴포넌트 다이어그램 예시

컴포넌트 다이어그램은 컴포넌트, 제공되는 및 필요한 인터페이스, 포트, 그리고 그들 사이의 관계를 보여줍니다. 이러한 유형의 다이어그램은 서비스 지향 아키텍처(SOA)를 가진 시스템을 설명하기 위해 컴포넌트 기반 개발(CBD)에서 사용됩니다.

컴포넌트 기반 개발은 이전에 구축된 컴포넌트를 재사용할 수 있으며 필요한 경우 다른 "동등한" 또는 "일치하는" 컴포넌트로 교체할 수 있다는 가정에 기반하고 있습니다.

컴포넌트를 구현하는 아티팩트는 예를 들어 기존 시스템을 업데이트하기 위해 독립적으로 배포되고 재배포될 수 있도록 의도되어 있습니다.

UML의 구성 요소는 다음을 나타낼 수 있습니다.

  • 논리적 컴포넌트(예: 비즈니스 컴포넌트, 프로세스 컴포넌트)
  • 물리적 컴포넌트(예: CORBA 컴포넌트, EJB 컴포넌트, COM+ 및 .NET 컴포넌트, WSDL 컴포넌트 등)

로 나타낼 수 있으며, 그것들을 구현하는 아티팩트와 그것들이 배포되고 실행되는 노드와 함께입니다. 특정 컴포넌트 기술 및 관련 하드웨어와 소프트웨어 환경을 위한 프로필이 컴포넌트를 기반으로 개발될 것으로 예상됩니다.

💡
마이크로서비스 아키텍처를 설계할 때 이 다이어그램이 자주 사용됩니다.

6. 패키지 다이어그램(Package Diagram)

패키지 다이어그램 예시

패키지 다이어그램은 설계된 시스템의 구조를 패키지 수준에서 보여주는 UML 구조 다이어그램 이다 . 일반적으로 패키지 다이어그램에는 package , packageable element , dependency , element import , package import , package merge 요소가 그려집니다 .

💡
대규모 프로젝트에서 모듈화와 계층화를 위해 사용됩니다.

행위 다이어그램

1. 활동 다이어그램(Activity Diagram)

활동 다이어그램 예시

활동 다이어그램은 흐름의 순서와 조건을 강조하여 제어 흐름 이나 객체 흐름을 보여주는 UML 다이어그램 입니다. 활동 모델에 의해 조정된 작업은 다른 작업의 실행이 완료되거나 개체 및 데이터를 사용할 수 있게 되거나 흐름 외부의 일부 이벤트가 발생하여 시작될 수 있습니다.

💡
회원 가입에서 이메일 확인까지의 프로세스를 나타낼 때 유용합니다.

2. 상태 머신 다이어그램(State Machine Diagram)

상태 머신 다이어그램 예시

상태 머신 다이어그램은 객체의 상태 변화와 그에 따른 이벤트를 시각화합니다.

국제 UML diagram 협회에서는 2.4v 이 후부터는 다음과 같이 설명하고 있습니다.

상태 머신 다이어그램은 유한 상태 전이를 통해 설계된 시스템의 일부분의 이산적인 행동을 보여주는 행동 다이어그램입니다. 상태 머신 다이어그램은 시스템의 일부의 사용 프로토콜을 표현하는 데에도 사용될 수 있습니다.

  • 행동 상태 머신
  • 프로토콜 상태 머신

상태 머신 다이어그램에서 일반적으로 그려지는 노드와 에지에는 행동 상태, 행동 전이, 프로토콜 상태, 프로토콜 전이, 다양한 의사상태(pseudostates)가 있습니다.

💡
온라인 주문 시스템에서 주문 상태(대기, 처리 중, 배송 등)의 변화를 표현할 때 사용됩니다.

3. 유스케이스 다이어그램(Use Case Diagram)

유스케이스 다이어그램 예시

유스케이스 다이어그램은 시스템이 어떤 목적을 달성하기 위해 어떻게 동작해야 하는지를 보여줍니다.

유스케이스 다이어그램은 일반적으로 시스템이나 여러 시스템(주체)이 하나 이상의 외부 시스템 사용자(엑터)와 협력하여 수행해야 하거나 할 수 있는 일련의 행동(유스케이스)을 설명하는 데 사용되는 행동 다이어그램입니다. 각 유스케이스는 시스템의 엑터나 다른 이해당사자에게 관찰 가능하고 유용한 결과를 제공해야 합니다.

💡
ERP 시스템을 도입할 때, 어떤 역할을 하는 사용자가 어떤 기능을 사용할 수 있는지를 정의할 때 사용됩니다.

4. 상호작용 다이어그램(Interaction Diagram)

상호작용 다이어그램 예시

상호작용 다이어그램은 객체나 컴포넌트간의 메시지 전송을 시각화합니다.

💡
예를 들어, 실시간 채팅 앱에서 메시지가 어떻게 전송되고 받아지는지를 표현할 때 사용됩니다.

5. 커뮤니케이션 다이어그램(Communication Diagram)

커뮤니케이션 다이어그램 예시

커뮤니케이션 다이어그램은 객체나 컴포넌트 간의 연관 관계를 나타냅니다.

커뮤니케이션 다이어그램(이것은 UML 1.x에서는 협력 다이어그램이라고 불립니다)은 자유 형식의 배열에서 순차적인 메시지를 사용하여 객체와/또는 부품(라이프라인으로 표현됨) 사이의 상호작용을 보여주는 UML 상호작용 다이어그램의 일종입니다.

커뮤니케이션 다이어그램은 상호작용 사용과 결합된 프래그먼트 같은 구조화 메커니즘이 없는 단순한 순차 다이어그램과 대응할 수 있습니다(즉, 상호 변환 또는 대체가 가능합니다). 또한 메시지의 순차가 뒤바뀔 것이 없거나(즉, 주어진 메시지 세트의 수신 순서가 발신 순서와 다름) 관련이 없다고 가정됩니다.

💡
예를 들어, CRM 시스템에서 고객과 상품, 주문이 어떻게 연관되는지 보여줄 때 사용됩니다.

6. 시퀀스 다이어그램(Sequence Diagram)

시퀀스 다이어그램 예시

시퀀스 다이어그램은 특정 작업을 수행하는 동안의 객체 간의 상호작용을 시간 순서에 따라 나타냅니다.

순차 다이어그램은 여러 라이프라인 간의 메시지 교환에 중점을 둔 가장 일반적인 형태의 상호작용 다이어그램입니다.

순차 다이어그램은 라이프라인에서의 해당 발생 사양과 함께 교환되는 메시지의 순서에 중점을 두어 상호작용을 설명합니다.

💡
금융 트랜잭션을 처리하는 시스템에서, 인증부터 트랜잭션 완료까지의 과정을 시각화할 때 사용됩니다.

마치며

이러한 UML 다이어그램들은 각각 다양한 적용 분야와 상황에 따라 유용합니다. 적절한 다이어그램을 선택하여 잘 활용한다면, 프로젝트의 생산성과 이해도를 크게 높일 수 있습니다.