Language/RxJava

Language/RxJava

[RxJava] 여러개 Completable 결합 - andThen

안녕하세요. 점냥입니다:) 이번 포스팅에서도 굉장히 오랜만에 인사드린 것에 대해서 죄송하다는 말씀 먼저 드려야 할 것 같습니다... ㅎ 변명을 하자면 취준, 동아리, 요즘 새벽 시간에 열심히 활동 중인 디스코드로 인해 블로그 활동이 소홀했습니다. 반성합니다 ㅠ 이번 포스팅에서는 현재 개발 중인 프로젝트에서 고민했던 주제인 Completable 결합하는 방법입니다. 이미지를 한 개 저장할 때 진행 중인 프로젝트에서는 Firebase Storage에 이미지를 저장하고 결과 값으로 Completable 스트림을 반환합니다. ViewModel에서 코드는 다음과 같이 같습니다. class MainViewModel( private val imageService: ImageService ) : BaseViewMode..

Language/RxJava

[RxJava] Operators - 변환

안녕하세요 점냥입니다 :) 지난 포스팅에서 Rx Operator의 주요 생성 함수들을 알아보았고 이번 포스팅에서는 변환해주는 Rx Operator에 대해서 알아보겠습니다. 만약 다른 RxJava의 주요 함수에 대해서 알고 싶다면 공식 링크를 클릭해주세요 RxJava Operators 분류 생성 just(), fromArray(), fromIterator(), create(), Interval() 변환 map(), flatMap(), cancatMap(), switchMap(), reduce(), scan() 제어 filter(), take(), skip() 결합 zip(), combineLatest() map - 기본적인 데이터 변환 String[] nums = new String[] {"1", "2",..

Language/RxJava

[RxJava] Operators - 생성

안녕하세요 점냥입니다 :) Rx는 데이터를 제어/관리 하는 다양한 Operator를 제공해주고 있고 개발자들은 상황에 알맞은 Operator 들을 골라 데이터 흐름을 생성/ 제어해야 해요. 따라서 Opeators 많이 알아 두는 것이 중요하지만 외울 수 없을 만큼 다양하기 때문에 이번 포스팅에서는 주요 함수들 중 생성 함수에 대해서만 알아볼게요. RxJava Operators 분류 생성 just(), fromArray(), fromIterator(), create(), Interval() 변환 map(), flatMap(), cancatMap(), switchMap(), reduce(), scan() 제어 filter(), take(), skip() 결합 zip(), combineLatest() Rx에서..

Language/RxJava

[RxJava] Hot Observable

RxJava의 다양한 연산자를 알고 가기 전, 꼭 알아야 하는 개념이 있다고 한다. 바로 Hot Observable 과 Cold Observable 이다. Cold Observable 데이터 소스에서 발행되는 Data들은 구독자가 구독을 하고 나서부터 발행을 시작한다. 즉, 구독자는 데이터 소스의 Data를 모두 받음을 보장한다. 사실 Cold Observable은 이전 포스팅에서 다루었던 Observable, Flowable, Single 등 거의 대부분 해당된다. 하지만 이번 포스팅에서 '데이터를 모두 받음을 보장한다는 것이 뭘까'에 대해 알아보자. String[] strings = new String[]{"딸기", "소스", "치킨"}; Flowable source = Flowable.fromArr..

Language/RxJava

[RxJava] BaseClasses

ReativeX는 Data를 스트림 형식으로 전달하면서 여러 이벤트를 발생하고 관찰자는 해당 이벤트일 때 어떤 행동을 할 것인지 정의할 수 있다. 그리고 그 스트림과 이벤트는 Rx의 BaseClasses에 따라 차이를 보인다. Observable Observable은 RxJava 1.x에서 유일하게 수의 제한 없는 (0.. N flows) Data의 흐름을 명시하기 위해 사용했던 클래스이다. 하지만 Observable은 자동으로 Backpressure를 지원하지 않아서 별도의 함수 호출로 해당 기능을 지원하게 만들어야 했고, 그렇지만 Rx를 잘 알지 못하는 초보 개발자들을 위해 버전 2.x부터 Backpressure를 자동으로 지원하는 Flowable 클래스가 나왔다. 그래서 요즘 최신 RxJava 글들..

Language/RxJava

Hello RxJava, Rx는 왜 사용할까?

요즘 신입 채용 조건에 RxJava 사용 경험이 많이 포함되어 있다. 옆에서 주워들은 조언으로 Rx는 신입 기준으로 마스터하기엔 힘든 라이브러리이며 "우리 회사에서 Rx를 사용하니 한번 뭔지 알아는 와라"라는 뜻이라고 한다. 그러니 편한 마음으로 RxJava를 알아보자 RxJava란? Rx는 ReactiveX의 약자로 Rxjava는 명령형 프로그램인 Java 언어 방식을 반응형 프로그래밍으로 사용할 수 있게끔 도와주는 라이브러리이며 이벤트에 대해서 조건 처리하거나, 조합하거나 오류를 처리 하는등 복잡한 비동기 연산에 대해 효율성을 높여준다. 반응형 프로그래밍이라고 정의하면 낯설어 할 수 있는 데 우리는 이미 반응형 프로그래밍과 유사한 코드를 경험해 보았다. Button의 클릭 이벤트, 클래스간 인터페이스..

점냥
'Language/RxJava' 카테고리의 글 목록