[TIL] Redux가 필요한 이유

양주영·2021년 12월 27일
0

TIL

목록 보기
12/13


우리는 redux 를 들어본 적이 있다. 리덕스는 전역 상태 를 생성하고 관리하기 위한 상태관리 라이브러리이다.
오늘은 공부했던 것 토대로 redux 의 특징 세 가지와 필요한 이유에 대하여 살펴보자.

✔️ redux의 세 가지 원칙

1. Single source of truth

동알한 데이터는 항상 같은 곳에서 가지고 온다. 애플리케이션의 모든 상태는 하나의 저장소 안에 하나의 객체 트리 구조로 저장된다.

기존에 내가 작성했던 코드의 방식은 Single source of truth가 컴포넌트 트리의 최상단에 위치해서 stateprops를 통해 내려주었다. 이를 Props Drilling이라고 한다. Props Drilling을 피하기 위한 방법은 여러가지가 있는데, 그 중 하나가 리덕스를 사용하는 것이다. 리덕스의 가장 큰 특징 중 하나는 single source of truth가 컴포넌트 트리와 별개인 곳에 존재한다는 것이다. 리덕스를 통해 state를 관리하면 App에서 state를 저장하지 않아도 된다.

2. State is read-only

리덕스에서는 액션이라는 객체를 통해서만 상태를 변경할 수 있다. 모든 상태 변화는 중앙에서 관리되며 모든 액션은 엄격한 순서에 의해 하나하나 실행된다. 액션은 그저 평범한 객체이다.

3. Changes are made with pure functions

액션에 의해 상태 트리가 어떻게 변화하는 지를 지정하기 위해 순수 리듀서를 작성해야 한다.
리듀서는 그저 이전 상태와 액션을 받아 다음 상태를 반환하는 순수 함수이다.



✔️ redux가 필요한 이유

  • 위에서 말했던 것처럼 여러 컴포넌트가 동일한 상태를 보고 있을 때 유용하다. 컴포넌트 트리의 최상단에 위치해서 stateprops로 내려주는 Props Drilling을 피할 수 있다. 그러므로 상태 구성 요소들을 보다 효율적으로 관리할 수 있게 된다.
    즉, 리덕스를 사용하면, 상태값을 컴포넌트에 종속시키지 않고, 상태관리를 바깥에서 할 수 있게 해준다.

  • 상태관리하는 로직을 담당하는 폴더 구조를 생성하여 모듈화를 해주면 코드 가독성에 좋고, 관리가 쉽다.

  • 또, 데이터를 관리하는 로직을 컴포넌트에서 빼면, 컴포넌트는 정말 뷰만 관리할 수 있게 된다. 그렇다면 코드는 훨씬 깔끔해져 유지보수에 용이하다.

이제 context API와 다른점에 대해 알아봐야겠다.

profile
뚜벅뚜벅

0개의 댓글