RxJava를 활용한 리액티브 프로그래밍(프로그래밍인사이트)
RxJava의 개념과 사용법, 실무 활용까지 | 안드로이드 활용 사례 포함
리액티브 프로그래밍은 확장이 쉽고 성능이 뛰어난 코드를 작성할 때 큰 도움이 된다. 이 책을 통해 자바 개발자들은 문제를 리액티브 방식으로 보는 방법을 배우고, 새로운 프로그래밍 패러다임의 뛰어난 기능을 활용하여 프로그램을 만들 수 있게 될 것이다. 저자들은 RxJava 라이브러리를 활용하여 안드로이드 기기와 서버의 성능 문제를 해결하는 구체적인 예제를 수록했다. RxJava가 병렬성과 동시성에 끼친 영향과 이를 통해 오늘날의 문제들을 해결하는 방법을 배울 것이다. 또한 곧 출시될 2.0 버전의 특징과 차이점도 설명한다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
- 정상혁, 네이버
이 책은 실제로 RxJava를 구현하고 사용하면서 수많은 경험을 쌓아온 저자가 보여주는 RxJava의 개념과 용도, 특히 리액티브 프로그래밍에 대한 심층적인 탐구 결과물이다. 리액티브를 알고 싶다면 이 책을 읽는 것보다 더 좋은 방법은 없다.
- 에릭 마이어(Erik Meijer), Applied Duality의 대표이자 창업자
"RxJava는 최신 안드로이드 애플리케이션에서 필요로 하는 높은 안정성과 동시성, 비동기 구현을 관리할 수 있는 매우 중요한 도구이다. 이 책은 RxJava를 공부하기 위한 학습 도구이자 라이브러리 참고 자료로, 이 책 없이는 RxJava를 완전히 이해하기가 어려울 것이다."
- 제이크 와튼(Jake Wharton), Square의 소프트웨어 엔지니어
"토마스와 벤은 복잡한 문제를 쉽고 간결하게 설명할 수 있는 재능이 있다. 덕분에 이 책을 읽는 것은 즐거운 경험이고, 리액티브 프로그래밍과 RxJava를 파악하고자 하는 모든 JVM 개발자에게 필수적이다. 저자는 동시성이나 함수형 프로그래밍, 디자인 패턴, 리액티브 프로그래밍 등 많은 주제를 다룬다. 그러나 독자에게 정보를 쏟아내는 방식이 아니라 개념들을 안내해주고 점점 더 진보된 개념과 기법을 보여준다."
- 시몬 호마(Szymon Homa), 시니어 소프트웨어 개발자
내가 IT 업계에서 경영을 오래 해오긴 했어도 개발자는 아니다. 그러니 내가 이런 전문 기술서적을 추천한다는 건 터무니없는 일이다. 그럼에도 이런 시도를 하는 것은, 번역한 김인태 님의 기술적 진지함을 믿기 때문이다. 내가 아주 좋아하는 레이 오지가 이 기술의 탄생에 영감을 주었다는 게 또 하나의 이유일 수 있다. 다른 하나는 이런 새로운 접근을 한 명이라도 더 봐주었으면 하는 바람 때문이다. 자바를 별로 쓸 일이 없더라도, 대용량 실시간 분산처리 업무를 하지 않더라도, 이런 지식의 습득은 시야를 넓혀주고 상상력을 자극한다.
구글에 인수당한 솔루션 회사의 창업자 엔지니어가 세르게이 브린과 래리 페이지를 처음 만나서 들었다는 얘기를 인용하며 추천사를 마치고자 한다. "지금까지 당신이 만들었던 알고리즘은 모두 잊어주세요. 무한 대의 서버가 주어진다면, 당신은 이 문제를 어떻게 풀겠습니까?"
'대용량 실시간 분산처리'의 세계로 들어온 것을 환영한다!
- 박태웅 KST&Partners 대표, 전 kth 부사장
[이 책에서 다루는 내용들]
- '콜백 지옥'에 빠지지 않으면서 다수의 비동기 소스에 반응하는 프로그램 작성
- 쏟아지는 데이터를 Observable로 대처하는 방법
- 리액티브 스타일로 작성된 프로그램을 디버그하고 테스트하는 방법
- 프로그램을 작성할 때 병렬성과 동시성을 효과적으로 활용하는 방법
- RxJava 버전 2로 이행하는 방법
목차
목차
--리액티브 프로그래밍과 RxJava
--언제 리액티브 프로그래밍이 필요한가
--RxJava는 어떻게 동작하는가
--하드웨어 공감 - 블로킹 I/O와 논블로킹 I/O
--리액티브 추상화
2장 리액티브 익스텐션
--rx.Observable 해부하기
--Observable 알림 구독
--Subscription과 Subscriber[T]로 리스너 제어하기
--Observable 만들기
--사례: 콜백 API를 Observable 스트림으로
--rx.subjects.Subject
--ConnectableObservable
--요약
3장 연산자와 변환
--핵심 연산자: 매핑과 필터링
--여러 개의 Observable
--고수준 연산자: collect(), reduce(), scan(), distinct(), groupBy()
--skip(), takeWhile() 등을 사용해 잘게 쪼개거나 잘라내기
--사용자 정의 연산자 만들기
--요약
4장 기존 애플리케이션에 리액티브 프로그래밍 적용하기
--컬렉션에서 Observable로
--BlockingObservable: 리액티브 세상에서 벗어나기
--느긋함 포용하기
--Observable 구성하기
--명령형 방식의 동시성
--flatMap()을 비동기 체이닝 연산자처럼
--스트림으로 콜백 대체하기
--주기적으로 변경 사항을 폴링하기
--RxJava의 멀티 스레딩
--요약
5장 철저하게 리액티브로
--C10k 문제 해결하기
--HTTP 클라이언트 코드
--관계형 데이터베이스에 접근하기
--CompletableFuture와 스트림
--Observable과 Single
--요약
6장 흐름 제어와 배압
--흐름 제어
--배압
--요약
7장 테스트와 트러블슈팅
--오류 처리
--테스트와 디버깅
--단위 테스트
--모니터링과 디버깅
--요약
8장 사례 연구
--RxJava를 활용한 안드로이드 개발
--히스트릭스로 장애 관리하기
--NoSQL 데이터베이스 질의
--카멜 통합
--자바 8의 스트림과 CompletableFuture
--메모리 소비와 누수
--요약
9장 앞으로 나아갈 방향
--리액티브 스트림
--Observable과 Flowable
--성능
--마이그레이션
Appendix A HTTP 서버 예제
--C 언어의 fork() 프로시저
--연결당 스레드
--커넥션 스레드 풀
Appendix B Observable 연산자 판단 트리
저자
저자
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

