React 어플리케이션에서 데이터 가져오기, 캐싱 및 동기화를 관리 할 수 있는, 후크 및 유틸리티를 제공한다.

서버에서 API를 가져오고, 캐싱을 처리하고, 데이터가 변경될 때 자동으로 구성요소를 업데이트 한다.

이는 네트워크 요청을 최적화 해주고, 상용구 코드를 줄이며, 데이터기반 React 어플리케이션의 전반적인 성능에 영향을 준다.

useQuery

처음으로 data를 Fetching 하게 되면, 실제 해당 api 서버로 이동

사용자가 지정한 queryKey 이름으로 해당 결과를 캐시로 저장.

이후 다른 라우팅으로 갔다가 다시 react-query의 useQuery가 있는 라우팅으로 오면

캐시에 있던 내용을 돌려보냄.

isLoading 값이 false가 되면서 Loading 문구가 보이지 않게 된다.

(캐시에서 결과를 바로 얻었기 때문에 isLoading 값이 거짓이 된다.)

백그라운드에서 isFetching이 진행되고 있기 때문에, isLoading이 false가 유지된 상태로

캐시의 값이 업데이트를 해 주고 있다.