오늘 배운 것
어려웠던 내용
- ServerState와 ClientState를 어떻게 다룰 것인가
- 기존에 간단한 App에서는 Server에서 받아온 API data를 그대로 Client의 state로 사용해도 충분했었다. 하지만 이번 노션클로닝에서는 API data가 트리 구조의 데이터로 내려오기 때문에, Client에서 렌더링을 바로 해주기에는 부적합한 자료구조였다.
- 고민 끝에, state는 화면을 잘 그려주기 위한 데이터 형식으로 저장해야한다는 결론에 이르렀고, 재귀함수를 통해 ServerData를 flat하고, isToggled와 같은 렌더링에 필요한 속성들을 추가로 제공하여 Client State를 구성할 수 있었다.
궁금한 내용 / 부족한내용 🤔
- Top-down으로 생각하기
느낀점
- 2틀간의 오프라인에서 동료들과 같이 작업을 하여 정말 좋았다. 온라인 상으로는 아무래도 조금 편한 느낌이 덜 했는데, 얼굴을 보며 이야기하기 때문에 더 부드럽고 적극적인 소통이 되어 좋았다. 친목 이외에도 개발관련 질문을 편하고 빠르게 주고 받을 수 있어서, 나중에 반드시 재택근무가 필수요소는 아니라는 생각이 들었다.
- 노션 프로젝트를 시작하며 Top-down 방식으로 생각하려고 많이 노력하고 있다.
- 이전까지는 bottom-up방식으로 코드단계에서 state나 이벤트함수들을 많이 생각했는데, 초기에 충분히 시간을 두고 컴포넌트 구조나 State설계, 필요 이벤트 함수등에 대해 고민하는 것이 필요하다고 생각했다. 당장은 Top-down으로 모든 프로젝트 흐름을 그려넣기가 상당히 어려웠지만, 이것 또한 연습이 필요한 분야라고 생각하고 있다.