20220127 Frontend 일일 개발일지 === ###### tags: `20220127` # 개발 내용 ## 회원가입 페이지 구성 :::success 회원가입 페이지를 구성했다! ::: ![](https://i.imgur.com/LglwV08.png) - 기존에 작성했던 로그인 화면과 굉장히 유사하게 생겨서 비슷하게 만들었다. - 미리 만들어놓은 `input` atom을 활용하여 재사용했다. #### 고민거리 맨 밑 **스니커즈 사이즈**`Input` 태그를 클릭하면 모달이 떠야했다! - `onClick` 이벤트를 optional 하게 바인딩하여 클릭시 모달이 보이게 설계했다. ![](https://i.imgur.com/xtOxd2v.png) #### 문제점 봉착..!! 기존에 그리드 컴포넌트는, 다음과 같이 생긴 버튼들만 그리드로 보여줬다. ![](https://i.imgur.com/e9lLdPQ.png) 가격 정보가 있거나, ![](https://i.imgur.com/QH3sZUw.png) 아래에 찜 아이콘이 있거나. 둘중의 하나만 렌더링을 했지만 **사이즈만** 렌더링 되게 했어야 했다! **==Grid 컴포넌트에 props 타입을 추가했다.==** ![](https://i.imgur.com/gNbcdr4.png) - `sizeOnly` 카테고리라면 사이즈만 렌더링하여 원하는 그리드 모양을 구현했다. #### 큰 고민거리 이제 해당 그리드 컴포넌트에서 클릭했을때의 이벤트를 바인딩하는데 정말 큰 고민이 있었다. - `onClick` 이벤트가 :::info Modal -> ProductSizeSelectGrid -> ProductSizeSelect ::: 의 경로로 `props drilling` 이 일어나는 현상이 불가피해졌다. :::danger 종현님이랑도 많이 고민을 해보고 양하님과도 말씀을 나눴는데, `Atomic Design Pattern` 을 사용하는 이상 이는 어쩔수 없을 것 같다는 결론을 내렸다. ::: 왜? - 그렇다고 이 props를 전역상태로 관리한다면 정말 무수히 많은 것들이 전역상태를 참조해야한다고 생각했다. - 방금 또 의견을 공유해봤는데, `Atomic Design Pattern` 을 사용한다면 전역 상태 관리에 2단계 이상 넘어가는 props를 모두 관리하는게 낫겠다.. 생각이 들었다. - `useCallback`으로 렌더링을 최적화한다면 `props drilling`으로 인한 리렌더링을 조금은 막을 수 있겠다 생각들었다.