일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 백준
- Coroutines
- Codeforces
- TEST
- livedata
- Coroutine
- Hilt
- android
- 코루틴
- boj
- pandas
- ProGuard
- Gradle
- Python
- AWS
- architecture
- activity
- 쿠링
- MyVoca
- 암호학
- 프로그래머스
- relay
- MiTweet
- 코드포스
- Rxjava
- Kotlin
- Compose
- textfield
- GitHub
- androidStudio
- Today
- Total
목록Secondary/RxJava (3)
이동식 저장소
RxJava에는 ``Single``이라는 특수한 형태의 Observable이 구현되어 있다. Single은 Observable과 비슷하지만, 값을 단 한 번만 emit한다는 결정적인 차이점이 있다. 그래서 ``onNext``, ``onError``, ``onCompleted`` 3개의 매개변수를 받아들이는 Observable과 달리 ``onSuccess``, ``onError`` 2개만 있으면 된다. 저 함수들이 무슨 일을 하는지는 설명하지 않아도 될 것이다. 끝! 연산자 쪽은 안 봐도 될 것 같다.
Disclaimer: 이 글에서는 원문의 느낌을 살리기 위해 일부 용어를 원문 그대로 사용한다. Rx에서는 observer가 Observable을 subscribe한다. Observer는 Observable이 emit하는 값을 처리한다. Observer 패턴은 특히 비동기 작업에서 유용하다. 데이터가 언제 주어질 지 모르고, 몇 개나 주어질 지도 모르는 상황에서 스레드를 무작정 block해놓고 기다릴 수는 없다. 따라서 작업을 호출할 때 주어진 데이터에 대해 수행할 작업을 지정해놓기만 하고(subscribe), 실제 작업은 데이터가 주어진 시점에 수행하면 된다. Rx에서는 이 패턴을 reactive pattern이라고 부른다. 이미지 한 장으로 보면 다음과 같다. 장황하게 적긴 했지만, Kotlin의 `..
ReactiveX는 비동기, 이벤트 기반 코드를 작성할 수 있게 하는 라이브러리이다. Java 시절에 많이 사용하던 RxJava가 유명하지만, 사실 웬만한 언어는 다 지원한다. ReactiveX(이하 Rx)는 기본적으로 데이터(Observable)를 관찰(observe)하고 처리하는 함수(observer)를 선언하는 observer 패턴을 사용한다. 마치 ``Iterable``의 데이터를 for문에서 하나씩 읽어 처리하듯이, Observable에서 주어지는 데이터를 observer가 읽고 처리한다. 개념 자체는 Kotlin의 ``Flow``와 매우 유사하다. Kotlin 등장 이전에 Rx를 사용하지 않던 기업이 있었을까? 라는 질문이 나올 정도로 RxJava는 유명한 라이브러리였고, 지금도 그렇다. 멀쩡..