React-Query 살펴보기
React의 Server State 관리 라이브러리
React-Query는 React앱에서 비동기 로직을 쉽게 다루게 해주는 라이브러리입니다. 그동안 제가 React로 개발할 때 가장 많이 써왔던, Redux와 Saga를 이용해 비동기 관련 로직들을 관리하는 것과 꽤나 다른 관점에서 비동기 로직들을 바라보고, 유용한 기능을 많이 제공하고 있어 매우 흥미로웠습니다. 다만 아직 한국어 자료 는 많이 없는 것 같아서, 이 포스팅이 React-Query를 한번 살펴보고 싶으신 분들께 도움이 되었으면 합니다.
포스팅의 내용은 모두 React Query Docs의 내용과 제 사견으로 이루어져 있습니다.
굉장히 러프하게 정리한 내용을 블로그 글로 바로 옮겨서, 기존 블로그 포스팅과 말투도 좀 다르고 이해하기에 부족하거나 빠진 내용이 있을 수 있습니다. 지적 부탁드립니다!
요약 + 느낌
- 비동기 요청의 데이터 무결함에 대한 책임을 개발자가 아니라 React 앱 자체가 책임지게 하는 라이브러리
- 비동기 요청의 무결함 : 비동기 요청 데이터가 view에서 필요할때, 그 전에 비동기 요청이 동작하여 데이터를 참조할 수 있는 상황을 만듬
- 과정이 아닌 결과의 무결함 : 대부분의 경우 요청, 요청 완결 직후 데이터 참조 혹은 예외처리가 이루어졌던 비동기 요청의 관행?에서 벗어나 라이브러리가 알아서 캐싱, 리패칭을 해내면서 요청 시점이 데이터 참조 시점 직전이 아니더라도 view에서 데이터가 필요할때 최신 데이터를 참조할 수 있음을 보장함
- Context API : context를 사용해 비동기, server state를 관리하는 전역 계층을 제공해 비동기 요청을 관리.
- 작은 보일러플레이트 : saga에서처럼 비동기 관련한 성공, 실패 액션 하나하나를 모두 선언하여
장황하게 정리할 필요가 없음.
useQuery