두 시간의 역할 차이로 푸는 결
둘을 저는 언제 새로 받느냐 대 언제 버리느냐로 가릅니다. staleTime은 받아 둔 데이터를 얼마 동안 신선하다고 믿고 다시 안 받을지이고, gcTime은 아무도 안 쓰는 데이터를 메모리에서 얼마 뒤 치울지입니다. 즉 하나는 재요청 시점, 하나는 메모리 정리 시점이라 보는 게 다릅니다. 설정은 데이터 성격에 맞춥니다.
자주 안 바뀌는 목록은 staleTime을 길게 줘 불필요한 재요청을 줄이고, 실시간성이 중요한 값은 짧게 줘 항상 최신을 보게 합니다. gcTime은 화면을 들락거릴 때 매번 다시 안 받게 staleTime보다 여유 있게 둡니다. 학부 프로젝트에서 staleTime을 0으로 둬 화면 이동마다 깜빡이며 다시 받던 문제를 겪고 이 기준을 세웠습니다. 다만 길게 잡으면 옛 데이터가 보이는 대가가 있어, 신선도가 중요한 데이터엔 짧게 둡니다.