일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Algorithm
- rxjava
- library
- Database
- leetcode
- sourcetree
- Java
- FRAGMENT
- programmers
- ReactiveProgramming
- Kotlin
- Java8
- Jetpack
- homebrew
- git
- Room
- androidstudio
- Version
- IntelliJ
- github
- Android
- ViewModel
- livedata
- Today
- Total
Learn & Run
RxJava - 배압 전략(BackpressureStrategy)의 종류 본문
목표
이전 포스팅에서 Flowable과 Observable의 차이를 알아보면서 배압이 무엇인지 알아보았습니다. 이번 포스팅에선 배압 전략에는 어떤 것들이 있는지 알아보고 간단한 소스 코드로 적용해봅니다.
배압 전략
- RxJava는 BackpressureStrategy를 통해 Flowable이 통지 대기 중인 데이터를 어떻게 다뤄야하는지에 대한 전략을 제공합니다.
1) MISSING : 처음엔 배압을 적용하지 않다가, 나중에 onBackpressureXXX()로 배압을 적용할 수 있습니다.
2) ERROR : 통지된 데이터가 버퍼의 크기를 초과하면 Exception을 통지하는 전략입니다. 이전 포스팅에서 배압 기능을 설명할 때 소스코드로 작성한 부분에서 ERROR전략을 확인해 볼 수 있었습니다.
3) BUFFER - DROP_LATEST : 버퍼가 가득 찬 시점에 버퍼내에서 가장 최근에 들어온 데이터를 DROP하고 DROP된 빈 자리에 대기하던 데이터로 채우는 전략입니다.
4) BUFFER - DROP_OLDEST : 버퍼가 가득 찬 시점에 버퍼내에서 가장 오래전에 버퍼로 들어온 데이터를 DROP하고 DROP된 빈 자리에 대기하던 데이터를 채우는 전략입니다.
5) DROP : 버퍼에 데이터가 모두 채워진 상태가 되면 이후에 생성되는 데이터를 DROP하고, 버퍼가 비워지는 시점에 DROP되지 않은 데이터부터 다시 버퍼에 채우는 전략입니다.
6) LATEST : 버퍼에 데이터가 모두 채워진 상태가 되면 버퍼가 비워질 때까지 통지된 데이터는 버퍼 밖에서 대기하며 버퍼가 비워지는 시점에 가장 나중에 통지된 데이터부터 버퍼에 채우는 전략입니다.
'Java' 카테고리의 다른 글
Java - 함수형 인터페이스와 람다 표현식 (0) | 2021.01.13 |
---|---|
RxJava - 또 다른 생산자 Single, Maybe와 Completable (0) | 2021.01.12 |
RxJava - Flowable과 Observable 이해하기 (0) | 2021.01.08 |
RxJava - 예제를 통해 Reactive Streams 이해하기 (0) | 2021.01.07 |
RxJava - 예제를 통해 Reactive Programming 이해하기 (0) | 2021.01.06 |