TanStack Query에서 stale time과 gc time은 데이터를 캐싱하고 관리하는 데 중요한 두 가지 설정이다.
Stale time은 데이터를 처음 가져온 후 그 데이터를 '신선한' 상태로 간주하는 시간을 말한다. 이 기간 동안에는 같은 데이터에 대한 추가적인 네트워크 요청이 일어나지 않고, 캐시에 저장된 데이터를 그대로 사용하게 된다. 예를 들어, stale time을 5분으로 설정하면, 데이터를 가져오고 나서 5분 동안은 이 데이터가 '신선하다'고 판단해서 네트워크 요청 없이 캐시된 데이터를 계속 사용한다. 기본값은 0으로 설정되어 있다.
GC time은 데이터가 '오래된' 상태가 된 이후에도 캐시에 얼마 동안 남아 있을지를 정하는 시간이다. Stale time이 지나면 데이터는 '오래된' 상태가 되지만, gc time이 설정되어 있으면 지정된 시간 동안 여전히 캐시에서 그 데이터를 유지하게 된다. 예를 들어, gc time을 10분으로 설정하면, 데이터가 stale 상태가 된 이후 10분 동안 캐시에 남아 있다가 자동으로 삭제된다. TanStack Query에서 기본 gc time은 5분이다.
이러한 설정을 통해 데이터를 더 효율적으로 관리하고, 불필요한 네트워크 요청을 줄이면서도 최신 데이터를 가져올 수 있도록 한다.