Subject 지금까지 Observable, Single, Flowable 등의 데이터 스트림에 대해 알아보았다. 이번 포스팅에서 알아볼 녀석은 Subject 라는 녀석인데, 이는 관찰 가능한 데이터 스트림과 관찰자(구독자)의 성격을 모두 갖고 있는 특이한 녀석이다. 즉 Observable 과 Observer 를 모두 구현한 추상 타입으로, 하나의 소스로부터 다중의 구독자에게 멀티 캐스팅이 가능하다는 특징을 갖고 있다. Observer 를 구현한다는 특징때문에, onNext(), onError(), onComplete() 등의 이벤트를 수동으로 발생하여 구독자들에게 전달해줄 수 있다. 그럼, 다양한 Subject 의 종류 중 몇 가지에 대해 하나씩 알아보도록 하자. PublishSubject PublishSubject 는 가장 단순한 Subject 구현체중 하나이다. 구독자들에게 **이벤
Scheduler (스케줄러) RxJava 는 다양한 문제를 해결할 수 있는 범용적인 솔루션이다. 특히 멀티 쓰레딩과 같은 비동기 작업을 효율적으로 구현할 수 있는 환경을 제공해준다. 이는 스케줄러라는 녀석을 활용하게 된다. 스케줄러는 데이터 스트림이 어떤 쓰레드에서 데이터를 발행하는지, 구독자는 어떤 쓰레드에서 이벤트 발생을 통보받는지에 대해 지정해줄 수 있다. RxJava 에서는 Schedulers 클래스에서 제공하는 정적 패토리 메소드를 통해 스케줄러를 설정해줄 수 있다. Scheduler 종류 >### Single 스케줄러 Single 스케줄러는 단일 쓰레드를 생성하여 이를 계속 재사용하는 방식을 활용한다. RxJava 내부에서 쓰레드를 별도로 생성하여, 한 번 생성된 쓰레드를 활용하며 여러 작업을 처리하게 된다. >### IO 스케줄러 이 녀석은 네트워킹 작업이나 **DB 트랜잭션, 파일 시스
🔔 앞으로의 Reactive X 시리즈는 RxJava, RxKotlin 기준으로 작성됩니다 공식 문서를 참고하여 작성된 포스팅입니다. 이전 포스팅과 이어집니다. Observable 오류 처리하기 데이터가 발행되다보면, 은연중에 오류가 발생할 수도 있는 것이다. 그런데 보통 데이터 스트림에서 오류가 발생하면, 즉시 데이터 스트림이 종료되기 때문에 따로 조치를 해주어야 하는 상황이 있을 수 있다. 이번 포스팅에선 Observable 에서 발생할 수 있는 에러를 핸들링하는 방법 몇 가지를 알아보자. onError() Consumer 등록하기 이전에 Observable 에서 에러가 발생하면 **`E
🔔 앞으로의 Reactive X 시리즈는 RxJava, RxKotlin 기준으로 작성됩니다 공식 문서를 참고하여 작성된 포스팅입니다. 이전 포스팅과 이어집니다. Observable 결합하기 여러 개의 Observable 데이터 스트림을 하나의 Observable 로 만들 수 있다. 여러 데이터를 이용하여 가공해서 사용하는 경우, 혹은 HTTP 통신의 응답들을 한 번에 묶어서 받고 싶은 경우 등에 사용하게 된다. 이번 포스팅에선 이러한 동작을 하는 Observable 결합 연산자들 중 몇 가지를 알아보고자 한다. 설명만 들어서는 헷갈릴 수 있는 파트다. 마블 다이어그램과
🔔 앞으로의 Reactive X 시리즈는 RxJava, RxKotlin 기준으로 작성됩니다 공식 문서를 참고하여 작성된 포스팅입니다. 이전 포스팅과 이어집니다. Observable 필터링하기 필터링 연산자는 Observable 이 뱉는 데이터들을 어떤 기준에 의해 거른 후 발행하도록 한다. 이번 포스팅에선 Observable 필터링 연산자 중 자주 사용되는 몇 가지를 알아보며, 개념을 익혀보도록 하자. debounce() 메소드 이 녀석은 특정 시간동안 더 이상 데이터가 발행되지 않을 때에 데이터을 발행하는 연산자이다. ![](https://images.velog.io/im
Observable 녀석의 정체 Reactive X 세계에서는 어떤 데이터 흐름을 '관찰'하는 데에 포커스를 두고, 비동기적으로 다양한 동작을 수행할 수 있다. 그냥 메인 쓰레드는 자기 할 일 하고 있다가, 어떤 데이터가 나왔을 때 이를 감지하여 원하는 특정 동작을 수행할 수 있다. 이 때, 이 '관찰할 수 있는' 데이터 스트림을 Rx 에서는 Observable 이라고 부른다. 보통 Observable 은 어떠한 순차적인 데이터를 갖게 된다. 이 데이터 스트림을 관찰하게 되는 '옵저버'들은 'Observable' 이 발행하는 '데이터'에 즉각 반응을 할 수 있다. 바로 '옵저버 패턴'을 이용해서 말이다. 옵저버 패턴 되짚어보기 이전에 옵저버 패턴에 대하여 [포스팅](https://velog.io/@haero_kim/%EC%98%B5%EC%A0%80%EB%B2%84-%E