redux-observable은, 이미 combineEpics()으로 묶여버린 epic들을 다시 combineEpics()로 묶을 수 없다... redux에서 combineReducers()를 중첩해서 트리구조로 리듀서를 구성하면서 아름답다고 느꼈는데, epic들은 트리구조로 구성할 수 없는건가? 실망이야 근데 정말인가?

업무용으로는 redux-saga를 쓰고 있고 Rx를 공부하기 위한 동기부여로 개인 프로젝트에서 redux-observable을 사용해보고 있는데 확실히 Rx가 어렵다. 뇌에서 쥐가 나는 기분. 하지만 조금만 공부해봐도 정말 강력하다는 걸 알겠다.

이광근님의 <컴퓨터과학이 여는 세계> 책에서는 함수형 프로그래밍을 눈사람에 비유하는 부분이 나온다. 눈사람 안에 눈사람이 있는... 마트료시카같이 비유했는데 Rx를 공부하면서 그게 무슨 뜻인지 조금 감이 오는 것 같다.

리덕스 모듈마다 epic들을 배열로 만들고, 그 상위 모듈에서 다시 배열들을 합쳐서 최종적으로 1차원 배열에 담아 root 모듈에서 combineEpics()를 호출하는 식으로 트리구조로 구성했다. 근데 이번엔 SSR이 문제다. Nextjs의 with-redux-observable 샘플을 보니 페이지마다 getInitialProps에서 rootEpic을 호출해줘야 한다. redux-saga 만세. 배우고 쉽고(비교적) 트리 구조도 쉽게 구성할 수 있고 테스트하기도 쉽고 SSR도 문제 없는 redux-saga 만세