less than 1 minute read

React의 상태 관리 라이브러리인 Redux는 유용하지만,

이 프로젝트에서 Redux가 정말 필요한 것인가?

Redux를 ‘사용하기 위해서’ 사용하는게 아닌 ‘필요하기 때문에’ 사용하는 것인지

충분한 고민과, 주의가 필요하다.

그리고 그 Reudx에는 3가지의 원칙이 있다.

Redux의 3원칙

  1. 애플리케이션의 모든 상태는 하나의 저장소 안에 하나의 객체 트리 구조로 저장된다.
    • Store라는 하나의 저장소가 존재하고, 그 안에는 애플리케이션의 모든 상태가 객체 트리 구조로 저장되어 있다.
  2. 상태는 읽기 전용이다.
    • 상태를 변화시키는 유일한 방법은 무슨 일이 벌어지는 지를 묘사하는 액션 객체를 전달하는 방법 뿐이다.
    • 이를 통해 뷰나 네트워크 콜백에서 결코 상태를 직접 바꾸지 못한다는 것을 보장할 수 있다.
  3. 변화는 순수 함수로 작성되어야 한다.
    • 액션에 의해 상태 트리가 어떻게 변화하는지를 지정하기 위해서는 순수 리듀서를 작성해야 한다.
    • 리듀서는 그저 이전 상태와 액션을 받아 다음 상태를 반환하는 순수 함수이다.
    • 순수함수 → 동일한 인자가 주어졌을 때, 항상 동일한 결과를 반환하고, 외부의 상태를 변경하지 않는 함수. 함수 내의 변수 외에 외부의 값을 참조하거나 의존, 또는 변경하지 않는 함수

참고: Redux 공식문서 (https://ko.redux.js.org/understanding/thinking-in-redux/three-principles/)

Updated: