Rx에 대해서 자주 듣는 질문
- Rx가 뭐하는 건가요?
- Rx를 쓰면 좋은가요?
Rx에 대해서 처음 접하시는 분들이 여기 저기서 Rx를 얘기하니까 요즘 핫한 신기술인가보다. 해야 되는 건가보다. 남들 다 하니까 나도 해야겠다.. 이런 생각들을 하시는 것 같다. 그래서 위와 같은 질문들이 나오는 거라고 생각한다.
간단히 답하면 이렇다.
- Rx 는 Utility 입니다. 편하려고 만든겁니다. 그래서 쓰면 분명히 좋습니다.
- Rx 는 비동기 처리를 위한 라이브러리 입니다.
Rx는 라이브러리
Rx는 철학이나 아키텍처나 프레임워크가 아닙니다. 그냥 유틸리티 라이브러리 입니다. 그러니까 적용한다해도 쓰고 싶은 부분에 일부만 써도 상관없습니다. 왜 쓰는지, 왜 편해지는지만 알면 그냥 쓰면 됩니다.
뭔가 대단한거라고 생각하고 무리하게 적용부터 하려고 한다면 의미 없습니다.
Rx는 비동기 처리용
Bolts, Promise, Task, Future 등을 써보신 분이라면 이미 Rx를 알고있는 것과 다를바 없습니다. 용도가 똑같기 때문입니다.
모른다 해도 비동기로 처리되어 생성된 결과를 depth를 높이지 않고 처리하게 해준다는 것은 모두 같습니다.
Rx에겐 뭔가 특별한 것이 있다.
위에서 언급한 라이브러리들과 용도나 동작은 같지만, Rx에는 뭔가 특별한 것이 있습니다. 바로 Operator
입니다.
Async하게 전달되는 데이터를 조작해서 사용하는 부분이 다른 비동기 유틸과 차별되는 부분이죠. 그리고 그 기능이 굉장히 다양하고 강력해서 이 부분을 어렵다고 느끼는 분들이 대다수 입니다.
사실 이 부분은 대충 어떠한 것들이 있는지 알고 나중에 필요할 때가 되면 적절한 것을 찾아낼 수만 있으면 됩니다. 그래서 A Decision Tree of Observable Operators 에서 가이드를 제공하고 있으니 참고하시면 됩니다.
이렇게 놓고 보면 Rx는 전혀 어려울 것이 없습니다. 학습곡선이 높다는 주변의 말만 듣고 배우고 사용하는데 겁먹을 필요가 없습니다. 그러니 필요하면 쓰세요