React Query vs SWR, 진짜 고민됩니다
이번에 새 프로젝트 시작하면서 서버 상태 관리 라이브러리 고르고 있어요. React Query랑 SWR 중에서 결정을 못하겠네요. React Query는 기능이 많고 커뮤니티가 큰 반면, SWR은 가볍고 Next.js랑 궁합이 좋다고 들었어요. 저는 주로 대시보드 형태의 앱을 만들 예정이라 실시간 데이터 갱신이 중요합니다. 경험 있으신 분들 조언 부탁드려요.
5 개의 답변
혹시 데이터 패칭 외에 캐싱 전략이나 낙관적 업데이트 같은 기능도 필요하신가요? React Query는 그런 부분이 체계적인 반면, SWR은 미니멀해서 직접 구현해야 할 때도 있어요. 프로젝트 규모에 따라 선택이 갈릴 것 같아요.
저도 비슷한 고민 했었는데, 결국 SWR 골랐어요. Next.js 쓰고 있어서 그런지 설정이 거의 필요 없더라고요. 대시보드라면 useSWRSubscription 같은 훅으로 실시간 처리도 나름 괜찮았습니다. 가벼운 게 장점이에요.
둘 다 써보고 느낀 건, '실시간'이라는 게 진짜 중요하면 차라리 WebSocket이나 SSE를 직접 연결하는 게 낫다는 거였어요. 라이브러리 자체의 폴링 기능은 한계가 있더라고요. React Query나 SWR은 보조 수단으로 쓰시는 걸 추천합니다.
저는 개인적으로 React Query의 Devtools가 너무 좋아서 계속 쓰고 있어요. 대시보드 디버깅할 때 어떤 데이터가 stale인지 바로 보여주니까 실시간 갱신 문제 잡기 좋더라고요. SWR도 좋지만 디버깅은 React Query가 압승.
두 라이브러리 다 써봤는데, 대시보드면 React Query 추천합니다. 실시간 갱신을 위한 refetchInterval이나 웹소켓 연동이 SWR보다 훨씬 직관적이에요. 특히 캐시 무효화 전략이 강력해서 복잡한 데이터 의존성 관리가 편합니다.