서버 상태(서버 제공 데이터)관리의 복잡성 극복 위해 사용하는 라이브러리
비동기 데이터 관리의 복잡성 줄여줌
데이터 가져오기, 갱신, 무효화 등의 작업 선언적으로 처리할 수 있어 코드 간결해지고 유지 보수 용이해짐
에러 및 로딩 상태 관리 단순화
useQuery와 useMutation 훅 사용 시 서버 데이터와 관련된 로딩, 성공, 실패 상태 명확하고 직관적으로 처리할 수 있어 로직 깔끔해짐
즉 TanStack Query는 서버 상태 관리에서 발생하는 복잡한 문제 해결, 개발자가 비즈니스 로직에 더 집중할 수 있도록 도와줌
========================
단점으로는
1. 캐싱 전략 관리의 복잡성
강력한 캐싱 기능을 제공하는 반면 staleTime, gcTime 같은 옵션 잘못 설정시, 데이터 갱신 타이밍이 적절하지 않아 최신 데이터가 노출되지 않거나 불필요한 요청이 발생할 수 있음
초기 학습 곡선 존재
쿼리 키 설계, 데이터 무효화 등 다양한 개념 이해하고 적절히 활용해야 하므로 초기에 학습해야 하는 지식의 양이 많음
클라이언트 상태와 서버 상태 간 의존 관계 복잡할 때
TanStack Query만으로 해결 어려움
이땐 redux, zustand 등 별도의 상태 관리 라이브러리가 필요함