Composition : 객체 지향 설계에서 Has-A 관계를 구현하는 설계 방법
$$ \color{gray}\scriptsize\textsf {처음 입사했을 때,특정 컨텐츠를 상속 관계로 구현했다가} \\\textsf{후에 디버깅 및 컨텐츠 확장이 생각보다 용이하지 않아서 어라 이게 아닌데...? 싶었던 기억이 떠오른다.}
$$
$$ \color{gray}\scriptsize\textsf{떠올려보면 컴포지션이라는 개념에 대해 잘 몰랐었는데도, 구조를 고민하다 보니} \\\textsf{자연스럽게 특정 기능(?)을 수행하는한 클래스를 멤버 변수로 들고 있는 방식으로 구현하게 되었던 것 같다.} $$
이렇게 객체 지향 설계에 대해 언급된 지금 SOLID 원칙에 대해 다시금 짚어보고 가면 좋을 것 같다.
Single Responsibility (단일 책임 원칙)
Open-Closed (개방 폐쇄 원칙)