<aside> 💡 나는 리액트를 어떻게 설계할 것인가? 위의 주제로 노션에 정리하여 제출해주세요.

</aside>


<< 나만의 리액트 설계 기준 >>


리액트 공식 문서에는 설계에 대한 명확한 규약이 없고 제안만 한다. 그래서 유명한 설계 방식 몇개를 참고해서 개발을 진행하게 된다. 혼자서 하는 개발이면 상관없지만, 여러명이 참여하는 프로젝트는 설계가 더더욱 중요하다.

실무자가 여러명일때는 당연히 프로젝트 규모도 그만큼 클 것이다. 하지만 정해진 규약이 없으면 코드의 중복이 발생하거나, 시간이 지나 프로젝트가 확장하면서 버그가 발생하면 점점 더 디버깅 하기 어려워 질 것이다. 그래서 프로젝트 시작 전 팀원들과 함께 오랜시간동안 설계에 시간을 투자해야 할 것이다.

내가 생각한 리액트 에서의 좋은 설계란 ‘확장성 있고 재사용 있는 코드', ‘관심사에 따라서 코드를 분리하고 단일 책임을 가지는 컴포넌트’, ‘비즈니스 코드와 컴포넌트의 분리' 이다.

리액트 프로젝트 구조 설계를 여러가지 검색해보면서 내가 찾은 제일 좋은 예시는 ‘아토믹 디자인’이다. 컴포넌트 단위를 최대한 쪼개서 더이상 분해 될 수 없게 만든다. 이렇게 디자인 하면 초기에는 개발하는 시간이 정말 오래 걸릴 수 있다. 하지만 작은 단위로 부터 큰 단위(bottom-up 방식)로 아토믹 하게 제작하면 장점이 많다. 시간이 지날 수록 프로젝트는 견고해서 무너지지 않을 것이다. 또한 디자인도 일관성있게 통일할 수 있다. 새로운 실무자가 투입이 되었을때 따로 직관적으로 나뉘어진 컴포넌트를 활용해서 따로 누군가의 설명이 필요없이 바로 개발을 진행할 수 있다.

나는 앞으로 규모가 크냐 작냐에 따라서 설계를 아토믹하게 할지 도메인 단위로 나눌지 정할 것이다. 규모가 크다면 아토믹 디자인을 선택할 것이고, 규모가 작으면 도메인 단위로 나눌 것이다. 이렇게 상황에 따라서 설계를 정하면 프로젝트를 성공적으로 완성할 수 있을 것이다.

참고문헌