Redux Toolkit을 사용하는 이유
지금까지 Redux를 배우면서 Context를 대체할 좋은 방법이라고 생각을 했다.
하지만 이러한 Redux에도 여러가지 문제점이 있다고 한다.
그래서 그 문제점을 생각하면서 Redux를 사용하고 문제점을 해결할 수 있는 방법인 ‘Redux-Toolkit’의 사용 이유를 명확히 알기 위해 게시물을 작성한다.
Redux의 문제점? 🤔
대규모의 애플리케이션에서 Redux를 사용하면 당연히 Redux의 하나의 저장소에 많은 State들이 담길 것이다.
Redux가 관리해야할 State가 많아질수록 사용자 또한 많은 부분에서 비용이 소모된다.
그래서 기존의 Redux를 사용하면 어떤 문제점이 있는지 알아보도록 하자.
1. action
객체의 type
프로퍼티(식별자)의 ‘오타’에 신경을 써야한다.
Reducer 함수가 고유의 값을 담은 type
프로퍼티를 가진 action
객체를 전달받았을 때 type
의 값으로 업데이트로 수행할 작업을 결정한다고 했었다.
그런데 dispatch할 때 전달받은 action
객체의 식별자(type
의 값)의 값에 오타가 있다면 Reducer 함수가 처리하지 못한다.
당연히 오타인 식별자를 찾을 수 없기 때문에 결국엔 기존의 State를 반환할 것이다.
특히 대규모 애플리케이션에서 다른 개발자와 협업을 하면서 Redux에 추가될 식별자는 정말 많아질 것이다.
action이 많아지면 당연하게 식별자의 충돌이 발생할 가능성이 높아지기 마련이다.
2. 하나의 저장소에서 관리하는 데이터의 양이 많아진다.
Redux는 단 ‘하나의 저장소‘를 가진다.
그래서 모든 데이터는 이 저장소로 모두 저장이 되고 업데이트가 되는데, 이 업데이트하는 과정에서 Reducer 함수를 통해 반환되는 일부 데이터만 업데이트된 State를 얻기 위해 변경하지 않을 데이터도 계속해서 다시 작성해야하는 번거로움이 있다.
이것은 작은 규모의 애플리케이션은 문제가 되지 않지만 대규모의 애플리케이션에서는 문제가 될 수 있다.
왜냐하면 Reducer 함수의 길이가 너무 길어지면서 Redux의 저장소 파일이 유지하기 어려울만큼 많은 용량을 차지할 수도 있다.
3. State 불변성 문제
Reducer 함수가 반환하는 State 객체는 ‘항상 새로운 State Snapshot‘이여야 한다.
즉, 이미 존재하는 State를 함부로 직접 변경시킬 수 없다.
특히 반환하는 새로운 State 객체에 중첩된 객체나 배열처럼 복잡한 데이터가 있다면 이런 데이터를 실수로 변경하면서 문제가 발생할 가능성이 있다.
Redux의 고질적인 문제 해결을 위해 나타난 Redux-Toolkit 🌈
‘Redux-Toolkit’은 React-Redux 개발팀이 개발한 써드 파티 패키지이다.
이것은 Redux를 더 편리하고 쉽게 작동할 수 있게 도와준다.
댓글남기기