책 이미지

책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 언어 > 자바
· ISBN : 9791161753270
· 쪽수 : 496쪽
· 출판일 : 2019-07-24
책 소개
목차
1장. 반응형 사고
__RxJava와 리액티브 익스텐션의 간략한 역사
__반응형으로 사고
__RxJava를 배워야 하는 이유
____책에서 배우게 될 내용
__설정
____중앙 저장소 탐색
__RxJava 간단히 알아보기
__RxJava 1.0과 RxJava 2.0? 어떤 것을 사용해야 할까?
__언제 RxJava를 사용할 것인가?
__요약
2장. 옵저버블과 구독자
__옵저버블
____옵저버블은 어떻게 작동하는가?
____Observable.create() 사용
____Observable.just() 사용
__Observer 인터페이스
____옵저버 구현과 구독
____람다를 사용해 간결히 표현하는 옵저버
__콜드 옵저버블과 핫 옵저버블
____콜드 옵저버블
____핫 옵저버블
____ConnectableOvservable
__다른 옵저버블 소스
____Observable.range()
____Observable.interval()
____Observable.future()
____Observable.emtpy()
____Observable.never()
____Observable.error()
____Observable.defer()
____Observable.fromCallable()
__Single, Completable 그리고 Maybe
____Single
____Maybe
____Completable
__해지처리
____옵저버 내부에서 디스포저블 다루기
____CompositeDisposable 사용
____Observable.create()를 통한 해지처리
__요약
3장 기본 연산자 101
__억제 연산자
____filter()
____take()
____skip()
____takeWhile()과 skipWhile()
____distinct()
____distinctUntilChanged()
____elementAt()
__변환 연산자
____map()
____cast()
____startWith()
____defaultIfEmpty()
____switchIfEmpty()
____sorted()
____delay()
____repeat()
____scan()
__감축 연산자
____count()
____reduce()
____all()
____any()
____contains()
__컬렉션 연산자
____toList()
____toSortedList()
____toMap()과 toMultiMap()
____collect()
__복구 연산자
____onErrorReturn()과 onErrorReturnItem()
____onErrorResumeNext()
____retry()
__액션 연산자
____doOnNext(), doOnComplete() 그리고 doOnError()
____doOnSubscribe()와 doOnDispose()
____doOnSuccess()
__요약
4장. 연산자 결합
__병합 연산자
____Observable.merge()와 mergeWith()
____flatMap()
__연결 연산자
____Observable.concat()과 concatWith()
____concatMap()
__Ambigous 연산자
__지핑 연산자
__최근 배출 결합 연산자
____withLatestFrom()
__그루핑 연산자
__요약
5장. 멀티캐스팅, 전달 및 캐싱
__멀티캐스팅의 이해
____연산자를 이용한 멀티캐스팅
____멀티캐스팅의 사용 시점
__자동 연결
____autoConnect()
____refCount()와 share()
__재전송 및 캐싱
____재전송
____캐싱
__서브젝트
____PublishSubject
____서브젝트를 사용할 때
____서브젝트를 잘못 사용할 때
____서브젝트 직렬화
____BehaviorSubject
____ReplaySubject
____AsyncSubject
____UnicastSubject
__요약
6장. 동시성과 병렬처리
__동시성이 필요한 이유
__동시성 요약
____병렬처리 이해
__RxJava의 동시성 소개
____애플리케이션의 활성 상태 유지
__스케줄러에 대한 이해
____계산 스케줄러
____IO 스케줄러
____새로운 스레드
____싱글 스케줄러
____트램펄린
____ExecutorService
____스케줄러 시작과 종료
__subscribeOn() 이해
____subscribeOn()의 뉘앙스
__observeOn() 이해
____UI 이벤트 스레드에 대해 observeOn() 사용
____observeOn()의 주의 사항
__병렬처리
__unsubscribeOn()
__요약
7장. 스위칭, 스로틀링, 윈도잉 및 버퍼링
__버퍼링
____고정 크기 버퍼링
____시간 기반 버퍼링
____경계 기반 버퍼링
__윈도잉
____고정 크기 윈도잉
____시간 기반 윈도잉
____경계 기반 윈도잉
__스로틀링
____throttleLast()/sample()
____throttleFirst()
____throttleWithTimeout()/debounce()
__스위칭
__키 입력 그루핑
__요약
8장. 플로어블과 백프레셔
__백프레셔에 대한 이해
____백프레셔가 필요한 예제
____플로어블 소개
____플로어블과 백프레셔를 사용해야 하는 경우
__플로어블과 구독자의 이해
____구독자
__플로어블 생성하기
____Flowable.create()와 BackpressureStrategy 사용
____Observable을 Flowable으로 변환(또는 그 반대)
____onBackpressureXXX() 연산자 사용
____onBackPressureBuffer()
____onBackPressureLatest()
____onBackPressureDrop()
__Flowable.generate()의 사용
__요약
9장. 트랜스포머와 커스텀 연산자
__트랜스포머
____ObservableTransformer
____FlowableTransformer
____트랜스포머에서 상태공유 피하기
__to()를 사용해 이해하기 쉽게 전환하기
__연산자
____ObservableOperator 구현
____FlowableOperator
__Single, Maybe 및 Completable을 위한
__커스텀 트랜스포머 및 연산자
__RxJava2-Extras와 RxJava2Extensions 사용하기
__요약
10장. 테스트와 디버깅
__JUnit 설정
__블로킹 구독자
__블로킹 연산자
____blockingFirst()
____blockingGet()
____blockingLast()
____blockingIterable()
____blockingForEach()
____blockingNext()
____blockingLatest()
____blockingMostRecent()
__TestObserver와 TestSubscriber 사용
__TestScheduler를 통한 시간 조작
__RxJava 코드 디버깅
__요약
11장. 안드로이드에서의 RxJava
__안드로이드 프로젝트 만들기
____Retrolambda 설정
____RxJava 및 기타 라이브러리의 구성
__RxJava와 RxAndroid 사용
____RxBinding의 사용
__다른 RxAndroid 바인딩 라이브러리
__안드로이드에서 RxJava의 라이프 사이클과 주의 사항
__요약
12장. 새로운 코틀린에 RxJava 사용
__코틀린 사용 이유
__코틀린의 구성
____그레이들에서 코틀린의 구성
____메이븐에서 코틀린의 구성
____RxJava 및 RxKotlin의 구성
__코틀린의 기초
____코틀린 파일 만들기
____속성과 변수 할당
____확장 함수
____코틀린 람다
__확장 연산자
__RxKotlin의 사용
__SAM
__let()과 apply()
____let() 사용
____apply() 사용
__튜플과 데이터 클래스
__ReactiveX와 코틀린의 미래
__요약