RxJS 프로그래밍

Taeksoon Jang
3 min readOct 7, 2018

--

https://bookthumb-phinf.pstatic.net/cover/139/945/13994540.jpg?type=m140&udate=20181002

최근 Reactive Programming(이하 RP) 란 힙한 키워드에 꽂혀 몇몇 자료들동영상을 봤는데 도대체 무슨 일이 벌어지고 있는지 알 수가 없었다. RP란 것이 단순히 라이브러리 API를 익히는 수준이 아니라, 문제를 바라보는 시각 자체를 바꿔야만 하는 것이기 때문에 그렇다(고 한다).

이런 개념을 익히는데는 블로그나 동영상보다는 좀 더 긴 호흡으로 많이 생각해 볼 수 있는 책이 더 낫겠다는 생각이 들어, 이 핑키하고 아기자기하여 소장하는 맛이 있는 책을 골랐다. JVM 환경에서 RP를 적용하려는 계획을 갖고있는데 RxJS 책을 고른 이유는 1) RP의 개념이 언어별로 크게 다르지 않(다고 들었)고, 2) 가장 익숙한 언어가 아닌 언어로 된 책을 볼때면 코드 한 줄도 집중해서 보게 되는 효과가 있어서 그렇다.

(JS 환경에서 적용할 계획은 없어서 4부는 자세히 읽어보지 않았다.)

이 책이 주는 것

- Rx 의 개념

Observable, Subject, Observer, Scheduler와 각종 연산자들의 개념이 적절한 예제와 함께 잘 소개되어있다. API 문서 마냥 각각의 설명을 늘어놓지 않고 친절한 블로그 글처럼 미묘한 동작의 차이점을 이해할 수 있도록 상세한 예제들을 소개해줘서 큰 도움이 된다.

- 1부(RxJS 소개)에 Observable 생성함수 부분을 포함한 것

1부는 RxJS에 대한 큰 틀의 이해를 할 수 있도록 한 부분인데 여기에 Observable 생성함수 내용이 포함되었다. 그래서 이벤트, 배열, 문자열 등 모든 것이 Observable의 item이 될 수 있음을 알게되어 RP를 이해하는데 큰 도움이 되었다.

- 꼼꼼함

연산자를 참 많이 소개해준다. RxJS에 존재하는 모든 API를 담은 것은 아니지만 필자의 경험상 유용하게 쓰였던 것들이 엄선되었으리라 생각한다. 이 부분을 너무 꼼꼼하게 읽다가 나가떨어지지 않도록 주의해야한다.

- 친절함

마치 나처럼 JS가 편하지 않지만 RP 개념을 알기 위한 독자들을 정확히 예상한듯, RP를 설명하는데 필요한 개념들을 친절하게 설명해준다. 이 책을 잘 읽으면 RxJS 뿐만 아니라 ES2015+, 모던 프론트엔드 개발 환경(앵귤러 & 리액트), JS 테스트 환경에 대한 뜻밖의 지식을 얻게 될 것이다.

이 책에 없는 것

- 왜 RxJS를 써야하는가?

사실 RxJS를 익히기 이전에 더 중요한 것이 이 내용이다. RP는 하루만에 뚝딱 익히기는 어려운 주제이기 때문에 끈기있게 배움을 이어가기 위해서는 강한 동기가 필요하다. 단순히 힙한 주제에 대한 호기심을 넘어서 실제로 RP가 내게 도움이 되는 것인지 알기 위해서는 다른 자료들을 많이 참고해보고 적용해볼만한 상황인지 판단하는 것이 좋다.

- 실용적 예제

실제 문제를 RxJS로 해결하는 사례가 소개되어 있지 않은 점이 다소 아쉽다. 4부의 내용도 라이브러리 & 프레임워크 레벨에서 RxJS가 어떻게 사용될 수 있는지에 대한 것이라 유저 레벨에서의 요구사항을 해결하는 예는 되지 못한다. 이 역시 다른 자료들을 참고해보고 RP가 어떻게 쓰이는지를 겪고 나면 책 내용을 다시 곱씹게 되는 좋은 기회가 된다.

다 읽으면 남에게 주지 않고, 내 책장에 꽂아두고 오래오래 우려먹을 사골같은 책을 만나 기분이 좋다.

--

--