UML(Unified Modeling Language)은 소프트웨어 시스템의 구조와 동작을 시각적으로 표현하기 위한 표준화된 모델링 언어이다. 객체 지향 분석 및 설계(OOAD)의 결과물을 시각화, 명세화, 구축, 문서화하는 데 사용되는 전 세계 공통의 엔지니어링 언어이다.
2. 핵심 다이어그램 유형
클래스 다이어그램 (Class Diagram): 시스템의 정적 구조 표현. 클래스 간의 관계(상속, 합성, 집계, 의존성 등)를 상세히 명세.
시퀀스 다이어그램 (Sequence Diagram): 객체 간의 동적 상호작용 표현. 시간 흐름에 따른 메시지 교환 순서 시각화.
유즈케이스 다이어그램 (Use Case Diagram): 시스템이 제공하는 기능과 외부 사용자(Actor) 간의 관계 정의.
상태 다이어그램 (State Diagram): 객체의 생명주기 동안 발생하는 상태 변화와 전이 조건 표현.
3. 실전 활용 전략
C4 모델과의 통합: C4 모델의 레벨 4(Code) 수준에서 구체적인 클래스 관계나 로직 흐름을 표현할 때 UML을 사용.
Diagrams as Code: PlantUML이나 Mermaid를 통해 텍스트 기반으로 UML을 작성하여 Git으로 버전 관리.
설계 검증: 구현 전 시퀀스 다이어그램을 통해 API 호출 흐름이나 예외 시나리오를 선제적으로 검토.
4. 트레이드오프 및 주의사항
장점: 정밀한 시맨틱 표현 가능, 전 세계 엔지니어 간의 공통 어휘 확보, 객체 지향 설계의 시각화.
단점: 다이어그램 복잡도 상승으로 인한 유지보수 비용 발생, 실제 코드와 다이어그램 간의 괴리(Architectural Drift) 발생 위험.