🏦

상태관리

Front-end 작업을 하면서 상태관리는 필수다. 이러한 상태관리를 도와주는 라이브러리들이 있다. 대표적인 라이브러리들을 둘러오보고 겉핥아보자

전역 상태 관리를 왜 사용하는가?

상태 관리 라이브러리는 사실 무조건 필요하지는 않다. 충분히 리덕스, Mobx 가 없어도 좋은 앱을 만들 수 있다. 하지만 규모가 큰 앱에서는 있는게 확실히 편하다!
(React 기준으로) 만약 상태관리 라이브러리가 없다면 컴포넌트가 지닌 setState 를 통해서 열심히 상태를 조합하고, 이를 여러 컴포넌트를 거쳐서 props 로 전달해주고 하는 등의 번거로운 작업들을 힘겹게 수행해야할 것이다. 그리고 복잡한 상태 업데이트 로직들을 컴포넌트로부터 분리할 수 있고, 이를 모듈화 하여 보기 쉽게 정돈할 수 있다는 장점도 있다 ⇒ 유지 보수성의 향상
React 에서 Context API 가 추가되면서 글로벌 상태관리를 조금 더 쉽게 가능하게 되었다. 하지만 여전히 Redux, Mobx 와 같은 라이브러리는 사용해볼만하다고 생각된다. 그 이유는
1.
이미 리덕스, Mobx 와 같은 상태관리 라이브러리를 사용하는 것이 익숙하고, 또 여러 프로젝트에서 이미 사용되고 있기 때문이다.
2.
상태관리 라이브러리와 함께하는 여러 미들웨어(특히 리덕스)와 같은 강력한 기능은 Context API 가 대체할 수 없다 (redux-saga, redux-thunk 등등...)
만약 onDoSomething 이라는 작업이 something 이라는 변수에 변화를 준다면 F 컴포넌트까지 컴포넌트가 변경되는 과정은 멀고도 험난하다. 전역 상태 관리를 사용하지 않으면 이렇게 힘든 작업이 된다.

예시 프로젝트

결론

사실은 위 네 가지 모두 같은 기능을 구현할 수 있다. 다만 어떤 라이브러리를 선택하느냐에 따라 개발 방법과 개발할 때 집중하게 되는 것은 크게 다를 것이다. 내 프로젝트와 우리 팀에 어떤 라이브러리가 더 적합한가는 잘 생각해보고 선택하면 좋을 것이다.

참고

velopert 님 사랑합니다