Redux란? 전역상태 관리가 뭘까
2024-05-26 오전 10시 38분
2024-06-26 오전 10시 38분
전역상태 라이브러리

Redux
를 한마디로 표현한다면 전역상태 라이브러리라고 할 수 있다
이러한 전역상태 라이브러리가 왜 필요하고, 어떻게 사용하는지 알아보자.
유독 Redux
가 가이드라인이 잘 작성되어있지 않다.
라이브러리로서 등장한지는 오래되었고
현재는 Redux-toolkit
의 등장으로 문법이 간편화되었지만
공식 doc
는 영어로 되어있어 접근성이 좋지않다. 공식 doc
를 참고하면서 번역하여 쉽게 이해할 수 있게 작성해보겠다.
등장 배경
일반적으로 리액트는 상태변경을 통해서 렌더링을 업데이트하면서 사용자와 상호작용 한다.
이러한 상태를 컴포넌트들이 같이 공유한다고 가정해보자.

간단한 카운트 앱을 도식표로 나타낸다면 위와 같은 동작을 하면서 상태를 공유하게 된다.
이런 경우라면 우리는 크게 문제없이 코드를 작성할 수 있다
그럼 이번에는, 게시글 데이터를 저장하는 컴포넌트를 전역적으로 사용한다고 가정해보자.

간단하게 작성해보았지만, 하나의 데이터를 계속해서 Props
를 내려주는것을 확인할 수 있을 것이다.
이를 리액트에서는 Props Drilling
이라고 칭하며, 좋은 코드라고 할 수 없다.
만약 Props
를 더이상 사용하지 않거나 변동이 발생할경우 거기까지 향하는 모든 코드를 수정해야하고,
이름하나만 바뀌더라도 전체코드를 수정해야한다.
이러한 문제점을 해결하기위해 Redux
와 같은 상태관리 라이브러리가 등장하게 되었다.
왜 리덕스인가 ?
전역 상태관리 라이브러리라고 검색만 하더라도 redux
, recoil
, mobX
, zustand
등
여러가지의 상태관리 라이브러리를 확인할 수 있다. 그중에서 왜 하필 리덕스일까?

1. 사용자가 많다.
라이브러리에서 사용자가 많다는 것
각종 버그에 쉽게 대응하고 사용법을 쉽게 익힐 수 있다는 의미기도 하다.
2. 기업에서 선호한다.
현재 선두 테크기업들은 zustand
로의 마이그레이션을 진행하고 있지만,
아직까지 Redux
를 기반으로 설계되어있는 웹/앱이 많다는 점에서 해당 코드를 읽을 수 있는건 중요하다.
3. 상태관리 라이브러리의 구조는 같다.
모든 상태관리 라이브러리들의 문법이 다르고 용법은 다르지만, 구조적으로는 동일하다.
따라서 Redux
를 잘 이해하고 사용할 수 있다
다른 상태관리 라이브러리도 상황에 맞게 사용할 수 있다는 뜻이다.
사족이지만, 필자도 Zustand
로 전역상태 관리라이브러리를 입문하고, 리덕스를 공부했다.
문법적으로 상당히 까다롭지만, 규격화된 상태관리가 가능하다.
댓글은 포스팅에 도움이됩니다. 적극적인 의견 감사드립니다.