TIL 110. Redux의 주요 개념과 비교

isk·2023년 4월 23일
0

TIL

목록 보기
111/122
post-custom-banner

Redux는 JavaScript 애플리케이션의 상태를 효과적으로 관리하기 위한 상태 관리 라이브러리로,
주요 개념들과 그들 간의 연결 관계는 다음과 같다

  • Store:
    Redux에서 상태가 저장되는 곳으로, 애플리케이션의 모든 상태를 단일한 객체 트리로 관리한다.
    상태를 변경하는 유일한 방법은 액션을 디스패치하여 상태를 수정하는 것.
  • Action:
    애플리케이션에서 상태 변경을 위해 발생하는 이벤트 또는 동작을 나타내는 객체다.
    주로 type 필드를 갖고 있으며, 상태를 변경할 때 사용된다.
  • Reducer:
    액션을 통해 상태를 변경하는 로직이 작성되는 곳으로,
    현재 상태와 액션을 입력으로 받아 새로운 상태를 반환하는 순수한 함수다.
    액션의 타입에 따라서 상태를 어떻게 업데이트할지를 결정한다.
  • Dispatch:
    액션을 스토어에 전달하는 메소드로, 상태를 변경하고 싶을 때 액션을 디스패치하여 상태를 업데이트할 수 있다.

Redux와 Recoil은 모두 상태 관리를 위한 JavaScript 라이브러리로, React 애플리케이션에서 사용된다.
그러나 둘 사이에 몇 가지 차이점이 있다

  1. 중앙 집중화 vs 분산화:
  • Redux는 중앙 집중화된 상태 관리를 사용하여 애플리케이션의 상태를 단일 스토어에 저장하고 관리한다.
  • Recoil은 분산화된 상태 관리를 사용하여 각 컴포넌트마다 독립적인 상태를 가질 수 있다.
  1. 불변성 (Immutability) vs 가변성 (Mutability):
  • Redux는 상태의 불변성을 유지하고, 상태를 직접 변경하는 것이 아닌
    복사본을 만들어 새로운 상태를 반환하는 방식으로 업데이트한다.
  • Recoil은 상태의 가변성을 허용하며, 상태를 직접 변경할 수 있다.
    이는 Recoil이 더 자유로운 상태 변경을 허용하지만,
    Redux가 상태 변경에 대한 예측 가능성과 디버깅을 향상시키는 데 도움이 된다는 점에서 차이가 있다.
  1. 보일러 플레이트:
  • Redux는 상태, 액션, 리듀서, 디스패치 등의 개념이 있어 초기 설정이 복잡할 수 있다.
  • Recoil은 더 간단하고 직관적이기 때문에 초기 설정이 더 간단할 수 있다.
  1. Time Travel:
  • Redux는 Time Travel 기능을 제공하여 상태 변화를 추적하고 디버깅을 도와준다.
  • Recoil은 이러한 Time Travel 기능을 제공하지 않는다.
post-custom-banner

0개의 댓글