📐 UML Diagram

정의

UML은 시스템의 구조와 관계를 시각적으로 표현하는 표준 기법이다.

UML은 설계 의도를 문서로 남기고, 구현 전후의 구조를 빠르게 공유할 때 유용하다.

🧩 종류

Diagram 설명
Activity Diagram 작업 흐름 표현
Class Diagram 시스템 구조 표현
Collaboration Diagram 객체 간 메시지 표현
Component Diagram 컴포넌트 구조 표현
Deployment Diagram 배포 구조 표현
Sequence Diagram 시간 순서 메시지 표현
Use Case Diagram 시스템과 사용자의 상호작용 표현

🔗 Class 관계

게임을 예시로 각 관계를 함께 보면 이해하기 쉽다.

일반화(Generalization)

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

실체화(Realization)

  • interface의 기능을 실제로 구현한다.
  • 점선에 속이 빈 화살표로 표현한다.
  • 위 예시에서 Attackable, DamagableMonster의 관계에 해당한다.

의존(Dependency)

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

집약(Aggregation)

  • 한 객체가 다른 객체를 포함하는 더 큰 개념이다.
  • 두 객체는 독립적이며 라이프사이클도 독립적이다.

연관(Association)

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

합성(Composition)

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

🛠️ 활용 예시

  • 클래스 간 책임과 관계를 먼저 정리할 때
  • 서비스 구조를 팀원과 공유할 때
  • 복잡한 흐름을 순서도처럼 설명할 때
  • 배포 구성이나 컴포넌트 경계를 시각화할 때

📌 정리

  • UML은 설계 내용을 빠르게 이해시키는 데 도움이 된다.
  • 클래스 다이어그램과 시퀀스 다이어그램을 가장 자주 보게 된다.
  • 문서화와 설계를 분리하지 않고 함께 관리하면 유지보수가 편하다.

연결문서

댓글남기기