Recoil로 전역 상태를 관리하려고 했으나,
비동기적인 데이터를 처리하는 데 다소의 문제점이 있음을 발견하였다.
Recoil의 단점
- 캐싱을 지원하는 부분 검색을 하거나 실시간 데이터를 조회해야 하는 경우, 캐싱 처리를 위해 ATOM 값을 불필요하게 업데이트 해야한다.
- 효과적으로 상태를 초기화하기 위한 고민이 필요하다.
- 지속적으로 로컬 스토어 상태를 원격 서버 상태와 동기화해야 하는 추가 작업이 필요하다.
⇒ 결과적으로 코드가 복잡해 질 수 있다.
더 생각해볼 것
- 프로젝트에서 전역적으로 관리해야 할 상태는 무엇인가?
- currentUser
- Theme
- loading
- error
- useSWR을 사용한다면, currentUser의 정보를 로컬에서 관리할 필요가 없게 되는 것인가? 그럴 것 같다.