본문 바로가기

안드로이드/RxJava6

Cold Observable vs Hot Observable Cold Observable vs Hot Observable Cold Observable Observer가 구독한 순간부터 아이템을 발행하는 스트림 - 구독하는 Observer가 없다면 데이터를 발행하지 않음 - 일반적인 Rest API 통신, 데이터베이스 쿼리 등에 사용함 - 처음부터 데이터 발행하는 데이터를 받는 기본으로 함 - 일반적으로 Observable을 생성하여 사용하는 경우에 해당(ex: create, single, fromArray 등의 연산자로 생성한 Observable) Hot Observable Observable을 생성하자마자 아이템들을 발행하는 스트림 - 구독자의 존재와 상관 없이 데이터를 방출하는 Observable - 마우스 이벤트, 키보드 이벤트, 시스템 이벤트 등에 주로 사.. 2023. 1. 25.
[안드로이드] RxJava - 변환 연산자 Map : map은 Observable로 아이템을 발행할 때, 함수를 적용한 후에 리턴할 수 있다. flatMap : flatMap은 1:多 혹은 1:1의 Observable을 리턴합니다. flatMap은 Observable 작업을 여러번 연계해야 할 때 사용합니다. concatMap : flatMap과 매우 유사하며, flatMap은 먼저 들어온 데이터를 처리하던 도중에 새로운 데이터가 들어오면 나새로운 들어온 데이터의 처리 결과가 먼저 출력될 수 있습니다. concat은 먼저 들어온 데이터를 순서대로 처리하도록 보장합니다. groupBy : 어떠한 기준으로 단일 Observable을 여러 개로 이루어진 Observabler그룹으로 만듭니다. scan : 모든 데이터를 변환하여 최종 값을 출력합니다.실.. 2022. 4. 6.
[안드로이드] RxJava - 생성 연산자 just : 인자로 받은 데이터를 순서대로 발행하는 Observable 생성 연산자이며, 최대 10개까지 발행할 수 있다. create : emitter를 이용하여 데이터를 발행하고 onNext(), onComplete(), onError() 함수를 이용하여 데이터를 발행하거나 데이터의 발행을 완료처리하거나 데이터 발행도중 에러가 발생했음을 발생한다. onComplete() 호출하면 데이터 발행이 완료되었기 때문에 더이상 데이터가 발행되지 않는다. interval : 시간 간격을 두고 데이터를 전달하는 stream을 만듭니다. 기본적으로 SchedulerSupport.COMPUTATION 스케쥴러로 별도의 스레드에서 실행이됩니다. 그 때문에 아래 코드를 실행하면 메인스레드가 먼저 종료되어 print가 되.. 2022. 4. 1.
[안드로이드] RxJava 연산자 종류 연산자 종류 생성연산자 Observable, Single 클래스 등을 이용하여 데이터의 흐름을 만들어내는 함수 create(), just(), fromXXX(), interval(), range(), timer() 등 변환연산자 입력을 받아서 원하는 출력을 내는 전통적인 의미의 함수 map(), flatmap(), reduce() 등 제어연산자 입력 데이터 중 원하는 데이터를 골라내는 함수 filter(), first(), take() 등 결합연산자 두 개 이상의 입력된 데이터를 하나의 데이터로 통합하는 연산자 zip(), combinelLatest(), Merge(),concat() 오류처리연산자 연산자 내에서 예외 처리 구현을 위한 함수 onErrorReturn(), onErrorResumeNext(.. 2022. 3. 31.
Observable에 관해서.. Observable Observable은 데이터의 스트림(흐름)입니다. Observable을 구독하는 Observer가 존재하고, Observable이 순차적으로 발행하는 데이터에 대해서 반응한다. - onNext() : Observable이 하나씩 순차적으로 데이터를 발행 - onComplete() : 데이터의 발행이 끝났음을 알리는 완료 이벤트. 더는 onNext() 호출이 발생하지 않음 - onError() : 오류가 발생했음을 알림. onError() 이후 onNext()와 onComplete()는 더이상 호출되지 않음 [Observable의 생성] - create() 연산자 emitter를 이용하여 직접 아이템을 발행하고, 아이템 발행의 완료 및 오류의 알림을 직접 설정할 수 있습니다. - ju.. 2021. 6. 8.
RxJava란? RxJava란 ReativceX(Reactive Extensions)를 자바로 구현한 라이브러리이다. - 관찰하고있는 대상의 상태가 변했을 때 관찰자(Observer)에게 변경사항을 전달하는 옵저버 패턴(Observer Pattern) - 복잡한 비동기 및 에러 처리를 쉽게 처리할 수 있음 그 외 - RxAndroid : RxJava에 Android용 스케쥴러 등 몇 가지 클래스를 추가해 안드로이드 개발을 쉽게 해주는 역할을 하는 라이브러리 - RxKotiln : RxJava 라이브러리를 기반으로 포팅하여 코틀린을 위한 리액티브 프로그래밍의 특정 부분을 함수형 프로그래밍으로써 구현한 라이브러리 - RxBinding : RxJava와 RxAndroid를 이용해 안드로이드의 위젯이나 View에 Rx를 사용하.. 2021. 6. 8.