전역상태 관리에 있어 상태관리 라이브러리 vs 패칭 라이브러리의 캐시기능

김현준·2024년 3월 5일
0

리액트 이모저모

목록 보기
1/27

리코일과 SWR을 예시로 들어보자.
SWR (Stale-While-Revalidate)는 데이터를 캐싱하고, 동시에 백그라운드에서 데이터를 업데이트하며, 필요 시 재사용하는 훌륭한 데이터 패칭 라이브러리이다. SWR을 Recoil과 같은 상태 관리 라이브러리 대신 사용하는 데는 몇 가지 장점이 있다.
그러나 두 접근 방식 모두 장단점이 있으므로, 상황에 따라 적절한 도구를 선택하는 것이 중요하다.

SWR의 장점

  • 자동 캐싱 및 동기화:

    • SWR은 동일한 키를 사용하는 컴포넌트 간에 데이터를 자동으로 공유하고 캐싱한다. 이는 서버 요청을 최소화하면서 최신 데이터를 유지할 수 있게 한다.

    • 데이터를 불러온 후 캐싱하고, 다른 컴포넌트에서 동일한 키를 사용할 때 캐싱된 데이터를 즉시 사용할 수 있어 효율적이다.

  • 백그라운드 데이터 갱신:

    • SWR은 데이터가 갱신되는 동안 사용자에게 캐싱된 데이터를 제공하며, 백그라운드에서 새로운 데이터를 가져와 갱신한다. 이를 통해 사용자는 항상 최신 데이터에 접근할 수 있다.
  • 간단한 API:

    • SWR의 API는 간단하고 직관적이다. 데이터 패칭, 에러 처리, 로딩 상태 관리를 쉽게 할 수 있다.

SWR과 상태 관리 라이브러리의 비교

  • 속도:

    • SWR은 이미 캐싱된 데이터를 즉시 반환하므로, 상태 관리 라이브러리를 사용하는 것보다 빠르게 데이터를 제공할 수 있다.

    • 반면, 상태 관리 라이브러리는 상태가 업데이트될 때마다 관련 컴포넌트를 리렌더링해야 하므로, 리렌더링에 따른 오버헤드가 발생할 수 있다.

  • 데이터 일관성:

    • SWR은 주로 데이터 패칭과 캐싱에 중점을 두고 있으므로, 복잡한 상태 로직을 관리하기에는 적합하지 않을 수 있다.
    • 상태 관리 라이브러리는 컴포넌트 간의 상태를 일관되게 유지하는 데 매우 유용하다. 모든 상태 변경은 중앙에서 관리되며, 예측 가능한 방식으로 이루어진다.
  • 단순성 및 유지보수:

    • SWR은 데이터 패칭과 캐싱을 단순화하는 데 매우 효과적이다. 상태 관리 라이브러리를 도입하지 않고도, 필요한 곳에서 데이터 패칭과 캐싱을 쉽게 구현할 수 있다.

    • 반면, 전역 상태 관리가 필요한 경우 상태 관리 라이브러리를 도입하는 것이 더 나은 선택일 수 있다.

결론

  • SWR:

    • 캐싱된 데이터를 재사용하고, 백그라운드에서 데이터를 갱신하는 데 매우 유용하다.

    • 데이터 패칭과 캐싱을 단순화하고, 동일한 키를 사용하는 컴포넌트 간에 데이터를 자동으로 공유할 수 있다.

    • 단순한 데이터 패칭과 캐싱 요구사항에 적합하다.

  • 상태 관리 라이브러리:

    • 복잡한 상태 로직을 관리하고, 컴포넌트 간의 일관된 상태를 유지하는 데 유용하다.

    • 전역 상태 관리가 필요한 경우에 적합하다.

따라서, 데이터 패칭과 캐싱이 주된 요구사항이라면 SWR을 사용하는 것이 더 효율적일 수 있다. 그러나 애플리케이션의 상태를 중앙에서 관리하고, 일관되게 유지해야 하는 경우 상태 관리 라이브러리를 사용하는 것이 더 나은 선택이 될 수 있다.

그러나 속도면에서 무시하지 못 하므로 가능하면 SWR을 이용해서 전역산태 관리를 하는게 좋아보인다.

추가로 보면 좋은 자료

profile
기록하자

0개의 댓글

관련 채용 정보