46 lines
2.8 KiB
Markdown
46 lines
2.8 KiB
Markdown
---
|
|
id: P-REINFORCE-WIKI-ARCH-UML
|
|
title: "통합 모델링 언어 (Unified Modeling Language, UML)"
|
|
category: Dev
|
|
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 핵심 개념 및 실천 방안 정립.
|