cdsl***
2017-11-29

최근 트렌드에 관심있는 사람이라면 리액티브 프로그래밍에 대해 들어봤을 것이다.
그렇지만 쉽게 입문하기 어려운 것이 리액티브 프로그래밍이라 생각된다.
그 이유는 '관점'의 변화 때문이다.
그전까지 개발할때는 필요한 데이터를 조회해서 처리하는 방식이였다면,
리액티브 프로그래밍에서는 데이터 소스가 변경된 데이터를 밀어주는 방식이다.
책에서는 이를
'기존 pull방식의 프로그래밍 개념을 push방식의 프로그래밍 개념으로 바뀐다'
라고 설명한다.
이렇듯 기존의 개발 관점이 달라지기 때문에 상당한 학습비용이 필요하다.
그동안 리액티브 프로그래밍을 다룬 책이 없진 않았지만,
이번에 나온 'RxJava 프로그래밍'은
2017년 11월 시점에서 리액티브 프로그래밍 입문서로서 최선의 선택이라고 생각한다.
최선의 선택이라 생각한 이유를 말하자면,
첫째. 상당한 학습비용이 필요하기 때문에 가급적 최신 내용의 책을 선택해야 한다.
상당한 시간을 투자한다면 가급적 최신버전의 내용을 학습하여 학습한 내용의 유효기간이 길어야 한다.
본 책은 1.x 에서 2.x 대 버전으로 전환되는 시점에서 2.x 대 버전을 다룬 유일한 책이다.
가장 최신의 버전을 다루고 있기에 가장 적합하다고 할 수 있다.
둘째. 너무 두껍지 않은 분량이다.
책의 두께와 내용 질은 비례하기 쉽지 않다. 또한, 너무 두꺼우면 읽다가 지쳐버린다.
입문서는 가급적 기본 개념과 약간의 응용을 통해 좀 더 넓은 바다로 나아갈 수 있는 시작점이 적합하다고 생각한다.
셋째. 마블 다이어그램과 저자의 경험을 통한 팁으로 구성된 설명이 많은 도움이 된다.
리액티브 프로그래밍은 기존의 개발 관점과 다르기 때문에 이해하기가 쉽지 않다.
그래서 그런지, 공식문서(ReactiveX 홈페지이 : http://reactive.io) 에서도 마블 다이어그램을 통해 흐름을 설명한다.
본 책 또한 마블 다이어그램 잘 활용하여 설명하고 있다.
우선 함수를 설명할때 마블 다이어그램으로 흐름을 보여준다. 코드는 다이어그램을 활용한 설명 이후에 나온다.
코드를 먼저 봤다면 이해하기 어려운 내용을 마블다이어그램을 통해 효과적으로 보여주는 점이 좋았다.
또한, 중간중간 저자의 학습 팁이 나오는 부분도 도움이 되었다.
나에게 리액티브 프로그래밍은 상당히 생소하고 이해하기 쉽지 않았다.
본 책을 통해 학습을 하면서도, 몇번은 더 반복해서 보고 실제 구현을 해봐야 체득이 가능하겠다는 생각이 들었다.
앞으로는 리액티브 프로그래밍은 필수적으로 알아야 하는 시대가 될 것이라 생각한다.
이런 시점에서 이러한 입문서를 통해 개념을 이해하고 반복적으로 학습하는 것이 매우 중요할 것이다.