DYO 공부하는 블로그
왜 Tanstack Query는 staleTime과 gcTime을 분리해 관리할까? 본문

왜 Tanstack Query는 staleTime과 gcTime을 분리해 관리할까?
Tanstack Query는 데이터 재요청 시간인 staleTime의 기본값은 0분이고, gcTime의 기본값은 5분이다. 왜 이 둘을 분리해 관리할까?
Tanstack Query와 유사한 기능을 하는 라이브러리인 SWR은 라이브러리 이름이 정답을 그대로 서술하고 있다. SWR의 풀네임은 Stale-While-Revalidate이다. 이 말인 즉, 검증하기 전에 메모리에 남아 있는 캐싱된 데이터를 보여 주고, 재검증이 완료된 데이터를 새로 보여준다는 의미이다.
어떻게 동작하는지
staleTime이 지났을 경우 Tanstack Query는 서버에 재요청하고 캐시를 갱신한다. 이때, gcTime이 남아있다면 메모리에 남아 있는 데이터를 빠르게 불러오고, 백그라운드에서 데이터를 검증한 뒤 UI를 갱신한다.
이와 같은 방법으로 유저는 데이터 요청 중에도 캐싱된 이전 데이터를 빠르게 불러와 보고 있으므로, 마치 초고속 인터넷을 사용하는 것처럼 느끼도록 할 수 있다.