스크랩

구간

RxJava Essentials Rx자바로 배우는 리액티브 프로그래밍

이반 모르질로 저 | 강경구 역 | 에이콘출판 | 2016년 01월

미리보기 북트리

정가
$30.00
판매가
$21.87 (27%↓) 최저가 보상
적립금
$0.44 (2%P)

품절된 상품입니다.

이 책을 꼭 원하시는 고객님께서는 아래 "상품문의"를 클릭 후 구매의사를
알려주세요. 책이 확보 될 경우 연락 드리겠습니다.

북카트 바로구매 위시리스트

평점 -  ·  리뷰 0

리뷰 쓰기

ISBN : 9788960778146 / 146쪽 188 x 235 (㎜)

이 상품에 궁금하신점이 있으세요? 1:1상담문의

추천inside
Adobe Flash Player 가져오기

이 분야의 베스트셀러

아래의 도서와 구매하시면 이 도서들의 적립금을 즉시적용해 드립니다.

책 소개

출판사 리뷰

출판사 서평 ★ 요약 ★ Rx자바는 비동기 처리와 이벤트 기반의 프로그래밍을 위한 리액티브 익스텐션(Reactive Extension)의 JVM 버전이다. 이 책은 Rx자바를 배우면서 안드로이드 프로젝트에 빠르게 적용하고 싶은 독자를 위해 쓰여졌다. Rx자바의 기능을 Rx안드로이드 프로젝트를 통해 설명함으로써 Rx자바와 Rx안드로이드의 기능을 빠르게 습득할 수 있다. Rx자바를 경험하고 싶은 개발자에게 좋은 길잡이가 되어줄 것이다. ★ 이 책에서 다루는 내용 ★ ■ 옵저버(Observer) 패턴을 마스터하고 옵저버블(Observ... ★ 요약 ★ 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자바와 함께 사용하는 방법을 알려준다.

저자 소개

  • 저자 : 이반 모르질로
저자 이반 모르질로(Ivan Morgillo)은 몇 년 후에 엔지니어가 되기 전까지는 그저 C64와 기본적인 기술을 지닌 어린아이였다. 이탈텔(Italtel)과 텔레콤 이탈리아(Telecom Italia)에서 임베디드 시스템 컨설턴트로 근?무한 후 안드로이드로 분야를 옮겼다. 델타트레(Deltatre)와 몬디아 미디어(Mondia Media), 클레버테크(Clevertech)에서는 컨설턴트로 근무했다.
현재는 모바일과 임베디드 애플리케이션 개발 회사인 알터 에고 솔루션즈(Alter Ego Solutions)를 운영하며, 오픈소스 프로젝트에 기여하면서 주말에는 여전히 개인 안드로이드 프로젝트를 진행 중이다.

책 속에서

사람들 주머니마다 스마트폰이 한 대씩 있는 세상에서는, 매끄럽게 동작하면서도 즐거운 사용자 경험을 제공하도록 앱을 디자인하고 만드는 일이 필수적이다. Rx자바를 이용한 리액티브 프로그래밍 방식은 개발자가 안드로이드 플랫폼의 한계를 이겨내고 놀랄 만한 안드로이드 앱을 만드는 데 도움을 준다. 이 책은 리액티브 프로그래밍의 기초와 옵저버(Observer) 패턴의 개념부터 Rx자바의 주된 기능까지, 실용적인 예제 코드와 실제 앱이 수반된 실용적인 여정이 될 것이다. 이 책에서는 옵저버블을 맨 처음부터 생성하는 방법과, 리스트나 기존 코드에 있는 함수로 옵저버블을 생성하는 방법을 보여준다. 사용자가 원하는 값만을 지닌 새로운 시퀀스를 만들기 위해 옵저버블 시퀀스를 필터링하는 방법을 배우고, 함수를 옵저버블에 적용하거나 옵저버블의 연쇄적 사용 또는 병합하거나 지핑(zippng)하는 방법도 배워본다. 그리고 안드로이드의 스레드와 동시성 지옥(concurrency hell)을 극복하기 위한 Rx안드로이드 스케줄러의 사용법도 알아본다. Rx자바와 레트로핏(Retrofit)을 결합해 손쉽게 REST API 통신을 하는 실용적인 예제로 이 책을 마무리할 것이다.
(/ '지은이의 말' 중에서)



안드로이드 개발자라면 누구나 비동기 처리로 골머리를 앓은 경험이 있을 것이다. 모바일 디바이스의 하드웨어 성능이 뛰어나다고 하더라도, 매끄럽게 동작하는 앱을 구현하려면 비동기 처리가 반드시 필요하다. 안드로이드에서는 이러한 비동기 처리를 위해 핸들러(Handler)나 비동기 태스크(AsyncTask) 같은 기능을 제공하지만, 고수준의 비동기 동작을 구현하기란 쉽지 않다. Rx자바와 Rx안드로이드는 이러한 비동기 작업을 손쉽게 처리해주고 개발자가 구현해야 하는 로직에 집중하도록 도와준다. 또한 자바 8에서 추가된 스트림(Stream)에서나 사용할 수 있었던 맵(map)이나 필터(filter) 같은 기능도 제공해, 데이터를 원하는 입맛대로 변경하거나 조작할 수도 있다. 하지만 Rx자바는 진입장벽이 높다는 문제 때문에 이를 프로젝트에 적용하는 데 있어 걸림돌이 되기도 한다.

이 책은 Rx자바를 배우면서 안드로이드 프로젝트에 빠르게 적용하고 싶은 독자를 위한 책이다. Rx자바의 기능을 설명하고 Rx안드로이드를 이용한 안드로이드 프로젝트를 만들어봄으로써 Rx자바와 Rx안드로이드의 기능을 빠르게 습득할 수 있게 했다. 더욱이 버터 나이프(Butter Knife)나 레트로 람다(RetroLambda) 같이 실제 실무에서 많이 사용하는 유용한 라이브러리를 함께 사용함으로써 여러 라이브러리의 사용법도 배울 수 있다는 점은 이 책의 또 다른 매력이라고 할 수 있다. 4, 5, 6장에서는 Rx자바의 진수를 핵심만 요약해 설명함으로써 Rx자바가 제공하는 여러 기능을 한눈에 파악할 수 있다. 7장에서는 안드로이드 개발자가 반드시 알아야 할 스케줄러를 이용한 스레드 관리 기법을 설명한다. 마지막 장에서는 안드로이드 진영에서 유명한 스퀘어(Square)의 레트로핏(Retrofit)과 Rx자바를 함께 사용하는 방법을 설명하면서 Rx자바를 사용하는 개발자에게 꼭 필요한 꿀 팁을 제공한다.

원서는 Rx자바 1.0.x 버전과 Rx안드로이드 0.24 버전을 기준으로 쓰였다. 원서가 출간된 후 Rx안드로이드는 1.0.0 을 발표했고 메이저 업데이트가 이루어지면서 많은 변화가 있었다. 그중 일부 기능은 삭제됐고 일부는 다른 프로젝트로 분리되면서 결과적으로 Rx안드로이드는 경량화됐다.

이는 Rx자바와는 별개로 Rx안드로이드의 사용 방법에 변화가 생긴 것이다. 이러한 변경사항을 예제에 직접 적용하다 보면, Rx안드로이드가 추구하고자 하는 방향성을 이해함은 물론 Rx안드로이드를 공부하는 또 다른 방법이 될 것이다. 1.x에서 변경된 사항은 Rx안드로이드의 깃허브(https://github.com/ReactiveX/RxAndroid/wiki)와 댄 루(Dan Lew)의 블로그(http://blog.danlew.net/2015/09/01/how-toupgrade-to-rxandroid-10)에서 확인할 수 있다.
(/ '옮긴이의 말' 중에서)

목차

목차
1장 RX: 닷넷에서 Rx자바까지
마이크로소프트 리액티브 익스텐션
자바 세계에 상륙: 넷플릭스 Rx자바
__Rx자바는 무엇이 다른가?
정리
2장 왜 옵저버블인가?
옵저버 패턴
__옵저버 패턴은 언제 사용되는?가?
Rx자바 옵저버 패턴 툴킷
__Observable
____핫 옵저버블과 콜드 옵저버블
____옵저버블 생성
__Subject \u003d Observable + Observer
____PublishSubject
____BehaviorSubject
____ReplaySubject
____AsyncSubject
정리
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 어댑터 생성
____일기 예보 검색하기
____웹사이트 열기
정리

top