RxJava Essentials [Rx자바로 배우는 리액티브 프로그래밍]
- 원서명RxJava Essentials (ISBN 9781784399108)
- 지은이이반 모르질로(Ivan Morgillo)
- 옮긴이강경구
- ISBN : 9788960778146
- 15,000원
- 2016년 01월 28일 펴냄 (절판)
- 페이퍼백 | 144쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
요약
Rx자바는 비동기 처리와 이벤트 기반의 프로그래밍을 위한 리액티브 익스텐션(Reactive Extension)의 JVM 버전이다. 이 책은 Rx자바를 배우면서 안드로이드 프로젝트에 빠르게 적용하고 싶은 독자를 위해 쓰여졌다. Rx자바의 기능을 Rx안드로이드 프로젝트를 통해 설명함으로써 Rx자바와 Rx안드로이드의 기능을 빠르게 습득할 수 있다. Rx자바를 경험하고 싶은 개발자에게 좋은 길잡이가 되어줄 것이다.
이 책에서 다루는 내용
옵저버(Observer) 패턴을 마스터하고 옵저버블(Observable) 객체와 시퀀스 생성
객체 리스트를 옵저버블 시퀀스로 변환
기존의 메소드를 리액티브 비동기 함수로 전환
필요한 값만 함수로 오도록 옵저버블 시퀀스 필터링
옵저버블 시퀀스를 새로운 시퀀스로 변환하거나 조작하는 방법
새로운 시퀀스를 만들기 위해 옵저버블을 결합, 병합, 연결
스케줄러를 이용한 손쉬운 멀티스레딩, 동시성 기법을 배우기 위한 안드로이드 메인 스레드와 비동기 태스크 배제
레트로핏(Retrofit) 옵저버블 응답을 이용해 원격 REST API와 통신
Rx자바 기반의 첫 안드로이드 앱 제작
이 책의 대상 독자
자바 개발 경험이 있는 독자라면 리액티브 프로그래밍은 프로그래밍 언어를 변경하도록 강요하지 않으면서도 백엔드 시스템에서 확장성과 동시성을 다루는 새로운 방법을 제공한다. 이 책은 Rx자바의 핵심을 배워 안드로이드 플랫폼의 한계를 극복하고, 이벤트 기반의 리액티브적이면서 매끄럽게 동작하는 안드로이드 애플리케이션을 개발하는 데 도움을 줄 것이다.
이 책의 구성
1장, ‘RX: 닷넷에서 Rx자바까지’는 리액티브 세계로 가는 첫 번째 단계다. 리액티브적인 접근법과 고전적인 접근법을 서로 비교하면서 이들 간의 유사점과 차이점을 알아본다.
2장, ‘왜 옵저버블인가?’는 옵저버 패턴을 살펴보고, Rx자바가 이를 어떻게 구현하고 확장했는지, 또 옵저버블이란 무엇이며 이터러블(Iterable)과는 어떤 관련이 있는지 살펴본다.
3장, ‘헬로 리액티브 월드’는 지금까지 배운 내용을 바탕으로 첫 번째 리액티브 안드로이드 앱을 만들어본다.
4장, ‘옵저버블 필터링’은 옵저버블 시퀀스의 핵심인 필터링을 파헤친다. 발행한 옵저버블에서 우리가 필요한 값만 선택하는 방법이나 유한한 값을 얻는 방법 그리고 오버플로 상황을 대처하는 방법을 비롯해 유용한 트릭도 배워볼 것이다.
5장, ‘옵저버블 변환’은 필요한 시퀀스를 생성하기 위해 옵저버블 시퀀스를 변환하는 방법을 알아본다.
6장, ‘옵저버블 결합’은 함수를 결합하는 법을 살펴보고, 우리가 생성한 옵저버블이 여러 옵저버블과 동시에 동작하는 방법을 배워본다.
7장, ‘스케줄러: 안드로이드 메인 스레드 문제 해결'은 Rx자바 스케줄러를 이용해 멀티스레딩과 동시성 프로그래밍을 다루는 방법을 보여준다. 네트워크 오퍼레이션과 메모리 접근 또는 시간이 많이 소요되는 작업을 리액티브적인 방법으로 생성해볼 것이다.
8장, ‘REST 안에서 평화를: Rx자바와 레트로핏’에서는 능률적이면서도 효과적으로 REST 클라이언트를 만들기 위해 스퀘어의 레트로핏을 Rx자바와 함께 사용하는 방법을 알려준다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
목차
목차
- 1장 RX: 닷넷에서 Rx자바까지
- 마이크로소프트 리액티브 익스텐션
- 자바 세계에 상륙: 넷플릭스 Rx자바
- Rx자바는 무엇이 다른가?
- 정리
- 2장 왜 옵저버블인가?
- 옵저버 패턴
- 옵저버 패턴은 언제 사용되는가?
- Rx자바 옵저버 패턴 툴킷
- Observable
- 핫 옵저버블과 콜드 옵저버블
- 옵저버블 생성
- Subject = Observable + Observer
- PublishSubject
- BehaviorSubject
- ReplaySubject
- AsyncSubject
- Observable
- 정리
- 3장 헬로 리액티브 월드
- 엔진 점화!
- 의존성
- Rx안드로이드
- Utils
- 롬복(Lombok)
- 버터 나이프(Butter Knife)
- 레트로람다(Retrolambda)
- 의존성
- 첫 번째 옵저버블
- 리스트로부터 옵저버블 생성하기
- 좀 더 많은 예제
- just()
- repeat()
- defer()
- range()
- interval()
- timer()
- 정리
- 4장 옵저버블 필터링
- 시퀀스 필터링
- 필요한 것만 얻기
- take()
- taskLast()
- 단 한 번만 발행
- distinct()
- distinctUntilChanged()
- first()와 last()
- skip()과 skipLast()
- elementAt()
- sample()
- timeout()
- debounce()
- 정리
- 5장 옵저버블 변환
- *map 가족
- map()
- flatMap()
- concatMap()
- flatMapIterable()
- switchMap()
- scan()
- groupBy()
- buffer()
- window()
- cast()
- 정리
- 6장 옵저버블 결합
- merge()
- zip()
- join()
- combineLatest()
- and(), then(), when()
- switch()
- startWith()
- 정리
- 7장 스케줄러: 안드로이드 메인 스레드 문제 해결
- StrictMode
- 블로킹 I/O 오퍼레이션 피하기
- 스케줄러
- Schedulers.io()
- Schedulers.computation()
- Schedulers.immediate()
- Schedulers.newThread()
- Schedulers.trampoline()
- 논블로킹 I/O 오퍼레이션
- SubscribeOn과 ObserveOn
- 시간이 오래 걸리는 작업 다루기
- 네트워크 작업 실행
- 정리
- 8장 REST 안에서 평화를: Rx자바와 레트로핏
- 프로젝트 목표
- 레트로핏
- 앱 구조
- 액티비티 클래스 생성
- RecyclerView 어댑터 생성
- 일기 예보 검색하기
- 웹사이트 열기
- 정리
도서 오류 신고
정오표
정오표
[p.64 : 1행]
taskLast()
->
takeLast()
[p.64 : 2행]
taksLast()
->
takeLast()