본문 바로가기

RxJava

(5)
[RxJava3] ReactiveX 란? Rx라는 개념에 대해서 너무 알고싶었다. Reactive 라는 개념이 멋지게는 들렸는데, 정확히 기존의 개념과 무엇이 다른지 궁금했다. 많이들 아시는 아래 책을 여러번 읽고, 몇가지 강의들을 들은 후에야 조금은 내것이 된 것 같아서 잊지 않기위해 글을 남겨보려고 한다. RxJava 프로그래밍 국내도서 저자 : 유동환,박정준 출판 : 한빛미디어 2017.09.04 상세보기 공식 사이트 (http://reactivex.io)에 들어가 보면, 아래와 같이 ReactiveX 에 대해 정의를 하고 있다. " ReactiveX is a combination of the best ideas from the Observer pattern, the Iterator pattern, and functional program..
[RxJava3] 스케줄러 Rx는 비동기 프로그래밍에 관한 것으로 어느 스레드에서 실행시킬지가 중요한 이슈이다. 스케줄러가 비동기 프로그래밍이 가능하도록 어느 스레드에서 실행을 시킬지를 결정하고, 관리를 하는 클래스이다. 스케줄러에서 기억해야할 할 함수는 아래 2가지 이다. subscribeOn()과 observeOn(). subscribeOn() observeOn() - Observable (데이터 흐름) 이 발행되는 스레드 지정 - subscribe() 호출 시 실행되는 스레드 지정. - 처리된 결과를 전달하는 스레드 지정 - ObserveOn() 호출 이후부터 지정된 스레드에서 데이터흐름이 함수 수행 처음에 지정한 스레드로 고정 중간에 스레드 변경이 가능 (default: subscribeOn() 스레드) 스케줄러의 종류에는..
[RxJava3] Reactive 연산자 - 2.필터 연산자, 결합 연산자 이번 포스팅에서는 이전 생성, 변환 연산자에 이어서 필터 연산자, 결합연산자, 그리고 그 외 자주 사용하게 될 연산자들에 대해서 알아보고자 합니다. 1. Filter(필터) 연산자 Observable에서 아이템을 선택적으로 발행하는 연사자입니다. 대표적인 연산자에는 filter(), first(), 그리고 debounce(), sample() 이 있습니다. filter() : 조건이 true가 되는 데이터만 발행. 직관적인 함수명대로 predicate 가 true가 되는 조건의 아이템에 대해서만 발행을 하는 함수입니다. @SchedulerSupport(SchedulerSupport.NONE) public final Observable filter(@NonNull Predicate
[RxJava3] Reactive 연산자 - 1.생성 연산자, 변환 연산자 ReactiveX 연산자는 Observable을 생성도 하고, 변환도 하며, 흐름제어를 하는 기능도 있는 함수 입니다. Rx 연산자를 사용할 줄 안다는 것은 Observable 데이터 흐름을 다룰 줄 안다는 것이고 즉, Reactive 프로그래밍을 하고 있다는 것이라고도 볼 수 있겠네요. (다음 포스팅에서 스케줄러 등 중요한 개념들을 더 다루어야하기는 하지만) 다양한 연산자들이 있지만, 공식문서에서 그룹핑한 내용을 보면 Creating Observables, Transforming Observables, Filtering Observables, Combining Observables 등이 있습니다. 하나씩 천천히 알아봅시다. 1. Creating (생성) 연산자 이전에 다루었던 create(), just..
[RxJava3] Observable RxJava 의 핵심 중 핵심이라할 수 있는 클래스이자 데이터 흐름에서 데이터 발행을 담당하는 Observable에 대해서 알아보겠습니다. Observable은 3가지 event를 가집니다. onNext : 데이터 발행을 알림 onComplete : 데이터 발행 완료를 알림 onError : 에러 발생을 알림 onError 발생 이후에는 onNext 와 onComplete 가 발생하지 않음. 그러면, Observable은 어떻게 생성할 수 있을까요? just(), fromXX(), create(), interval(), timer(), range() 와 같은 정적 팩토리 함수를 활용하여 생성할 수 있습니다. Observable의 종류는 총 4가지가 있습니다. Observable: 기본 Maybe: 0개 ..