UML Diagram
📐 UML Diagram
정의
UML은 시스템의 구조와 관계를 시각적으로 표현하는 표준 기법이다.
UML은 설계 의도를 문서로 남기고, 구현 전후의 구조를 빠르게 공유할 때 유용하다.
🧩 종류
| Diagram | 설명 |
|---|---|
| Activity Diagram | 작업 흐름 표현 |
| Class Diagram | 시스템 구조 표현 |
| Collaboration Diagram | 객체 간 메시지 표현 |
| Component Diagram | 컴포넌트 구조 표현 |
| Deployment Diagram | 배포 구조 표현 |
| Sequence Diagram | 시간 순서 메시지 표현 |
| Use Case Diagram | 시스템과 사용자의 상호작용 표현 |
🔗 Class 관계
게임을 예시로 각 관계를 함께 보면 이해하기 쉽다.

일반화(Generalization)
- 부모클래스와 자식클래스 간 상속 관계를 나타낸다.
- 부모는 자식을 일반화하고, 자식은 부모를 구체화한다.
- 속이 빈 화살표로 표현한다.
- 위 예시에서
Weapon과Item의 관계에 해당한다.

실체화(Realization)
- interface의 기능을 실제로 구현한다.
- 점선에 속이 빈 화살표로 표현한다.
- 위 예시에서
Attackable,Damagable과Monster의 관계에 해당한다.

의존(Dependency)
- 일시적이고 느슨한 참조 관계다.
- 멤버변수나 메서드 매개변수로 다른 객체를 사용할 때 주로 나타난다.
- 점선 화살표로 표현한다.
- 위 예시에서
Damagable,Monster와DamageInfo의 관계에 해당한다.

집약(Aggregation)
- 한 객체가 다른 객체를 포함하는 더 큰 개념이다.
- 두 객체는 독립적이며 라이프사이클도 독립적이다.

연관(Association)
- 일반적인 객체 간 관계다.
- 서로 연결되어 상호작용하지만 포함 관계는 아니다.

합성(Composition)
- 전체와 부분의 관계를 강하게 묶는 방식이다.
- 부분은 전체에 종속되며 라이프사이클도 함께 간다.

🛠️ 활용 예시
- 클래스 간 책임과 관계를 먼저 정리할 때
- 서비스 구조를 팀원과 공유할 때
- 복잡한 흐름을 순서도처럼 설명할 때
- 배포 구성이나 컴포넌트 경계를 시각화할 때
📌 정리
- UML은 설계 내용을 빠르게 이해시키는 데 도움이 된다.
- 클래스 다이어그램과 시퀀스 다이어그램을 가장 자주 보게 된다.
- 문서화와 설계를 분리하지 않고 함께 관리하면 유지보수가 편하다.
댓글남기기