리액트 쿼리
는 React의 어플리케이션에서 서버의 상태를 가져오고, 캐싱(고유한 query key를 이용)하고, 동기화하고, 업데이트 하는 작업을 한다. 즉, 서버의 상태를 관리하는 라이브러리이다.
서버의 상태
- 원격에 위치한 공간에 저장되며 앱이 소유하거나 제어하지 않는다.
- 데이터를 가져오고 업데이트 하기 위해선 비동기 API가 필요하다.
- 다른 사람과 소유권이 공유된다.
- Application에서 데이터가 잠재적으로
out-of-date
상태가 될 수 있다.
클라이언트에서 서버 상태를 처리할 때 직면할 수 있는 문제들
out-of-date
된 데이터를 갱신해야 할 때- 데이터가
out-of-date
상태인지를 파악해야할 때- 가능한 빠르게 데이터를 업데이트해야할 때
페이징
이나Lazy-loading
데이터를 최적화해야 할 때- 메모리 가비지 컬렉션을 운영해야 할 때
- 쿼리 결과를
메모이제이션
해야할 때
각 쿼리를 유니크한 키값으로 관리하고 캐싱해서 전역적으로 상태를 관리할 수 있다는 점이 가장 큰 장점으로 꼽히는 것 같다.