정보처리기사/소프트웨어 설계
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