최데브는 오늘도 프로그래밍을 한다.

RxJava , RxKotiln 이란? 본문

Android/RxJava, RxKotlin

RxJava , RxKotiln 이란?

최데브 2021. 6. 8. 23:28

Rx는 뭔가?

바로 말하자면 Reactive Programming 이다. 반응형 프로그래밍이다.

 

반응형 프로그래밍이라는 단어가 왜 나오게 됐을까

 

기존 프로그램은 한번 변화가 있고나서 그것을 다시 알려주려고 부가적인 처리를 해줘야했다.

간단한 동작임에도 여러가지 처리를 해줘야해서 개발자 입장에서 피곤한 점도 많고 예상치 못한

문제가 발생할 위험도 존재했다.

 

이를 해결하기 위해 나온 프로그래밍 방식이 반응형 프로그래밍인데

프로그램이 자신의 주변과 끊임없이 상호작용하며 프로그램 자체가 주도해서 값이 변화하는것이 아닌

환경에 의해 변하면 이벤트를 받아 반응하는 프로그램을 의미한다.

당장은 와닿지 않을 수 있지만 이 Rx 관련 포스팅을 읽다보면 감이 올거라고 생각한다.

 

한마디로 즉, 근래에 떠오르고 있는 Reactive Programing는 데이터의 흐름과 전달에 관한 프로그래밍 패러다임이라고 볼 수 있다.

 

그럼 이걸 왜 쓸까?

개발자 입장에서 생각해보면 쉽다.

개발자는 사용자 입장에서 끊임없이 빠르면서 정확하게 동작해서 편하게 좋은 서비스를 사용하도록 만들고 싶다.

안드로이드를 예로 들어보자. 안드로이는 메인스레드에서 시간이 오래걸리거나 무거운 동작을 실행하면 

앱이 멈추거나 심한 경우 꺼지곤 하는데 이것은 우리가 원하는 좋은 서비스에 완전 반대되는 상황이다.

 

그러지 않기 위해서 우리는 백그라운드에서 이런 동작을 하게 만드는데 여기서 문제가 발생한다.

백그라운드에서 처리된 결과를 어떻게 유저에게 다시 전달할 것인가?

 

기존에 자주 사용하던 AsyncTask를 써도 문제없지만 공식적으로 Deprecated 되기도 했고

생명주기를 신경쓰지 않으므로 예상치 못한 에러가 등장할 가능성이 높아진다.그래서 우리는 비슷한 효과를 가졌지만 더 효율적인  데이터 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관되는 함수나 메서드가 업데이트 되는 방식인

Rx에 대해서 관심을 가질 필요가 있다.

 

Rx에는 RxKotlin, RxJava, RxAndroid, RxSwift 등 여러가지가 있는데 이는 다 다르다고 보기보다는 Rx 아래에 있는 

각 플랫폼에 맞는 확장판이라고 생각하자.

 

공통점은 1. 효율적인 비동기 처리2. 함수형 프로그래밍을 일부 지원3. 옵저버 패턴을 사용 4. 콜백 지옥을 벗어날 수 있다.

 

Rx에 대해 감을 잡았다면 이제 본격적으로 공부를 해보자!

 

반응형
Comments