정보처리기사/소프트웨어 설계

UML(클래스 다이어그램) 관계

glorypang 2025. 10. 6. 10:06
728x90
반응형
SMALL

일반화 관계(Generalization, 상속)

  • 의미: 상위/하위(슈퍼/서브) 타입—속성과 행위 상속
  • 표기실선 + 속 빈 삼각형(삼각형이 상위 클래스를 가리킴)
  • 결합도: 강함(컴파일타임 계층)
  • 예시: Animal ◁── Dog, Cat 등
  • “개는 동물의 한 종류다” → 동물의 공통 특성을 물려받음.

실체화 관계(구현, Realization)

  • 의미: 인터페이스/추상클래스의 계약을 구체 클래스가 구현
  • 표기점선 + 속 빈 삼각형(삼각형이 추상 쪽을 가리킴)
  • 결합도: 매우 약함(계약 기반)
  • 예시: PaymentService ◁- - - CardPaymentService
  • “운전(인터페이스) 방법대로 차가 달린다” → 운전 규칙을 차가 구현.

의존 관계(참조, Dependency)

    • 의미: 한 요소가 다른 요소를 잠깐 사용(메서드 파라미터, 지역변수 등)
    • 표기점선 화살표(사용하는 쪽 → 사용되는 쪽)
    • 결합도: 약함 / 일시적
    • 예시: ReportController - - > PdfExporter
    • “필요할 때만 택시를 잠깐 탄다” → 택시 없으면 다른 수단.

연관 관계(Association)

1) 직접 연관(Direct Association)

    • 의미: 가장 일반적인 연관—두 클래스가 지속적으로 서로를 참조
    • 표기: 실선(필요 시 역할/다중성 표기)
    • 예시: Order <— Customer (1 Customer : * Order)
    • 비유: “고객–주문은 늘 연결되어 있다(필드 참조)”
    •  

2) 집합 연관(Aggregation Association, 집약)

  • 의미: 부분–전체(has-a) 관계지만 수명은 독립(부분 단독 생존 가능)
  • 표기: 빈 다이아몬드(◇)전체(Whole)
  • 예시: Team ◇— Player (선수는 팀 없이도 존재)
  • 비유: “동아리–회원: 동아리 없어져도 회원은 사람으로 남음”
    •  

3) 복합 연관(Composite Association, 컴포지션)

  • 의미: 강한 부분–전체, 전체가 소멸하면 부분도 함께 소멸(수명 공유)
  • 표기: 채운 다이아몬드(◆)전체(Whole)
  • 예시: House ◆— Room (집 없으면 방도 존재 X)
  • 비유: “몸–장기: 몸이 사라지면 장기도 함께 사라짐”
  •  
728x90
반응형
LIST