https://docs.google.com/presentation/d/1wlfl2o4_DG0koQbvEOogVaAnWFcAe6mDZx_8wMp7-BM/edit?usp=sharing
react-query 선정 이유
클라이언트 쪽 데이터 관리엔 용이하나, 서버 쪽 데이터 관리에 불편한 점이 많다.
서버에서 비동기적으로 받아오는 데이터를 처리하기 위해 redux-thunk 등을 사용해 비동기 처리 수행 후, 데이터를 redux store에 저장하여 각 컴포넌트에서 사용했다.
비동기 처리 수행 중 isLoading 등의 로딩 상태를 직접 선언하고 처리해야 한다.
redux-toolkit의 등장으로 redux boilerplate 양이 줄어들었음에도, 여전히 비동기 처리 시 반복되는 boilerplate 코드량이 많았다.
API 통신을 위한 규격화된 방식의 부재 : Redux는 API 통신 및 비동기 상태 관리 목적 라이브러리가 아니기 때문에 비동기 데이터를 관리하기 위한 코드를 개발자가 모두 결정하고 구현해야 했다. 즉, redux는 범용적으로 사용하는 전역 상태 관리 라이브러리였기 때문에 규격화된 비동기 데이터 관리 방식이 없어 협업이 복잡해질수록 데이터 관리가 까다로웠다.
EX. API 로딩 여부Boolean을 사용해서 관리IDLE | LOADING | SUCCESS | ERROR 등 상태를 세분화하여 관리
recoil 선정 이유