[TIL] Redux Toolkit

강인웅·2022년 1월 16일
0
post-custom-banner

기업협업을 나왔을 때 전역상태관리 라이브러리로 리덕스 툴킷을 사용한다는 얘기를 사수분께 들었다. 처음 리덕스라고 들었을 때 그냥 전역상태해주는 편리한 툴이라고 만만하게 봤었다가 실제로 사용해보며 러닝커브가 꽤 높다는 것을 느꼈다.

Redux Toolkit이란

사용이유

Redux Toolkit은 Redux를 더 사용하기 쉽게 만들기 위해 Redux에서 공식 제공하는 개발도구이다. Redux Toolkit은 아래와 같은 Redux의 문제점을 보완하기 위해 등장하였다.

Redux 사용시 문제점

  • 저장소 구성의 복잡성
  • 많은 패키지 필요성(의존성)
  • 한 작업 시 필요한 수 많은 코드양(boilerplate)

실제로 리덕스로 전역상태관리를 하기 위해서는
1. 액션타입정의
2. 액션함수생성
3. 리듀서 생성
4. 스토어 생성
5. 스토어에 리듀서 등록
6. Provider 태그에 Store 프롭스 등록

이 단계를 거쳐야 각 컴포넌트에서 전역으로 관리되는 상태들을 useSelector 훅을 통해 끌고와 사용할 수 있다. 많아지는 액션을 관리하기 위해 redux-actions을, 불변성 보존을 위한 immer, store값을 효율적으로 핸들링하여 불필요한 리렌더링을 막기 위해 reselect, 비동기 작업을 위한 thunk 와 saga 등 리덕스의 유효한 기능을 사용하기 위해 4~5개의 라이브러리를 사용해야 했다.하지만 Redux Toolkit은 내장된 기능으로 saga를 제외한 위의 모든 기능을 제공한다.

맨처음 이 리덕스의 덕스구조를 이해하고 활용해보며 투두리스트 CRUD를 만드는데 5일의 시간이 걸렸던 것 같다.

ducks구조의 리덕스로 투두리스트를 한번 만들어 보고난 후에 리덕스 툴킷을 활용해 투두리스트를 구현해보니 훨씬 간단해진 것을 느낄 수 있었다. 실제로 리덕스 툴킷 공식사이트를 가보면 심플이라고 가장 첫번째로 적혀있다.

내가 프로젝트를 진행하며 느낀 리덕스 툴킷의 장점으로는

  1. 리덕스툴킷에서는 createSlice 함수를 통해 저 위에 있는 순서(1,2,3)를 한 가지로 줄여줌으로써 총 4단계로 줄여준다.
  2. 리덕스를 안정적으로 활용하기 위해서는 3가지 규칙을 지켜주어야 한다
    (1) 단일 스토어 사용
    (2) 불변성 유지
    (3) 리듀서는 순수한 함수
    하지만 리덕스 툴킷에서는 (2)번 처리를 알아서 해주기 때문에 굳이 spread 연산자나 concat을 사 용하지 않아도 된다는 편리성 또한 가지고 있다.
  3. 적은 코드에 많은 작업을 수행 가능

이와 같이 총 3가지가 있다.

profile
Developer
post-custom-banner

0개의 댓글