---
id: P-REINFORCE-WIKI-ARCH-UML
title: "통합 모델링 언어 (Unified Modeling Language, UML)"
category: "10_Wiki/🏗️ Topics_Arch"
status: verified
canonical_id: ""
aliases: ["UML", "소프트웨어 모델링", "시각적 설계 표준"]
duplicate_of: ""
source_trust_level: A
confidence_score: 1.0
tags: ["Architecture", "Modeling", "UML", "Class_Diagram", "Sequence_Diagram"]
raw_sources: ["Datacollector_Export_2026-05-02"]
last_reinforced: 2026-05-02
github_commit: ""
---

# [[통합 모델링 언어 (Unified Modeling Language, UML)]]

## 1. 개요
UML(Unified Modeling Language)은 소프트웨어 시스템의 구조와 동작을 시각적으로 표현하기 위한 표준화된 모델링 언어이다. 객체 지향 분석 및 설계(OOAD)의 결과물을 시각화, 명세화, 구축, 문서화하는 데 사용되는 전 세계 공통의 엔지니어링 언어이다.

## 2. 핵심 다이어그램 유형
1.  **클래스 다이어그램 (Class Diagram)**: 시스템의 정적 구조 표현. 클래스 간의 관계(상속, 합성, 집계, 의존성 등)를 상세히 명세.
2.  **시퀀스 다이어그램 (Sequence Diagram)**: 객체 간의 동적 상호작용 표현. 시간 흐름에 따른 메시지 교환 순서 시각화.
3.  **유즈케이스 다이어그램 (Use Case Diagram)**: 시스템이 제공하는 기능과 외부 사용자(Actor) 간의 관계 정의.
4.  **상태 다이어그램 (State Diagram)**: 객체의 생명주기 동안 발생하는 상태 변화와 전이 조건 표현.

## 3. 실전 활용 전략
- **C4 모델과의 통합**: C4 모델의 레벨 4(Code) 수준에서 구체적인 클래스 관계나 로직 흐름을 표현할 때 UML을 사용.
- **Diagrams as Code**: PlantUML이나 Mermaid를 통해 텍스트 기반으로 UML을 작성하여 Git으로 버전 관리.
- **설계 검증**: 구현 전 시퀀스 다이어그램을 통해 API 호출 흐름이나 예외 시나리오를 선제적으로 검토.

## 4. 트레이드오프 및 주의사항
- **장점**: 정밀한 시맨틱 표현 가능, 전 세계 엔지니어 간의 공통 어휘 확보, 객체 지향 설계의 시각화.
- **단점**: 다이어그램 복잡도 상승으로 인한 유지보수 비용 발생, 실제 코드와 다이어그램 간의 괴리(Architectural Drift) 발생 위험.

## 5. 지식 연결 (Related)
- [[C4_Modeling_Framework]]: UML을 포함하는 상위 계층 아키텍처 시각화 체계.
- [[Design_Patterns]]: UML을 통해 정의된 검증된 객체 지향 설계 템플릿.
- [[PlantUML]]: UML을 코드로 관리하기 위한 대표적인 오픈 소스 도구.

## 🧪 검증 상태 (Validation)
- **정보 상태**: 검증 완료 (Verified)
- **출처 신뢰도**: A
- **검토 이유**: 소프트웨어 공학의 시각적 언어 표준으로서의 UML 핵심 개념 및 실천 방안 정립.
