개요

데이터 fetching, 캐싱, 동기화, 서버 쪽 데이터 업데이트 등을 쉽게 만들어주는 리액트 라이브러리이다. 기존의 상태관리 라이브러리들(redux나 redux-saga 등)은 클라이언트 쪽의 데이터를 관리하기에는 좋았지만, 서버 쪽의 데이터를 관리하기에는 좋지 않았다. 예를 들어 사용자 정보인 닉네임을 변경하였을 때 다른 사람들도 해당 사용자의 변경된 닉네임을 바로 확인할 수 있어야 하는 상황이 있다고 해 보자. 이 때는 클라이언트 쪽에서 이 데이터를 관리하는 것 보다 서버 쪽에서 해당 유저의 데이터를 관리할 수 있어야 한다.

이 말고도 데이터를 캐싱하거나 get을 한 데이터가 업데이트되면 다시 get을 자동으로 요청하는 등 개발자가 구현하기 복잡한 로직들을 알아서 해 준다는 장점을 가지고 있다.

개념

important defaults

캐시와 stale, gcTime

캐시는 말 그대로 데이터가 메모리에 저장되었는지의 여부이다

staleTime