상세정보
RxJava 프로그래밍
- 저자
- 유동환,박정준 공저
- 출판사
- 한빛미디어
- 출판일
- 2017-09-05
- 등록일
- 2019-12-19
- 파일포맷
- PDF
- 파일크기
- 5MB
- 공급사
- YES24
- 지원기기
-
PC
PHONE
TABLET
웹뷰어
프로그램 수동설치
뷰어프로그램 설치 안내
책소개
8가지 핵심 개념으로 쉽게 이해하는 리액티브 프로그래밍 입문
서버나 애플리케이션은 다양한 데이터를 처리하느라 늘 분주하다. 그런데 데이터양이 기하급수적으로 늘면서 기존의 프로그래밍 방식으로 이를 처리하기가 점점 어려워지고 있다. 이에 데이터의 입출력 흐름에 따라 많은 사용자 요청을 한꺼번에 그리고 동시에 처리하는 프로그래밍 기법을 연구하기 시작했고, 그 결과가 이 책의 주제인 리액티브 프로그래밍이다.
이 책은 자바 기반으로 리액티브 프로그래밍을 하는 RxJava 입문서다. 리액티브 프로그래밍을 접하면서 무수한 시행착오를 거친 저자가 국내 자바 개발자에게 맞는 RxJava 2 기반의 프로그래밍 노하우를 알려준다. Observable, 리액티브 연산자, 스케줄러, RxAndroid 활용, 디버깅, 예외 처리, 테스트, Flowable 등 RxJava를 시작하는 데 꼭 필요한 핵심 개념을 소개한다.
저자소개
생각을 즐기는 프로그래머. 연세대학교 정보대학원에서 경영정보학을 전공한 후 LG전자에서 안드로이드 앱을 개발했다. 최근에는 선행플랫폼개발팀으로 자리를 옮겨 IoT와 AI 관련 프로젝트를 진행하고 있다. 자바카페와 한국자바개발자협의회(JCO)에서 수년간 활동했다.
집필한 책으로는 『안드로이드를 위한 Gradle』(한빛미디어, 2016)이 있고, 번역한 책으로는 『Professional Java Web Services』(정보문화사, 2002)와 『그레이들 레시피』(한빛미디어, 2016)가 있다.
목차
Chapter 1 리액티브 프로그래밍 소개
__1.1 리액티브 프로그래밍
____1.1.1 자바 언어와 리액티브 프로그래밍
____1.1.2 리액티브 프로그래밍 개념 잡기
__1.2 RxJava를 만들게 된 이유
__1.3 RxJava 처음 시작하기
____1.3.1 io.reactivex
____1.3.2 Observable 클래스
____1.3.3 just() 함수
____1.3.4 subscribe() 함수
____1.3.5 System.out::println
____1.3.6 emit() 메서드
__1.4 RxJava를 어떻게 공부할 것인가
__1.5 마블 다이어그램 보는 법
__1.6 마치며
Chapter 2 Observable 처음 만들기
__2.1 Observable 클래스
____2.1.1 just() 함수
____2.1.2 subscribe() 함수와 Disposable 객체
____2.1.3 create() 함수
____2.1.4 fromArray() 함수
____2.1.5 fromIterable() 함수
____2.1.6 fromCallable() 함수
____2.1.7 fromFuture() 함수
____2.1.8 fromPubilsher() 함수
__2.2 Single 클래스
____2.2.1 just() 함수
____2.2.2 Observable에서 Single 클래스 사용
____2.2.3 Single 클래스의 올바른 사용 방법
__2.3 Maybe 클래스
__2.4 뜨거운 Observable
__2.5 Subject 클래스
____2.5.1 AsyncSubject 클래스
____2.5.2 BehaviorSubject 클래스
____2.5.3 PublishSubject 클래스
____2.5.4 ReplaySubject 클래스
__2.6 ConnectableObservable 클래스
__2.7 마치며
Chapter 3 리액티브 연산자 입문
__3.1 map() 함수
__3.2 flatMap() 함수
____3.2.1 구구단 만들기
__3.3 filter() 함수
__3.4 reduce() 함수
____3.4.1 데이터 쿼리하기
__3.5 마치며
Chapter 4 리액티브 연산자의 활용
__4.1 생성 연산자
____4.1.1 interval() 함수
____4.1.2 timer() 함수
____4.1.3 range() 함수
____4.1.4 intervalRange() 함수
____4.1.5 defer() 함수
____4.1.6 repeat() 함수
__4.2 변환 연산자
____4.2.1 concatMap() 함수
____4.2.2 switchMap() 함수
____4.2.3 groupBy() 함수
____4.2.4 scan() 함수
__4.3 결합 연산자
____4.3.1 zip() 함수
____4.3.2 combineLatest() 함수
____4.3.3 merge() 함수
____4.3.4 concat() 함수
__4.4 조건 연산자
____4.4.1 amb() 함수
____4.4.2 takeUntil() 함수
____4.4.3 skipUntil() 함수
____4.4.4 all() 함수
__4.5 수학 및 기타 연산자
____4.5.1 수학 함수
____4.5.2 delay() 함수
____4.5.3 timeInterval() 함수
__4.6 마치며
Chapter 5 스케줄러
__5.1 스케줄러 개념 배우기
__5.2 스케줄러의 종류
____5.2.1 뉴 스레드 스케줄러
____5.2.2 계산 스케줄러
____5.2.3 IO 스케줄러
____5.2.4 트램펄린 스케줄러
____5.2.5 싱글 스레드 스케줄러
____5.2.6 Executor 변환 스케줄러
__5.3 스케줄러를 활용하여 콜백 지옥 벗어나기
__5.4 observeOn() 함수의 활용
__5.5 마치며
Chapter 6 안드로이드의 RxJava 활용
__6.1 RxAndroid 소개
____6.1.1 리액티브 라이브러리와 API
____6.1.2 안드로이드 스튜디오 환경 설정
__6.2 RxAndroid 기본
____6.2.1 Hello world 예제
____6.2.2 제어 흐름
____6.2.3 RxLifecyle 라이브러리
____6.2.4 UI 이벤트 처리
__6.3 RxAndroid 활용
____6.3.1 리액티브 RecyclerView
____6.3.2 안드로이드 스레드를 대체하는 RxAndroid
____6.3.3 REST API를 활용한 네트워크 프로그래밍
__6.4 메모리 누수
____6.4.1 해결책 1: Disposable 인터페이스를 이용하여 명시적으로 자원 해제
____6.4.2 해결책 2: RxLifecycle 라이브러리 이용
____6.4.3 해결책 3: CompositeDisposable 클래스 이용
__6.5 마치며
Chapter 7 디버깅과 예외 처리
__7.1 디버깅
____7.1.1 doOnNext(), doOnComplete(), doOnError() 함수
____7.1.2 doOnEach() 함수
____7.1.3 doOnSubscribe(), doOnDispose(), 기타 함수
__7.2 예외 처리
____7.2.1 onErrorReturn() 함수
____7.2.2 onErrorResumeNext() 함수
____7.2.3 retry() 함수
____7.2.4 retryUntil() 함수
____7.2.5 retryWhen() 함수
__7.3 흐름 제어
____7.3.1 sample() 함수
____7.3.2 buffer() 함수
____7.3.3 throttleFirst()와 throttleLast() 함수
____7.3.4 window() 함수
____7.3.5 debounce() 함수
__7.4 마치며
Chapter 8 테스팅과 Flowable
__8.1 JUnit 5 활용
__8.2 TestObserver 클래스
__8.3 비동기 코드 테스트
__8.4 Flowable 클래스
____8.4.1 Observable과 Flowable의 선택 기준
____8.4.2 Flowable을 활용한 배압 이슈 대응
__8.5 마치며