론리나잇 2025. 4. 30. 15:06

문제 44

문제:
Provider 클래스가 Service 인터페이스에 정의된 기능을 제공하고
User 클래스가 인터페이스에 정의된 기능을 사용한다는 의미를 표현한
클래스 다이어그램으로 가장 적절한 것은?


✅ 정답: ① (가)


🔍 보기 분석

(가)

  • UML의 Lollipop Notation 사용
  • Service는 인터페이스
  • Provider가 Service를 제공 ()
  • User가 Service를 사용 (에 연결됨)
  • ✔️ 정확한 의미 표현 (인터페이스 제공/사용 관계)

(나)

  • 인터페이스임을 표현하지 않음
  • UserProvider 사이의 관계 표현이 명확하지 않음
  • 의도 불명확

(다)

  • Provider ─▷ Service: 실선 삼각형상속(일반화) 관계
  • Serviceinterface로 표시되어 있지만, implements가 아닌 상속 표현을 사용
  • 인터페이스 구현 표현이 아님

(라)

  • User ─▷ Service: 실선 삼각형 → User가 Service를 상속함으로 표현됨
  • ❌ User가 서비스를 사용하는 관계 표현이 잘못됨

📘 UML 핵심 요약

관계 종류 UML 기호 설명
구현(implements) 점선 + 삼각형 클래스가 인터페이스를 구현
일반화(상속) 실선 + 삼각형 클래스가 다른 클래스를 상속
사용(uses) 점선 + 화살표 클래스가 다른 클래스를 참조 또는 사용
제공/사용 Lollipop Notation (○) 인터페이스를 제공/사용하는 구조 표현

✅ 결론

  • UML에서 인터페이스 제공자는 ○로 제공, 사용자는 그 ○를 사용하는 관계로 표현하는 것이 명확하다.
  • 따라서 (가)가 문제에서 요구한 "인터페이스를 제공하고 사용하는 구조"정확히 표현한 정답이다.

정답: ① (가)