
최근 프로젝트에 서버 상태 관리 라이브러리로 react-query를 이용했다.
이 글은 기술적 의사결정에 의한 기술/스택 채택을 담은 글이다.
내가 직접 이용하지 않은 react-query의 기능들도 있지만 경험과 학습을 동시에 진행해보고자 한다.

서버 상태 관리를 위한 다양한 라이브러리가 있다.
대표적으로 Redux Toolkit + RTK Query, Apollo Client, SWR가 존재한다.
나는 왜 React-Query를 이용했고 어떤 장단점이 있는지 살펴보자.
react-query는 데이터 fetching, caching, 동기화, 서버 데이터 업데이트등을 쉽게 만들어 주는 라이브러리이다.
즉, 리액트에서 서버 상태 관리를 쉽게할 수 있도록 지원하는 라이브러리이다.
Boiler Plate code를 방지할 수 있다. 이는 유지/보수와 가동성 측면에서 이점이 있다는 말이된다.caching을 통해서 데이터를 효율적으로 핸들링하기 때문에 동일한 데이터 중복 요청을 줄이고 애플리케이션의 속도를 향상시킨다. caching된 데이터는 백그라운드에서 자동으로 업데이트 될 수 있고, 이를 통해서 항상 최신의 데이터를 볼 수 있다.Garbage Collection(GC)을 이용하여 서버 쪽 메모리를 관리해준다.Pagenation 및 무한 스크롤(infinite scroll) 도구를 지원한다.Boiler Plate code각 라이브러리의 장단점을 고려했을 때 내가 프로젝트에 react-query를 사용한 이유는 아래와 같다.
무한 스크롤링/페이지네이션 도구(useInfiniteQuery)를 제공하는 것을 확인하고 서버 상태 관리 이외에 프로젝트에 유용하게 사용할 수 있는 부가 기능을 활용하기 위해Mutation)