준프
프론트엔드를 리액트로 개발하다보면 '어떻게 재사용 가능하고 유지보수하기 쉬운 컴포넌트를 만들까?'하는 고민을 늘 하게 되는 것 같습니다.
오늘은 관련된 아티클을 몇 가지 소개해드리려고 합니다 ! 이 아티클들이 컴포넌트를 설계하는 데 도움이 되셨으면 좋겠습니다 !
먼저 Jbee님의 아티클을 소개해드립니다.
컴포넌트의 책임과 역할, 도메인 정보와 결합되지 않는 컴포넌트, 응집도 있는 컴포넌트 등 컴포넌트를 만드는 데 고려하면 좋은 여러 개념을 설명해주고 있습니다.

변경에 유연한 컴포넌트
이번 포스트에서는 변경에 유연하게 대응할 수 있는 컴포넌트에 대해 이야기해보려고 한다 TL;DR 컴포넌트는 데이터를 중심으로 추상화한다. 일반적인 인터페이스로 컴포넌트를 디자인한다. 변경에 유연하다는 것 우리가 작성하는 소프트웨어는 지속가능해야 한다. 클린 코드에 입각하여 코드가 잘 읽히도록 작성하는 것 그 자체가 목적이 되어서는 안 된다. 우리가 작성하는 코드는 예상할 수 없는 변경에 그나마 유연하게 대응할 수 있어야 한다. Why…
https://jbee.io/web/components-should-be-flexible/
그 다음으론 Kent C. Dodds의 제어의 역전과 관련된 아티클입니다.
"Make your abstraction do less stuff, and make your users do that instead"라는 말로 IoC를 설명하고 있는 이 글은 우리가 컴포넌트를 개발하면서 빈번하게 마주하는 케이스를 소개하면서 왜 IoC를 해야하는지 소개하고 있습니다.
Inversion of Control
https://kentcdodds.com/blog/inversion-of-control
관련해서 Compound Component라는 개념을 소개하는 아티클도 공유합니다 :)
React Hooks: Compound Components
https://kentcdodds.com/blog/compound-components-with-react-hooks
그리고 유연한 컴포넌트를 만들기 위해 공식 문서에서 소개하는 '컴포넌트를 props로 전달하기'와 관련된 글도 소개합니다.

Passing Props to a Component – React
The library for web and native user interfaces
https://react.dev/learn/passing-props-to-a-component#passing-jsx-as-children
마지막으로 컴포넌트를 언제 분리하면 좋을지와 관련된 글을 소개합니다.
프론트엔드 아키텍처: 컴포넌트를 분리하는 기준과 방법
컴포넌트를 언제 분리해야 하고 어떻게 분리해야 하는지 살펴봅니다.
https://link.medium.com/IZ7KAjth6Ab





