반응형 Android 개발/RxJava, RxAndroid5 RxJava CompositeDisposable의 clear()와 dispose()의 차이점 CompositeDisposable은 여러 Disposable 객체를 한 곳에서 관리할 수 있는,RxJava의 유용한 클래스입니다.이 CompositeDisposable에 dispose()함수를 사용하면,구독을 해제하고 관련리소스를 해제해 줍니다.dispose는 '처분하다', '처리하다'의 뜻을 가지고 있기도 하지요.그런데, clear()라는 메소드도 있습니다. 메소드 이름만 보면 둘 다 비슷한 의미를 가지고 있는 것 같은데,어떻게 다른 걸까요?오늘 글에서 보겠습니다. 1. dispose()dispose()는,현재 CompositeDisposable에 추가된 모든 Disposable을 해제하고, CompositeDisposable 자체도 해제하는 강력한 메소드입니다. 여기서 말하는 Disposable은.. 2024. 11. 15. RxJava fromAction()과 andThen() 으로 구현하는 순차적 실행 코드 오늘은 RxJava의 연산자인 Completable.fromAction()과 andThen() 연산자를 이용해서,순차적으로 실행이 보장되는 코드를 구현하는 방법을 정리하였습니다. 1. Completable.fromAction()1-1. Completable.fromAction()Completable.fromAction() 메서드는,주어진 Action을 실행하고,그 결과를 Completable 형태로 반환합니다. 본격적으로 이해하기 전에 이 메소드의 특징을 간단히 알아보겠습니다.Completable이 구독될 때까지 실행되지 않음.각 구독마다 Action이 새로 실행됨기본적으로 구독이 발생한 스레드에서 실행됨 ("subscribe()"를 호출한 스레드에서 실행)하지만 subscribeOn()을 통해 실행 .. 2024. 11. 8. RxJava concatMap 정리: flatMap과 비교하며 이해하기 비동기 병렬 처리는 성능 향상에 큰 도움이 되지만, 데이터의 처리 순서가 중요한 상황도 많습니다.예를 들어 데이터베이스 작업이나 파일 처리와 같이 순서가 중요한 작업에서는 순차적 처리가 필수적이지요.RxJava에서는 이러한 순차적 처리를 보장해주는 concatMap 연산자를 제공해 주는데요. 오늘은 이를 살펴보고,비동기 처리에 사용하는 flatMap과 비교하며 이해해 보겠습니다.1. concatMap 의 특징1-1. 순서보장과 순차적 실행concatMap은 실행순서에 있어서 다음과 같은 특징을 가지고 있습니다.원본 Observable의 항목 순서를 엄격히 유지원본 Observable에서 방출된 각 항목에 대해 생성된 Observable들을 순차적으로 실행이전 Observable이 완료된 후에만 다음 O.. 2024. 11. 3. RxJava flatMapCompletable 과 flatMap + ignoreElement 조합의 차이 이해하기 오늘은 RxJava에서 Completable을 방출해주도록 변환해주는 연산자인,flatMapCompletable과 flatMap + ignoreElement 조합의 차이에 대해서 알아보겠습니다. 1. flatMapCompletableflatMapCompletable은,Single이나 Observable의 각 항목을 Completable로 변환합니다. 여기서 말하는 Completable은,onComplete 혹은 onError 이벤트만 발생시키는,Observable 을 말합니다. Completable을 방출한다는 것은,flatMap을 통해서 작업을 한 후,반환되는 데이터가 필요하지 않다는 뜻 입니다.이런 종류의 작업으로는 데이터베이스에 저장하는 경우를 생각해 볼 수 있겠네요. Observable.just(.. 2024. 11. 2. RxJava ignoreElements() 연산자에 대한 이해 오늘은 RxJava의 연산자 중,ignoreElements()에 대해서 알아보겠습니다. 1. ignoreElements()연산자 이름만 보면 이해하기가 쉬운데요.Observable 에서 흘러나오는,데이터를 모두 무시하는 연산자입니다. 그런데, 그냥 무시할꺼면 왜 사용할까요?흘러나오는 데이터가 필요없기 때문입니다.단순히 완료 되었는지, 또는 오류가 발생했는지만, 알고 싶을 때 사용합니다. ignroeElements()를 사용해 주면, 원래의 Observable이 Completable로 변환되는데요.Completable은,onComplete 또는 onError 이벤트만 발생시키는,특별한 유형의 Observable입니다. Observable numbers = Observable.range(1, 5);numbe.. 2024. 10. 30. 이전 1 다음