RxJava

    RxJava 03 - RxJava의 매커니즘

    RxJava Chapter 03 - RxJava의 매커니즘 RxJava와 디자인 패턴 RxJava는 옵저버 패턴, 이터레이터 패턴 두가지에 영향을 받아서 작성되었음. Observer 패턴 관찰 대상 객체의 상태 변화가 발생하면 관찰하는 객체가 변화에 따른 작업을 처리하는 디자인 패턴 옵저버 패턴의 클래스 클래스 상세 Subject 관찰 대상을 나타내는 클래스. 이 클래스에 Observer를 추가,삭제할 수 있으며 상태 변화 발생시 통지할 수 있다. Observer 변화가 발생했을 때 이를 처리하는 메서드를 가진 인터페이스 ConcreteSubject Subject 상속 클래스로, 실제 변화가 이 클래스에 나타나며 변화가 발생했을 때 통지메서드를 통해 Observer에 통지한다. ConcreteObserv..

    RxJava 02 - RxJava를 사용하는 데 필요한 배경 지식

    RxJava Chapter 02 - RxJava를 사용하는 데 필요한 배경 지식 람다식 함수형 인터페이스를 구현하기 위해 자바 8에서 도입한 표현식 RxJava에서 람다식을 사용하여 생산성을 높일 수 있다. 람다식을 이용하면 구현해야할 인터페이스나 메서드의 선언은 생략하고, 인자와 실행문만으로 작성되며, 인자 타입, return값등도 생략이 가능하다. 예제 BiFunction function = new BiFunction() { @Override public BigDecimal apply(Integer value1, Integer value2) { return new BigDecimal(value1 + value2); } }; 이를 람다식으로 표현하면 다음과 같다. BiFunction function =..

    RxJava 01 - (번외) Hot Observable 예제 in Android

    지난 포스팅 의 내용 중 Hot Observable에 대해 궁금하여 좀 더 알아보았다. Cold 생산자: 일반 동영상을 보는것처럼 구독을 요청하면, 아이템을 발행하기 시작한다. Hot 생산자: 실시간 방송을 보는것처럼, 아이템 구독이 시작된 후로 모든 구독자에게 동시에 같은 아이템을 발행한다. 데이터 기반(data-driven)의 옵저버블은 대부분 Cold Observable 로 만들어진다. HTTP의 GET이나 데이터베이스 쿼리처럼, 동일한 옵저버블 객체에서 서로 다른 결과를 생성할 때에도 마찬가지로 Cold 속성을 지닌다. 실제 사용 예시로는 Retrofit 통신이나 Room 쿼리 같은 경우가 있다. (가장 일반적으로 사용하는 타입) Hot Observable은 아이템 발행이 시작된 이후로 모든 구독..

    RxJava 01 - RxJava란 무엇인가?

    RxJava 01 - RxJava란 무엇인가?

    이 글은 RxJava 리액티브 프로그래밍(저자 스다 토모유키) 책을 정리한 글입니다. 책에 나와있는 Java 코드는 전부 Kotlin으로 변환하여 작성하였습니다. (RxKotlin) 책 정보: https://book.naver.com/bookdb/book_detail.nhn?bid=14689555 RxJava Chapter 01 RxJava란 무엇인가? Java에서 리액티브 프로그래밍을 구현하는데 사용하는 라이브러리. 2.0 버전부터 Reactive Streams를 이용하여 데이터 스트림을 비동기로 처리하는 인터페이스를 제공한다. 기본 사용법 (in Kotlin) val flowable = Flowable.just("Hello", "World") flowable.subscribe { println(it)..