오늘은 프로젝트를 거의 마무리로 가면서 구현 해놓은 것들을 리팩토링하는 시간을 가졌다. 그러면서 조금은 개인적으로 가치관에 따라 차이가 날 수 있을 수 있는 구현 방법에 대해 이견이 있었는데 그런 부분에 대해 한번 얘기해보겠다.
재사용 가능한 컴포넌트를 무조건 사용해야 하는가?
props와 내용이 조금 다른 2개의 컴포넌트를 구현해야 할때 재사용가능한 컴포넌트 하나로 2가지를 모두 구현 가능하게 해야할까? 일단 그렇게 하려면 타입스크립트로 props 타입을 설정하려면 조건부 타입을 주어야한다. 그리고 내부에서도 조건에 맞게끔 조건문으로 어떤식으로 구현할지에 대해 따로 정의해주어야 한다. 하지만 하나의 컴포넌트로 해결할 수 있다.
하지만 나는 컨디셔널컴포넌트를 하나 만들고 그 안에서 조건부로 또 2개의 컴포넌트를 따로 만들어서 각 조건에 맞게 리턴 될 수 있게 설계하였다. 이 방법은 2개의 더 많은 컴포넌트를 만들었지만 각 컴포넌트 내부는 더 깔끔해졌고 가독성이 높아졌다고 생각한다.
props가 늘어나면 구조분해 할당으로 보내주는게 맞을까?
일단 내생각만 얘기하면 나는 아닌것 같다. 물론 너무 많은 props를 받는 컴포넌트가 생긴다면 일단 컴포넌트를 더 잘게 분리해야 한다. 하지만 그렇지 않은 상황이라면 분해 할당을 사용하기보다 이 컴포넌트에 넘어가는 props를 명확히 보여주는 것이 가독성 면에서 좋다고 생각합니다.
오늘 대부분 끝나고 리팩토링할 일만 남을 줄 알앗는데 이 포스트를 작성하는 이 순간에 새로운 일이 생겼다. 빨리 하고 자야지...