inflearn logo
강의

Course

Instructor

Kevin's Easy RxJava Part 1

Understanding Observable and Flowable

질문 드립니다.

219

pmamoon792689

32 asked

0

아직 강의 초기라 잘 이해되지 않는 부분이 있습니다.

drop 된다는 의미

버려진다는 것이 데이터를 subsciber에서 모두 처리 못한다는 의미인가요? 그렇다면 유실된 데이터 처리는 어떻게 되는건가요?

drop된 데이터를 다시 소비하는 걸로 생각했는데 아닌가요?

 

감사합니다.

 

 

함수형-프로그래밍 Reactive Programming RxJava Reactive-Streams

Answer 1

0

Kevin

안녕하세요. 아기 재우느라 답변이 좀 늦었습니다.

질문에 답을 우선 해드리자면,

"버려진다는 것이 데이터를 subsciber에서 모두 처리 못한다는 의미인가요?"

--> 네, 맞습니다. subscriber에게 전달은 되지 않습니다. 아래는 Flowable의 onBackPressure( )에 대한 API 설명인데요.


: 마블 다이어그램을 보시면 Upstream 쪽으로 request를 보낼때마다 Subscriber쪽으로 전달되는 데이터는 1개만 전달 되고 나머지는 전달이 되지 않는것을 볼 수 있습니다.

 

"그렇다면 유실된 데이터 처리는 어떻게 되는건가요?"

--> 위 그림을 보시면 onBackpressureDrop(Consumer<? super T> onDrop) 이라는 메서드 시그니처를 볼 수 있는데요. onDrop이라는 Consumer에서 버려지는 데이터들을 전달 받을 수가 있습니다. 버려지는 데이터를 별도로 처리하고 싶으시다면 이곳에서 하시면 될 것 같습니다.

 

"drop된 데이터를 다시 소비하는 걸로 생각했는데 아닌가요?"

--> 위에서 답변 드렸지만 drop된 데이터를 별도로 처리하고 싶으시다면 onDrop이라는 Consumer로 하시면 될것 같습니다. 배압 전략이라는게 시스템이 중단되지 않도록 끊임없이 들어오는 데이터를 적절하게 Control 하는 것이 주목적이기 때문에 Subscriber 쪽에 전달되지 못하는 데이터가 있다는 것을 전제로 만들어진 것인데요. 만약에 데이터의 유실없이 모든 데이터를 전달을 받고 싶다면 request의 개수를 적절하게 조절하시면 될 것 같다는 생각이 듭니다. request의 개수를 조절하는것도 배압 전략의 한가지라고 볼 수 있겠습니다.

 

답변이 어느 정도 되셨는지 모르겠네요. 강의 들으시다가 궁금하신게 있으시면 언제든지 질문 남겨주시면 감사 드릴게요.

0

pmamoon792689

상세한 답변 감사합니다. 강의를 이해하는 데 많은 도움이 되었습니다.

Single과 관련해 여쭤보고 싶은 부분이 있습니다!

0

264

2

cold/hot publisher 예제 코드와 관련해 질문 드립니다.

0

363

1

CompletableObserver 클래스의 람다식 표현관련

0

297

1

1강에 예시로 보여주신 ToDoSample 코드에 관해 질문 드립니다!

0

356

1

데이터 결합 연산자 / merge 관련 질문

0

445

1

DROP 배압 전략에 관한 궁금증

0

300

2

map에서의 TimeUtil.sleep에 관한 궁금점

0

216

1

강의 내용을 정리해서 개인 블로그에 올려도 될까요?

0

562

2

TimeUtil.sleep 관련 질문

0

286

1

배압 전략 중에서 DROP 전략과 관련해서 질문 있습니다.

0

335

1

Error 발생 시에도 계속 처리 방법

0

689

2

선언형 프로그래밍과 명령형 프로그래밍

1

784

2

첫번째 강의 부터 이번강의까지 수강하면서 궁금한점 질문드립니다.

0

325

1

안녕하세요. 질문이 있습니다.

1

354

1

logger 가 없는데 util 폴더도 같이 갖다놔야 하나요?

0

327

1

amb 연산자

0

233

1

concatEager( ) 연산자에 관하여

0

318

1

Reactive Streams의 구성요소들과 RxJava의 구성요소들의 관계?

1

397

2

ObservableSequenceEqualExample.java 예제의 delay( ) 연산자 질문있습니다

0

309

3

defer( ), fromFuture( )도 just( )처럼 여러 인자 값을 받을 수 있는지 궁금합니다.

0

264

3

flatMapSingle() 메소드에 대하여

0

620

6

fromFuture() vs fromCallable() 생성 연산자에 대해

0

573

2

함수형 인터페이스 Comparator에 대해

0

397

2

Publisher와 Subscriber 간의 프로세스 흐름에 대한 질문

1

340

3