Skip to content

redux를 버리고 mobx로 간 이유

나도 redux를 고집했었다.
redux를 해야 뭔가 정통파 느낌에 react를 제대로 핸들링할 수 있을 것 같았다.
mobx는 뭔가 사파같은 느낌에 이걸 쓰면 나중에 서비스가 커지면 문제가 생길 것 같았다.
이게 커뮤니티에서 redux와 mobx의 느낌적인 느낌일 것이다.

내가 redux를 버리고 mobx로 간 이유는 아래와 같다.

redux

  1. mapStateToProps, mapDispatchToProps = (dispatch) => ()
    올드하다. 불변성을 위해 코드를 낭비하는 느낌이다.
    이런건 라이브러리로 제공되고 매서드는 심플하게 제공되야 하는 것 아닌가?
    이렇게밖에 구현이 안 되나 하는 생각을 지울 수 없었다.

  2. redux 확장 모듈
    saga, immutable 등등 적어도 2,3 개 정도의 확장 모듈은 필수적이다.
    react를 배우기 위해 하루가 필요하다면 redux는 10일쯤 필요한 느낌이었다.
    배보다 배꼽이 더 크다.

mobx

  1. 옵저버블의 편리함
    역시 최신 기술이다.
    RxJS와 비슷한 느낌이며 편리하고 직관적이다.

  2. 옵저버블을 함수 표현으로도 사용할 수 있다.
    즉 결과가 값을 옵져블할 수 있고, 옵져블안의 옵져블(응?)도 사용할 수 있다.

  3. RealWorld
    그러다 아래 소스를 보게되었다. (mobx팀 추천 소스다.)
    https://github.com/gothinkster/react-mobx-realworld-example-app
    스토리지 소스를 봤는데, 직관적이고 잘 만들어져 있다.
    내가 다시 만들어도 이렇게 꼼꼼하게 작성할 수는 없을 것이다.

그래서 redux를 버리고 mobx로 가볍게 넘어갔다.

mobx 적용이 고민 중이라면 아래 소스를 참조하기 바란다.
https://github.com/gothinkster/react-mobx-realworld-example-app/tree/master/src/stores

혹자는 말한다.
대형 서비스에서는 redux 작은 규모의 서비스는 mobx라고
여기서 말하는 대형 서비스는 “facebook”이다.

facebook을 만들지 않을 거라면 mobx는 너무도 합리적인 선택이다.

Published inREACT