그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록DataFetching
DataFetching

TanStack Query를 왜 쓰나요?

실무4/5
설계4/5
인간3/5
기초2/5

면접관의 질문 의도

장점만 외워 왔는지, 아니면 캐시 키 설계와 클라이언트 상태 라이브러리와의 경계까지 같이 고민해 봤는지를 가른다.

큐레이션 답변

학습 자료

TanStack Query는 서버 상태를 가져오고 동기화하는 반복 로직(로딩·에러·재시도·캐시·무효화)을 한 곳에서 다루게 해 주는 라이브러리다. 동일 쿼리 중복 요청 제거, staleTime 기반 재요청 제어, 백그라운드 refetch, mutation 이후 invalidate 같은 패턴을 일관된 규칙으로 운영할 수 있어 화면 수가 늘어도 유지보수성이 흔들리지 않는다. 단 쿼리 키 설계가 엉성하면 캐시 충돌이나 stale 데이터 버그가 따라 붙는다. 핵심 가치는 "코드량 감소"보다 "서버 상태 일관성을 한 규칙으로 정렬한다"는 쪽이다.

좋은 답변 구조

  1. 01서버 상태와 클라이언트 상태를 구분하는 관점에서 출발한다
  2. 02TanStack Query가 표준화해 주는 것(캐시·재요청·무효화·중복 제거)을 구체적으로 나열한다
  3. 03쿼리 키 설계와 invalidate 규칙이 잘못됐을 때 생기는 문제(캐시 충돌, stale 데이터)로 한계를 짚는다
  4. 04useEffect로 직접 가는 경우와 비교해 "언제 이걸 쓸지" 기준을 마무리한다

자주 실수하는 포인트

장점만 나열하고 쿼리 키 설계가 어긋날 때 생기는 캐시 충돌을 언급하지 않는다
Redux·Zustand 같은 클라이언트 상태 라이브러리의 대체재로 잘못 설명한다
staleTime과 gcTime을 같은 개념으로 섞어 설명한다
서버 상태가 단순한 화면에도 "무조건 도입"이 정답이라고 단정한다

실무 맥락

  • 화면마다 같은 API를 다른 컴포넌트가 요청해 중복 호출이 누적되는 SPA
  • 포커스 복귀나 네트워크 회복 시 데이터가 어긋나 새로 고침으로 우회하는 운영 상황
  • mutation 이후 여러 화면의 목록·상세를 함께 무효화해야 하는 어드민이나 SaaS

본인 경험에 녹이는 힌트

useEffect 기반 fetch 로직을 TanStack Query로 옮기며 중복 요청과 staleness 버그가 줄어든 경험이 있다면 도입 이유의 근거로 풀어낼 수 있다

쿼리 키 설계 실수로 캐시가 꼬여 본 경험이 있다면 "key가 곧 캐시 식별자"라는 원칙으로 일반화할 수 있다

mutation 이후 invalidate 전략을 팀에서 합의해 본 경험이 있다면 서버 상태 일관성 관리 이야기로 자연스럽게 이어갈 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1쿼리 키를 어떻게 설계하면 캐시 충돌을 줄일 수 있나요
Q2staleTime과 gcTime은 각각 어떤 기준으로 잡나요
Q3TanStack Query와 Redux 같은 클라이언트 상태 라이브러리는 역할을 어떻게 나누나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문