Tanstack Query ㅡ staleTime, gcTime 한 눈에 복기하기
한 눈에 확인해보자면 .. staleTime : 이 데이터가 신선하다고 보는 시간 gcTime : 아무 컴포넌트가도 안쓰는 캐시를 메모리에 남겨놓는 시간 staleTime은 refetch를 할지 말지 영향을 주는 요소이다. Q. 5분이라고 가정했을 때, 흐름은 아래와 같다. 0분 : 데이터 fetch 0 ~ 5분 : 데이터가 fresh한 상태 5분 이후 : stale 상태 fresh 상태에서는 같은 querykey로 다시 useQuery가 실행되어도 보통 네트워크 요청을 다시하지 않고, 캐시 데이터를 사용한다. Q. 만약 5분이 지난 경우라면? 0분 : "/organizations" 진입 → API 요청 7분 : 다른 페이지 갔다가 다시 "/organizations" 진입 → stale 상태 → 기존 캐시 데이터 먼저 보여줄 수 있음 → 백그라운드 refetch 가능 2. gcTime은 캐시를 언제 알게할지에 대한 영향을 주는 요소이다. 여기서 중요한 점은 gcTime은 쿼리가 inactive 된 순간부터 돌아간다. active와 inactive의 차이점 active : 어떤 컴포넌트가 useQuery로 이 데이터를 사용 중 inactive : 아무 컴포넌트도 이 queryKey를 사용하지 않음
- 현우
