React는 강력한 합성 모델을 가지고 있으며, 상속 대신 합성을 사용하여 Component 간에 코드를 재사용하는 것이 좋습니다.

이번 문서에서는 React를 처음 접한 개발자들이 종종 상속으로 인해 부딪히는 몇 가지 문제들과 합성을 통해 이러한 문제를 해결하는 방법을 살펴볼 것입니다.

1. 컴포넌트에서 다른 컴포넌트를 담기

어떤 Component 들은 어떤 자식 Element가 들어올 지 미리 예상할 수 없는 경우가 있습니다.

범용 적인 ‘박스’ 역할을 하는 Sidebar 혹은 Dialog와 같은 Component에서 특히 자주 볼 수 있습니다.

2. 특수화

때로는 어떤 Component의 “특수한 경우”인 Component를 고려해야 하는 경우가 있습니다.

예를 들어, WelcomeDialog 는 Dialog의 특수한 경우라고 할 수 있습니다.

React에서는 이 역시 합성을 통해 해결할 수 있습니다.

더 “구체적인” Component가 “일반적인” Component를 렌더링하고 props를 통해 내용을 구성합니다.