redux vs react-query
`react-query`와 `redux`는 React 애플리케이션에서 데이터를 관리하는 데 사용되는 라이브러리이지만, 주요 사용 목적과 핵심 기능이 다릅니다. 이 둘의 차이점을 이해하면 왜 많은 개발자들이 서버 데이터를 관리하기 위해 `redux` 대신 `react-query`를 선택하는지 이해할 수 있습니다. ### Redux - **전역 상태 관리**: Redux는 애플리케이션의 전역 상태를 관리하는 데 사용됩니다. 그것은 중앙 집중식 저장소에서 애플리케이션의 모든 상태를 관리하도록 설계되었습니다. - **명시적**: Redux는 상태 변화를 위해 액션과 리듀서를 사용하며, 상태 변화 과정이 명시적입니다. - **미들웨어**: 다양한 미들웨어를 통해 비동기 작업, 로깅, 디버깅 등을 지원합니다. - **캐싱 및 데이터 동기화 미포함**: Redux 자체는 API 콜의 캐싱이나 데이터 동기화 기능을 제공하지 않습니다. 이러한 기능을 구현하기 위해서는 추가적인 미들웨어나 라이브러리가 필요합니다. ### React-Query - **서버 상태 관리**: React-Query는 서버 데이터를 가져오기, 캐싱, 동기화, 백그라운드 리프레시와 같은 작업을 자동화하는데 중점을 둡니다. - **자동 캐싱**: 데이터를 자동으로 메모리에 캐싱하고, 시간이 지나면 캐시를 무효화합니다. - **백그라운드 동기화**: 애플리케이션이 포커스될 때 자동으로 데이터를 최신 상태로 동기화할 수 있습니다. - **별도의 상태 관리 필요 없음**: 상태를 관리하는 별도의 구조나 로직 없이 API 결과를 직접 사용할 수 있습니다. ### 그래서 Redux 대신 React-Query를 사용하는 이유는? 1. **간소화된 데이터 페칭 로직**: Redux에서 API를 호출하고 데이터를 저장하려면 여러 액션, 리듀서, 그리고 종종 미들웨어 (예: redux-thunk, redux-saga)가 필요합니다. 반면, React-Query는 이러한 프로세스를 대폭 단순화합니다. 2. **내장된...