개발일지 2024-09-24(화)
최근 추석 연휴에 개발 치느라 너무 급급했다. 요즘 개발보다는 퍼블리싱 위주로 화면만 개발하고 있다. 똑같은 화면을 몇 달째 개발하다보니 지루한 면이 없지않다. 화면 개발만 한다고 해서 신경써야할것들이 없는게 아니다. 화면 개발을 하면서 기획서랑 상이한부분들을 면밀히 살펴봐야하고, 다른 부분이 있으면 사이드 이펙트 발생시키지 않으면서 빠르게 수정해야한다. 현재 개발 참여하고 있는 프로젝트는 어느정도 템플릿화 되어있어 개발을 특이한 기획사항이 있지 않은 이상 템플릿에서 대부분 편리하게 구현이 가능하다. 다만 오늘 작업한 화면은 테이블 컬럼만 21개이다. 이러한 화면은 탭으로 이루어져 있고, 탭별로 테이블이 존재하는데 각 테이블이 다 비슷하다. 하나하나 검수하고 적용하려다보니 눈이 빠질것만 같다. ㅋㅋㅋㅋ
개발일지인데 어느순간 부터 투정만 부리는 일기장이 되어버리는 것 같다 ㅋㅋㅋ
개발 이슈중 사소한 부분인데, 모달을 하나 띄워야하는 로직이고, 모달에서 데이터를 추가 또는 삭제하여 모달을 호출한 부모 컴포넌트의 리스트를 업데이트 해주는 비즈니스 로직이 있었다. 일단 모달 내부에서는 리스트에 대해 추가 또는 삭제를 해야하기때문에 useState가 필수불가결한 상황이라고 생각했다. 또한 부모 컴포넌트에서 데이터를 props로 넘겨주고 그 데이터를 state의 default value로 설정해야했다. 업데이트가 고민이 됐는데, recoil store를 사용해서 처리했다. store를 사용하지 않고 state handler를 모달 props로 넘겨주어 처리할수 있었을 것이다. 하지만, 이건 디자인 패턴적인 이슈라 개인적으로 props 늘리는 것을 좋아하지않는다. 따라서 store와 selector를 추가하여 추가 또는 삭제는 모달 내부 state에서 관리하도록 하고 변경된 모달 내부 데이터를 확인 처리 하면 모달이 닫히면서 recoil store가 set이 되고, 부모 컴포넌트에서 바라보는 데이터는 변경이 되도록 했다.
디자인 패턴적인 이슈라 정답은 없지만 props가 많아지면 가독성이 떨어진다고 생각하여 위와같은 해결책을 사용했다.