728x90
RxJava에서 기초 오브 기초만 먼저 정리해보았다.
RxJava란?
ReactiveX를 Java로 구현한 이벤트 기반 비동기 프로그래밍을 위한 라이브러리이다. 매 이벤트마다 그에 대응하는 동작을 정의하는 방식이었던 콜백 방식과 달리 발생하는 이벤트를 이벤트 스트림에 전달하여 이벤트 스트림을 관찰하다가 원하는 이벤트를 감지하면 이에 따른 동작을 수행한다.(뭔가 회전초밥과 같은 느낌이...) 참고로 RxAndroid는 RxJava에 안드로이드용 스케쥴러 등 몇 가지를 클래스를 추가해 안드로이드 개발에 용이하게 해주는 라이브러리이다.
RxJava는 또한 반응형 프로그래밍이라고 한다. 반응형 프로그래밍이란 주변 환경과 끊임없이 상호 작용을 하는 프로그래밍이다. 환경이 변하면 이에 반응하여 동작하도록 하는 프로그래밍 기법이다. 반응형 프로그래밍은 시간 순으로 들어오는 모든 데이터의 흐름을 스트림(stream)으로 처리한다. 따라서 RxJava는 데이터를 관찰할 수 있고 데이터를 스트림으로 처리한다. 안드로이드는 화면을 변경할 수 있는 것은 메인 스레드뿐이기 때문에 비동기 처리해야 할 일이 생기는데 이때 Rx를 이용하면 이러한 작업들을 쉽게 할 수 있다.
RxJava 간단한 용어 정리
Observable
- 이벤트를 만들어 내는 주체
- 이벤트 스트림을 통해 이벤트를 전달함
Observer
- Observable에서 생성된 이벤트에 반응하여 수행할 작업을 정의함
- Observer가 Observable의 이벤트에 반응하려면 Observable에서 발생하는 이벤트를 Observer가 관찰해야하는데 이를 Observer가 Observable을 구독(Subscrbie)한다라고 표현함
Operators(연산자)
- 이벤트 스트림을 통해서 전달되는 이벤트를 변환하거나 이벤트가 갖고 있는 값을 변환
- 특정조건에 만족하는 이벤트만 스트림으로 흘려보냄
- 이벤트의 개수를 바꿈
- 중첩으로 사용 가능
Scheduler(스케줄러)
- 작업을 수행할 스레드를 지정
- observeon() 메서드를 사용하여 스레드를 지정
- 해당 메소드 이후에 선언한 연산자나 observer에서 수행되는 작업이 앞의 메서드에서 지정한 스레드에서 실행됨
Disposable(디스포저블)
- observer가 구독할 때 생성되는 객체
- 이벤트 스트림과 이에 필요한 리소스를 관리
- observable로부터 더 이상 이벤트를 받지 않으려면 disposable을 통해서 구독 해지를 해야 함
- observable는 이를 감지하고 자신을 구독하고 있는 observer가 더 이상 없는 경우 이벤트를 만들기 위한 리소스를 해제함
'Android > RxJava' 카테고리의 다른 글
[차근차근 RxJava 기록 5] Observable을 생성하는 연산자 (0) | 2022.01.24 |
---|---|
[차근차근 RxJava 기록 4] Cold Observable과 Hot Observable (0) | 2022.01.24 |
[차근차근 RxJava 기록 3] 다양한 형태의 Observable (0) | 2022.01.21 |
[차근차근 RxJava 기록 2] Observable의 이벤트와 생성 (0) | 2022.01.21 |