UML(Unified Modeling Language, 통합 모델링 언어)은 소프트웨어 시스템의 설계 및 문서화를 위해 사용되는 표준화된 모델링 언어입니다. 객체지향 분석과 설계(OOD, OOA)에 주로 사용되며, 다양한 다이어그램을 통해 시스템의 구조, 동작, 상호작용을 시각적으로 표현할 수 있도록 도와줍니다.
1. UML 개요
UML은 1990년대 중반에 여러 객체지향 설계 방법론(예: Booch, OMT, OOSE 등)을 통합하기 위해 만들어졌으며, 현재는 OMG(Object Management Group)에서 관리하고 있습니다.
주요 목적은 복잡한 소프트웨어 시스템을 시각적으로 표현하여 개발자, 분석가, 고객 간의 의사소통을 원활히 하고, 시스템 구조와 행위를 명확하게 정의하는 데 있습니다.
2. UML의 주요 구성 요소
UML은 크게 다이어그램으로 구성되며, 다이어그램은 정적(구조적) 모델링과 동적(행위) 모델링으로 나뉩니다.
2.1 구조적 다이어그램 (Static Diagrams)
- 클래스 다이어그램 (Class Diagram)
시스템의 클래스들 간의 관계(상속, 연관, 집합 등)를 표현
👉 소프트웨어 아키텍처의 기본 설계에 매우 중요 - 객체 다이어그램 (Object Diagram)
특정 시점의 객체 인스턴스 상태를 나타냄 - 컴포넌트 다이어그램 (Component Diagram)
시스템을 구성하는 모듈, 컴포넌트 간의 관계 - 배치 다이어그램 (Deployment Diagram)
실제 하드웨어(노드)와 소프트웨어(아티팩트) 배치 구조 표현
👉 예: 서버, DB, 클라이언트 구성도 - 패키지 다이어그램 (Package Diagram)
클래스를 논리적 그룹으로 묶어 계층적 구조를 표현
2.2 행위 다이어그램 (Behavioral Diagrams)
- 유스케이스 다이어그램 (Use Case Diagram)
사용자의 행위(Use Case)와 시스템의 상호작용 표현
👉 요구사항 도출 단계에서 주로 사용 - 시퀀스 다이어그램 (Sequence Diagram)
객체 간 메시지 흐름과 시간 순서 표현 - 커뮤니케이션 다이어그램 (Communication Diagram)
객체 간 메시지 교환 구조 강조 - 상태 다이어그램 (State Machine Diagram)
객체의 상태 변화 및 상태 전이 표현
👉 예: 로그인, 결제 상태 흐름 등 - 활동 다이어그램 (Activity Diagram)
프로세스 흐름이나 알고리즘, 업무 플로우 표현
👉 BPMN처럼 비즈니스 로직을 도식화할 때 유용
3. UML 예시: 클래스 다이어그램
아래는 UML 클래스 다이어그램의 간단한 예시입니다.

User
클래스를AdminUser
가 상속하고 있으며, 메서드와 속성이 나와 있습니다.
4. UML의 장점과 단점
장점
- 시스템의 설계를 시각적으로 표현 가능
- 개발자, 기획자, 비기술자와의 커뮤니케이션 용이
- 복잡한 시스템의 구조 및 행위 모델링에 적합
- 코드 작성 전 논리적 오류 사전 검출 가능
단점
- 과도한 다이어그램 작성 시 비효율 초래
- 실무에서 UML을 완전하게 사용하는 경우는 드묾
- 도구나 표기법의 학습 곡선이 있음
5. UML 사용 사례
- SI 프로젝트에서 시스템 분석 및 설계 문서 작성
- 스타트업에서 MVP 설계 시 유스케이스 및 시퀀스 다이어그램 활용
- 마이크로서비스 아키텍처 설계 시 컴포넌트, 배치 다이어그램 사용
- 모바일 앱 흐름 설계 (특히 상태/활동 다이어그램 사용)
6. 마무리 정리
UML은 복잡한 소프트웨어 시스템을 명확하게 설계하고 의사소통할 수 있도록 도와주는 중요한 도구입니다. 전통적인 객체지향 개발뿐만 아니라, 애자일, DevOps, 클라우드 아키텍처 설계에서도 여전히 활용되고 있으며, 아키텍트, 기획자, 개발자 간의 공통 언어로서 가치를 가집니다.