
Processor와 Subject 란? Processor는 Reactive Streams에서 정의한 Publisher 인터페이스와 Subscriber 인터페이스를 둘 다 상속한 확장 인터페이스임Processor는 Publisher(생산자)의 기능과 Subscriber(소비자)의 기능을 모두 가지고 있음Processor는 Hot Publisher(뜨거운 생산자) 임Subject는 Reactive Streams의 Processor와 동일한 기능을 하나 배압 기능이 없는 추상 클래스임Processor와 Subject의 구현클래스에는 다음과 같은 클래스가 있음PublishProcessor / PublishSubjectAsyncProcessor / AsyncSubjectBehaviorProcessor / Beha..

데이터 집계 연산자countObservable이 통지한 데이터의 총 개수를 통지함총 개수만 통지하면 되므로 결과값은 Single로 반환함데이터의 총 개수를 통지하는 시점은 완료 통지를 받은 시점임reduceObservable이 통지한 데이터를 이용해서 어떤 결과를 일정한 방식으로 합성한 후, 최종 결과를 반환함Observable이 통지한 데이터가 숫자일 경우 파라미터로 지정한 함수형 인터페이스에 정의된 계산 방식으로 값을 집계할 수 있음 퀴즈.range, reduce 함수를 이용하여 10부터 1까지 역순으로 뺄셈을 한 최종 결과 값을 구하세요.예) 10 - 9 - 8 - 7 - 6 - 5 - 4 - 3 - 2 - 1 = -35public class quiz1 { public static void m..

조건과 불린 연산자 all 통지되는 모든 데이터가 설정한 조건에 맞는지를 판단함결과값을 한번만 통지하면 되기 때문에 true/false 값을 Single로 반환함통지된 데이터가 조건에 맞지 않는다면 이후 데이터는 구독 해지되어 통지되지 않음amb여러개의 Observable 중에서 최초 통지 시점이 가장 빠른 Observable의 데이터만 통지되고, 나머지 Observable은 무시됨가장 먼저 통지를 시작한 Observable의 데이터만 통지됨contains파라미터의 데이터가 Observable에 포함되어 있는지를 판단함결과값을 한번만 통지하면 되기 때문에 true/false 값을 Single 로 반환함결과 통지 시점은 Observable에 포함된 데이터를 통지하거나 완료를 통지할때임defaultlfEm..

유틸리티 연산자delay첫번째 유형생산자가 데이터를 생성 및 통지를 하지만 설정한 시간만큼 소비자쪽으로의 데이터 전달을 지연시킴두번째 유형파라미터로 생성되는 Observable이 데이터를 통지할 때까지 각각의 원본 데이터의 통지를 지연시킴delaySubscription생산자가 데이터의 생성 및 통지 자체를 설정한 시간만큼 지연시킴소비자가 구독을 해도 구독 시점 자체가 지연됨timeOut각각의 데이터 통지 시, 지정된 시간안에 통지가 되지 않으면 에러를 통지함에러 통지 시 전달되는 에러 객체는 TimeoutException임timeInterval각각의 데이터가 통지되는데 걸린 시간을 통지함통지된 데이터와 데이터가 통지되는데 걸린 시간을 소비자쪽에서 모두 처리 할 수 있음materialize/demateri..

데이터 변환 연산자 map원본 Observable에서 통지하는 데이터를 원하는 값으로 변환 후 통지함변환 전 후 데이터 타입은 달라도 상관 없음null을 반환하면 NullPointException이 발생하므로 null이 아닌 데이터 하나를 반드시 반환해야함flatMap첫번째 유형원본 데이터를 원하는 값으로 변환한 후 통지하는 것은 map과 동일map이 1대 1 변환인 것과 달리 flatMap은 1 대 다 변환하므로 데이터 한개로 여러 데이터를 통지 할 수 있음map은 변환된 데이터를 반환하지만 flatMap은 변환 된 여러개의 데이터를 담고 있는 새로운 Observable을 반환함두번째 유형원본 데이터와 변환된 데이터를 조합해서 새로운 데이터를 통지함Observable에 원본 데이터 + 변환된 데이터 ..

데이터 필터링 연산자 filter전달 받은 데이터가 조건에 맞는지 확인한 수, 결과가 true인 데이터만 통지함파라미터로 받는 Predicate 함수형 인터페이스에서 조건을 확인함distinct 이미 통지된 동일한 데이터가 있다면 이후의 동일한 데이터는 통지하지 않음(중복 값 제거) take파라미터로 지정한 개수나 기간이 될때까지만 데이터를 통지함 takeUntil첫번째 유형파라미터로 지정한 조건이 true 갈 될 때까지 데이터를 계속 통지함두번쨰 유형 파라미터로 지정한 Observable이 최초 데이터를 통지할 때까지 데이터를 계속 통지함skip첫번째 유형파라미터로 지정한 숫자만큼 데이터를 건너뛴 후 나머지 데이터를 통지함 두번쨰 유형 파라미터로 지정한 시간 동안에는 데이터 통지를 건너뛴 후 지정한 시..

RxJava의 연산자(Operator)란 RxJava에서의 연산자는 메서드(함수) 임연산자를 이용하여 데이터를 생성하고 통지하는 Flowable이나 Observable등의 생산자를 생성 할 수 있음Flowable이나 Pbservable 에서 통지한 데이터를 다양한 연산자를 사용하여 가공처리해 결과값을 만들어냄 flowable/Observable 생성 연산자interval지정한 시간 간격마다 0부터 시작하는 숫자(Long)을 통지함initialDelay 파라미터를 이용해서 최초 통지에 대한 대기 시간을 지정 완료없이 계속 통지함호출한 스레드와는 별도의 스레드에서 실행됨 polling 용도의 작업을 수행할 때 활용 할 수 있음 range지정한 값(n) 부터 m개의 숫자를 통지함for, while문 등의 반..

데이터 결합 연산자-> 다수의 Observable에서 통지된 데이터를 받아서 다시 하나의 Observable로 통지함merge통지 시점이 빠른 Observable의 데이터부터 순차적으로 통지되고 통지 시점이 같은 경우에는 merge( ) 함수의 파라미터로 먼저 지정된 Observable의 데이터부터 통지됨concat하나의 Observable에서 통지가 끝나면 다음 Observable에서 연이어서 통지가됨각 Observable의 통지 시점과는 상관없이 concat( ) 함수의 파라미터로 먼저 입력된 Observable의 데이터부터 모두 통지 된 후, 다음 Observable의 데이터가 통지됨zip각 Observable에서 통지된 데이터가 모두 모이면 각 Observable에서 동인한 index의 데이터로 ..