0Pricing
React Academy · 강의

SWR과 React Query 비교: 적합한 도구 선택

API 표면, 번들 크기, 사용 사례 적합성 측면에서 SWR과 React Query를 비교합니다.

SWR과 React Query 비교: 적합한 도구 선택은(는) CoddyKit의 무료 React Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 React Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

번들 크기 비교

SWR은 gzip으로 압축했을 때 약 7kb입니다. React Query v5는 약 13kb입니다. 이 크기 차이는 React Query가 제공하는 추가 기능인 쿼리 미리 가져오기, 쿼리 취소, 더 상세한 쿼리 수명 주기, 기본 제공 DevTools를 반영합니다.

크기에 민감한 애플리케이션이나 단순한 가져오기-표시 패턴에서는 SWR의 더 작은 크기가 의미 있는 장점입니다.

SWR의 강점

SWR은 더 단순하고 간결한 API를 제공합니다. 주된 요구 사항이 데이터를 가져와 자동으로 재검증하면서 표시하는 것이라면, SWR은 반복 코드를 거의 작성하지 않고도 이를 깔끔하게 처리합니다.

Vercel이 개발한 SWR은 Next.js와 특히 잘 통합됩니다. getServerSideProps 또는 getStaticProps를 사용한 사전 가져오기와 대체 데이터를 통한 클라이언트 측 재검증을 함께 활용할 수 있습니다.

SWR과 Next.js 통합

사전 가져온 데이터를 SWRConfig의 fallback 옵션 또는 useSWR의 fallbackData 옵션으로 SWR에 전달합니다. SWR은 이 데이터를 초기 캐시 값으로 사용하므로 첫 로드 시 깜박임을 없애면서 백그라운드 재검증을 수행할 수 있습니다.

이 패턴은 Vercel을 사용하는 Next.js Pages Router 애플리케이션에 권장되는 데이터 가져오기 방식입니다.

React Query의 강점

React Query는 쿼리 수명 주기를 더 세밀하게 제어할 수 있습니다. staleTime, gcTime(가비지 컬렉션), refetchOnWindowFocus, 재시도 횟수 및 재시도 지연 시간을 각각 설정할 수 있습니다. onSuccess, onError, onSettled 콜백을 사용하는 변이 시스템도 표현력이 뛰어납니다.

React Query는 AbortSignal을 통한 쿼리 취소도 지원하므로 입력할 때마다 검색하는 사용자 인터페이스에 유용합니다.

무한 쿼리

React Query의 useInfiniteQuery와 getNextPageParam은 무한 스크롤 및 더 보기 패턴에 맞게 설계되었습니다. 페이지 커서 처리를 관리하고 평면형 또는 구조화된 pages 객체를 제공합니다.

SWR에는 비슷한 기능을 제공하는 useSWRInfinite이 있지만, 조금 더 하위 수준의 API이므로 페이지를 더 많이 수동으로 조합해야 합니다.

쿼리 미리 가져오기

React Query에서는 queryClient.prefetchQuery를 사용해 마우스를 올리거나 경로가 변경될 때 쿼리를 미리 가져올 수 있습니다. 컴포넌트가 마운트되기 전에 데이터가 캐시에 저장되므로 즉시 렌더링되는 경험을 제공합니다.

SWR에는 SSR 대체 데이터 외에 기본 제공 미리 가져오기 API가 없습니다. 마우스를 올릴 때 미리 가져오는 기능이 필요하다면 React Query가 더 적합한 선택입니다.

React Query v5의 개선 사항

React Query v5는 useQuery가 isLoading 대신 isPending을 반환하도록 변경하고, 낙관적 업데이트 패턴을 통합했으며, TypeScript 타입 추론을 개선해 API를 단순화했습니다. v5 API는 이전 버전보다 더 깔끔하고 일관적입니다.

React Query를 검토한다면 v4를 배운 뒤 마이그레이션하기보다 처음부터 v5를 대상으로 학습하십시오.

