내가 Rx를 공부하기 전에 궁금했던 것들
728x90
반응형

 

요즘 안드로이드에서 비동기 처리를 할 때, 코루틴과 Rx를 제일 많이 다룬다. 특히 Rx가 실무에서 더 많이 쓰이는 분위기라서 조금 공부를 해 보았다. 그러면서 기술적 혹은 비기술적인 궁금증이 몇개 생겼다.

 

1. Rx는 프론트엔드 개발에서만 사용될까?

No. ReactiveX 홈페이지를 가보면 "ReactiveX is everywhere, and it's meant for everything."이라고 나타나 있으며 아래의 이미지를 볼 수 있다. 즉, 백엔드와 크로스 플랫폼까지 다양한 곳에서 이용되고 있다.

 

더 자세한건 http://reactivex.io 에서 확인하자

 

2. 리액티브 프로그래밍(Rx)는 리액트(React)와 어떤 관계일까?

비슷하면서도 다르다. (피드백을 받아 수정한다. 걍 다르다!!) 마치 Java와 Javascript가 다른 것처럼. 리액티브(Rx)는 마이크로소프트에서 창안한 개념으로 시작하였고 리액트는 페이스북에서 웹개발을 위해 만든 기술이다. Rx 패러다임이 RxJava나 리액트 등으로 확장되었다는 설명도 있는데 명확한 근거를 찾을 수 없어서 추가적인 설명을 위해 더 공부가 필요하다.

 

 

3. RxKotlin은 RxJava와 어떻게 다를까?

RxJava를 생략하고 바로 RxKotlin으로 공부하는 입장에서 둘 차이가 궁금했다.

  • RxJava: Java(JVM)를 위한 ReactiveX Extensions. Reactive programming(리액티브 프로그래밍) 패러다임을 자바에서 구현한 프로그래밍 라이브러리
  • RxKotlin: Kotlin을 위한 ReactiveX Extensions. RxJava 라이브러리를 기반으로 포팅하여 코틀린을 위한 리액티브 프로그래밍의 특정 부분을 함수형 프로그래밍으로써 구현한 라이브러리

결국 RxKotlin으로 Rx 학습을 시작해도 문제가 없음을 알 수 있다. 위 글의 출처를 남긴다. (링크)

 

 

 

4. 코루틴보다 Rx가 더 나을까?

안드로이드에서 비동기처리를 공부한다면 이 둘 중 하나로 먼저 시작을 할텐데 과연 무엇이 더 나을까? 상황에 따라 다르다. Google Developer Expert이자 시니어 안드로이드 개발자인 Fabio Collini의 글을 참고하자. (번역글 출처)

  • 이미 RxJava를 사용하고 있고 잘 동작 한다면 RxJava 를 사용하세요.
  • 아키텍처가 Reactive Stream 을 기반으로 하는 경우 RxJava 를 사용하세요.
  • 프로젝트가 Kotlin Native 를 사용한 멀티플랫폼 인 경우 코루틴을 사용하세요.
  • 코드 베이스가 Java / Kotlin 인 경우 RxJava를 사용하세요.
  • 이외에는, 코루틴 을 사용하세요.
728x90
반응형