질문 110 · 실전 면접 답변
TanStack Query(React Query)는 일반 클라이언트 상태 관리와 무엇이 다른가요?
이렇게 답해 보세요 (핵심 답변)
TanStack Query는 브라우저 내부에서 정해지는 클라이언트 UI 상태가 아니라, 서버가 원본을 소유한 비동기 '서버 상태(Server State)'의 캐싱과 동기화를 전문으로 다루는 도구입니다. queryKey를 기준으로 데이터를 식별해 로딩·에러 상태 관리, 백그라운드 재검증, 캐시 무효화(invalidation), 중복 요청 제거를 선언적으로 처리해 주어 복잡한 useEffect 패칭 코드를 크게 줄여 줍니다. 이때 데이터가 신선한지 판단하는 staleTime과 언마운트된 캐시를 메모리에 보관하는 gcTime(cacheTime)의 역할을 구분해 서비스 특성에 맞게 설정합니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 서버 데이터는 내가 모르는 사이에 다른 사용자에 의해 바뀔 수 있는 '특정 시점의 스냅샷'이므로, 단순 저장보다 언제 다시 검증하고 갱신할지가 핵심입니다.
- 필터나 페이지 번호 같은 요청 파라미터를 queryKey 배열에 빠짐없이 포함해야 서로 다른 조건의 응답이 같은 캐시에 덮어써지지 않습니다.
면접에서 자주 하는 실수
TanStack Query를 도입했다고 해서 모달 열림 여부나 다크 모드 같은 순수 클라이언트 상태까지 억지로 query 캐시에 넣어 관리하려 해서는 안 됩니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 110번을 바탕으로 질문과 답변을 새로 정리했습니다.