February 13, 2022
만약 todo 삭제나, 완료, 추가할때 이벤트 하나마다 발생할때마다 get으로 todoList를 다시 호출하나요? 아니면 state에 저장해놓고 state에서 수정하면서 수정 요청만 서버로 보내고 변경해야할 때 한번에 가져오나요? 카테고리나 검색 같은경우는 변경될떄마다 새로가져오는게 맞는것 같은데 투두리스트 같은경우는 좀 단위가 작아서 한번에 get하는게 맞을까요..?내용 그대로다. 나는 예전에 장바구니 기능을 구현할 때 체크박스를 사용한 적이 있었다. 그때 당시 파워 삽질로 깨달음을 얻는 시기였기에, 그냥 fatch로 데이터베이스에 접근해 수정하고 response를 받아오도록 구현했었다. 그때 당시엔 다 만들고 나서야 이상함을 감지했다.
아니 체크박스 하나 체크했을 뿐인데, 장바구니 리스트가 리 렌더링 되면서 데이터를 받아와서 출력하는 데까지 눈으로 확인될 정도의 잠깐의 로딩이 걸렸다. 그래서 그때 당시 로컬 스토리지를 이용해서 로컬에서만 체크박스 상태를 바꾸고, 삭제, 구입 버튼을 누를 때 서버로 전달했다.
이때의 기억을 떠올려 나는 빠르게 질문했다. 주신 답변은
"리스트가 10~20개 수정할 때마다 내외면 리스폰스로 받고, 리스트가 많으면 로컬에서 상태 변경을 하는 게 좋다"
낙관적 업데이트를 하는가 마는가의 결정 같은데, 사실 이 부분은 정답이 없습니다. 주로 중요한 정보(결제 결과 등) 라면 낙관 업데이트를 하지 않고, 크게 중요하지 않은 정보(좋아요 누르기) 라면 낙관 업데이트로 처리하는 경우가 많습니다. 결론적으로는, 맞는다고 생각하시는 방향으로 개발하시면 될 것 같네요.