자동 전역 캐시 공유

SWR은 기본값을 위한 SWRConfig 설정 외에 별도의 제공자 설정 없이 키를 기준으로 컴포넌트 전체에서 캐시 항목을 전역적으로 공유합니다. React Query에는 QueryClient 인스턴스를 사용하는 QueryClientProvider가 필요합니다.

빠른 프로토타이핑이나 단순한 애플리케이션에서는 설정이 필요 없는 SWR의 전역 캐시를 더 빠르게 구성할 수 있습니다. React Query의 명시적인 클라이언트는 복잡한 캐시 요구 사항이 있는 대규모 애플리케이션에 더 적합합니다.

SWR을 선택할 때

애플리케이션이 주로 Next.js를 기반으로 하고, 데이터 가져오기 패턴이 단순하며(가져오기-표시-재검증), 번들 크기를 최소화하고 싶거나 팀이 고급 기능보다 API의 단순성을 중시한다면 SWR을 선택하십시오.

대규모 마이그레이션 없이 기존 코드베이스에 점진적으로 데이터 가져오기 라이브러리를 도입하려는 경우에도 SWR은 훌륭한 선택입니다.

React Query를 선택할 때

무한 스크롤, 쿼리 미리 가져오기, 백그라운드 재요청 전략, 여러 단계의 쿼리 의존성 또는 세밀한 캐시 TTL 제어와 같은 복잡한 서버 상태 관리가 필요하다면 React Query를 선택하십시오.

React Query에는 더 활발한 미들웨어 및 DevTools 생태계도 있으며, queryClient를 독립적으로 더 쉽게 테스트할 수 있습니다.

혼합 접근 방식

일부 팀은 두 도구를 모두 사용합니다. 말단 컴포넌트에서 단순한 단일 리소스 가져오기에는 SWR을 사용하고, 미리 가져오기가 필요한 복잡한 다중 쿼리 페이지에는 React Query를 사용합니다. 흔한 방식은 아니지만 팀이 두 API 모두에 능숙하다면 유효한 선택입니다.

하지만 더 일반적으로는 문맥 전환과 두 의존성을 관리하는 추가 부담을 피하기 위해 하나를 선택하고 애플리케이션 전체에 일관되게 적용합니다.

SWR과 React Query의 번들 크기

SWR과 React Query의 번들 크기는 대략 어떻게 비교됩니까?

레슨 요약

SWR(~7kb)은 더 단순하고 Next.js와 자연스럽게 통합되며, 대부분의 가져오기-표시 패턴을 적은 코드로 처리합니다. React Query(~13kb)는 무한 쿼리, 미리 가져오기, 세밀한 수명 주기 콜백, 쿼리 취소와 같은 더 풍부한 기능을 제공합니다.

단순성과 Next.js 프로젝트에는 SWR을 선택하고, 복잡한 서버 상태 요구 사항에는 React Query를 선택하십시오. 두 도구 모두 TypeScript, Suspense, SSR 및 오프라인 패턴을 지원합니다.

자주 묻는 질문

“SWR과 React Query 비교: 적합한 도구 선택” 강의는 무료인가요?

네 — “SWR과 React Query 비교: 적합한 도구 선택” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 React Academy 강의 전체를 잠금 해제할 수 있습니다. React Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“SWR과 React Query 비교: 적합한 도구 선택”에서 뭘 배우나요?

API 표면, 번들 크기, 사용 사례 적합성 측면에서 SWR과 React Query를 비교합니다. 브라우저에서 직접 실행하는 실습 코드로 React Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

React Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 React Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“SWR과 React Query 비교: 적합한 도구 선택” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 React Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 React Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. SWR 핵심 개념: 오래된 데이터 우선 재검증
  2. useSWR 훅: 가져오기, 로딩, 오류 상태
  3. SWR을 사용한 변경과 낙관적 업데이트
  4. SWR과 React Query 비교: 적합한 도구 선택
← React Academy(으)로 돌아가기