간편결제, 신용카드 청구할인
PAYCO(페이코) 최대 5,000원 할인
(페이코 신규 회원 및 90일 휴면 회원 한정)
네이버페이 1%
(네이버페이 결제 시 적립)
북피니언 롯데카드 30% (18,900원)
(최대할인 3만원 / 3만원 이상 결제)
EBS 롯데카드 20% (21,600원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 NEW 우리V카드 10% (24,300원)
(최대할인 3만원 / 3만원 이상 결제)
인터파크 현대카드 7% (25,110원)
(최대할인 3만원 / 3만원 이상 결제)
Close

코틀린 리액티브 프로그래밍 : RxKotlin을 사용한 리액티브 프로그래밍

원제 : Reactive Programming in Kotlin
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 462
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기
정가

30,000원

  • 27,000 (10%할인)

    1,500P (5%적립)

할인혜택
적립혜택자동적립
추가혜택
배송정보
주문수량
감소 증가
  • 이벤트/기획전(1)

  • 연관도서(18)

  • 사은품(14)

책소개

RxKotlin을 사용한 리액티브 프로그래밍

리액티브 프로그래밍 패러다임에 대해 알아보고 RxExtension, 그 중에서도 특히 RxKotlin을 사용해 기존 프로젝트를 개선하거나 손쉽게 새로운 기능을 개발할 수 있도록 도와주는 책이다. RxKotlin에서 자신만의 연산자를 만들거나 테스트 방법까지 다루며, 스프링과 안드로이드의 통합도 다룬다.

출판사 서평

[이 책에서 다루는 내용]

- 리액티브 프로그래밍 패러다임과 기존 프로젝트 향상 방법
- RxKotlin 2.0과 ReactiveX 프레임워크
- 안드로이드에서 RxKotlin 사용하기
- RxKotlin에서 사용자 지정 연산자 생성
- 코틀린과 스프링 프레임워크 5.0
- reactor-kotlin 확장
- 스프링, 하이버네이트, RxKotlin을 사용해 Rest API 작성
- TestSubscriber를 사용해 RxKotlin 애플리케이션 테스트
- 플로어블(Flowable)과 백프레셔 관리

[이 책의 대상 독자]

장애 내성을 갖는 동시에 확장 가능한 분산 시스템을 만드는 데 관심이 있는 개발자를 대상으로 한 책이다. 이 책을 보기 위해서는 코틀린에 대한 기본 지식이 있어야 하지만 리액티브 프로그래밍에 대한 사전 지식은 필요로 하지 않는다.

[이 책의 구성]

1장, '리액티브 프로그래밍의 소개'에서는 리액티브 프로그래밍의 사고 패턴 및 원리를 이해할 수 있다.
2장, '코틀린과 RxKotlin을 사용한 함수형 프로그래밍'에서는 함수형 프로그래밍 패러다임의 핵심 개념을 알아보고 코틀린에서 사용 가능한 케이스를 살펴본다. 함수형 프로그래밍을 쉽게 이해할 수 있다.
3장, '옵저버블과 옵저버와 구독자'에서는 RxKotlin의 핵심인 옵저버블, 옵저버, 구독자의 기초에 대해 알아본다.
4장, '백프레셔와 플로어블 소개'에서는 프로듀서가 컨슈머를 앞지르는 것을 방지해주는 RxKotlin의 기술인 백프레셔를 사용할 수 있게 해주는 플로어블을 소개한다.
5장, '비동기 데이터 연산자와 변환'에서는 RxKotlin의 연산자를 소개한다.
6장, '연산자 및 오류 처리'에서는 연산자에 대한 이해를 높이고 연산자와 프로듀서를 결합, 또는 필터링하는 방법을 소개한다. 또한 RxKotlin에서 오류를 좀 더 효율적으로 처리하는 데 도움을 준다.
7장, 'RxKotlin의 스케줄러를 사용한 동시성과 병렬 처리'에서는 RxKotlin의 스케줄러를 사용한 동시성과 병렬 처리를 알아본다. 스케줄러의 이점을 사용해 동시성 프로그래밍을 가능하게 한다.
8장, 'RxKotlin 애플리케이션 테스트'에서는 애플리케이션 개발 시 가장 중요한 테스트를 다룬다. 리액티브 프로그래밍은 상태 대신 행위를 정의하기 때문에 RxKotlin에서의 테스트는 일반 테스트와 조금 다르다. 이 장에서는 테스트의 기본부터 배울 수 있다.
9장, '자원 관리와 RxKotlin 확장'에서는 코틀린에서 리소스를 관리하는 방법을 알아본다. 리소스는 데이터베이스 인스턴스, 파일, HTTP 접근 등 사용 후 종료close시켜 줘야 하는 어떤 것이라도 될 수 있다. 또한 RxKotlin에서 사용자 정의 연산자를 만드는 방법을 배운다.
10장, 'Kotlin 개발자를 위한 스프링 웹 프로그래밍 소개'에서는 스프링과 하이버네이트를 사용하는 장점을 알아보고, 코틀린으로 API를 작성할 때 활용한다.
11장, '스프링 JPA와 하이버네이트를 사용한 REST API'에서는 리액터(Reactor) 프레임워크인 reactorkotlin 익스텐션을 소개한다. 코틀린에서 스프링을 사용해 리액티브 프로그래밍을 적용할 수 있다.
12장, '리액티브 코틀린과 안드로이드'에서는 안드로이드에서 코틀린으로 리액티브 프로그래밍을 시작한다.

목차

1장. 리액티브 프로그래밍의 소개
리액티브 프로그래밍이란 무엇인가
함수형 리액티브 프로그래밍을 적용해야 하는 이유
리액티브 선언
-리액티브 스트림 표준 사양
-코틀린을 위한 리액티브 프레임워크
RxKotlin 시작하기
-RxKotlin 다운로드와 설정
-RxJava의 푸시 메커니즘과 풀 메니커즘 비교
-ReactiveEvenOdd 프로그램
ReactiveCalculator 프로젝트
요약

2장. 코틀린과 RxKotlin을 사용한 함수형 프로그래밍
함수형 프로그래밍 소개
함수형 프로그래밍의 기초
-람다 표현식
-순수 함수
-고차 함수
-인라인 함수
ReactiveCalculator 클래스에 함수형 프로그래밍 적용
코루틴
-코루틴 시작하기
-시퀀스 생성하기
-코루틴을 사용한 ReactiveCalculator 클래스
함수형 프로그래밍: 모나드
-단일 모나드
요약

3장. 옵저버블과 옵저버와 구독자
옵저버블
-옵저버블이 동작하는 방법
Observable의 다른 팩토리 메서드
-구독자: Observer 인터페이스
-구독과 배치
핫, 콜드 옵저버블
-콜드 옵저버블
-핫 옵저버블
다양한 구독자
-AsyncSubject 이해
-PublishSubject 이해
-BehaviorSubject 이해
-ReplaySubject 이해
요약

4장. 백프레셔와 플로어블 소개
백프레셔 이해
플로어블
플로어블과 옵저버블 사용 구분
-플로어블을 언제 사용할까
-옵저버블을 언제 사용할까
플로어블과 구독자
처음부터 플로어블 생성하기
옵저버블로 플로어블 만들기
BackpressureStrategy.MISSING와 onBackpressureXXX()
-onBackpressureBuffer() 연산자
-onBackpressureDrop() 연산자
-onBackpressureLatest() 연산자
원천에서 백프레셔를 지원하는 플로어블 생성
ConnectableFlowable
프로세서
버퍼, 스로틀링, 윈도우 연산자
-buffer() 연산자
-window() 연산자
-throttle() 연산자
요약

5장. 비동기 데이터 연산자와 변환
연산자
필터링 연산자
-debounce 연산자
-distinct 연산자: distinct, distinctUntilChanged
-elementAt 연산자
-배출 필터링하기: filter 연산자
-first, last 연산자
-ignoreElements 연산자
변환 연산자
-map 연산자
-배출 캐스팅: cast 연산자
-flatMap 연산자
-defaultIfEmpty 연산자
-switchIfEmpty 연산자
-startWith 연산자
-정렬 연산자: sorted 연산자
-데이터 모으기: scan 연산자
축소 연산자
-배출량 계산(count 연산자)
-배출 누적: reduce 연산자
-컬렉션 연산자
오류 처리 연산자
유틸리티 연산자
요약

6장. 연산자 및 오류 처리
프로듀서(옵저버블/플로어블) 결합
-startWith 연산자
-배출을 집핑하기: zip 연산자
-combineLatest 연산자
-옵저버블/플로어블 병합: merge 연산자
-프로듀서 이어 붙이기(옵저버블/플로어블)
-프로듀서 임의 결합
그룹핑
flatMap, concatMap 세부 사항
-flatMap 연산자가 적합한 경우
-concatMap 연산자가 적합한 경우
switchMap 연산자 이해
배출 건너뛰거나 취하기
-배출 건너뛰기(skip, skipLast, skipUntil, skipWhile)
-take 연산자(take, takeLast, takeWhile, takeUntil)
에러 처리 연산자
onErrorReturn: 에러 발생 시 기본값 반환하기
onErrorResumeNext 연산자
-에러 발생 시 재시도하기
HTTP 예제
요약

7장. RxKotlin의 스케줄러를 사용한 동시성과 병렬 처리
동시성 소개
병렬 실행과 동시성
스케줄러는 무엇인가
-스케줄러의 종류
-Schedulers.from
스케줄러 사용법: subscribeOn, observeOn 연산자
-구독 시 스레드 변경: subscribeOn 연산자
-다른 스레드에서 관찰: observeOn 연산자
요약

8장. RxKotlin 애플리케이션 테스트
단위 테스트 소개와 중요성
-단위 테스트가 중요한 이유
코틀린에서 JUnit 테스트 작성하기
-코드 테스트하기
RxKotlin에서 테스트
구독자 차단
차단 연산자
-첫 번째 배출된 아이템 가져오기: blockingFirst()
-single 또는 maybe에서 단일 아이템 얻기: blockingGet
-마지막 아이템 얻기: blockingLast
-모든 배출을 이터러블로 가져오기: blockingIterable 연산자
-모든 배출을 순회하기: blockingForEach
TestObserver와 TestSubscriber 소개
TestScheduler 이해
요약

9장. 자원 관리와 RxKotlin 확장
자원 관리
자신만의 연산자 작성하기
변환자로 연산자 합성
요약

10장. 코틀린 개발자를 위한 스프링 웹 소개
스프링, 스프링의 역사와 기원
-스프링의 역사와 기원
의존성 주입과 IoC
-스프링 주석 기반 설정
스프링: AOP
스프링 부트 소개
스프링 부트를 사용해 Rest API 만들기
요약

11장. 스프링 JPA와 하버네이트를 사용한 REST API
스프링 부트, 하이버네이트 JPA를 사용한 REST API
리액터를 이용한 리액티브 프로그래밍
-프로젝트에 리액터 추가
-플럭스와 모노 이해
요약

12장. 리액티브 코틀린과 안드로이드
안드로이드 스튜디오에서 코틀린 설정
안드로이드에서 ToDoApp 개발
레트로핏 2를 사용한 API 호출
레트로핏과 RxKotlin 사용하기
안드로이드 이벤트를 리액티브로 만들기
-안드로이드의 RxBinding 소개
코틀린 익스텐션즈
요약

본문중에서

우리가 살고 있는 이 세계는 단지 상태(states)의 집합인가? 그렇지 않다. 그렇다면 왜 모든 프로그래밍 언어는 이 세상을 일련의 상태로 표현할까? 프로그래밍의 객체가 실제적인 동시에 끊임없이 움직이며 변화하는 상태를 반영할 수는 없을까? 프로그래밍을 시작한 이후 계속 답이 궁금했던 질문들이다.
안드로이드 개발을 시작했을 때, 이 질문들은 나를 끊임없이 괴롭혔고 곧 다른 동료들도 똑같은 의문을 갖기 시작했다. 어째서 애플리케이션 내부에서 수많은 루프가 필요할까? 이터레이터를 대체할 수 있는 것은 없을까? 그리고 모바일 장치는 PC보다 프로세서나 램의 성능이 떨어진다. 안드로이드 애플리케이션을 개발할 때는 항상 이 점을 염두에 둬야 한다. 프로젝트 구조를 잘 잡지 않으면 메모리 부족 예외가 종종 발생한다. 프로그램 내에서 더 적은 이터레이터를 가질 수 있다면 UX는 극적으로 개선될 것이다. 하지만 과연 무엇으로, 어떻게 이터레이터를 교체할 수 있을까?
어느 화창한 날, 나는 이 모든 질문에 대한 답을 담고 있는 블로그 포스트를 읽었다. 대부분은 토마스 닐드(Thomas Nield)에 의해 작성됐다. 포스트는 리액티브 프로그래밍과 리액티브X(ReactiveX) 프레임워크에 관한 내용이었다. 그래서 나는 리액티브 프로그래밍을 배우기 시작했다.
리액티브 프로그래밍은 학습 곡선(Learning curve)이 높아서 많은 개발자이 빠져나갔다는 점을 알게 됐다. 일반적으로 리액티브 프로그래밍은 고급 주제로 분류되지만 나는 인내심을 갖고 꾸준히 공부를 했으며, 그에 대한 보상으로 오랫동안 고민했던 질문들에 대한 답을 찾을 수 있었다. RxJava나 다른 리액티브X 라이브러리는 우리가 살고 있는 세계와 같은 모델을 나타내며, 정적인 상태와는 달리 움직이는 동시에 지속적으로 변화하는 상태를 사용해서 동작을 모델링한다. 이터레이터 패턴과는 다르게 데이터/이벤트를 서브스크라이버/옵저버에게 전달하는 푸시 메커니즘을 사용하기 때문에 프로그래밍이 훨씬 쉬워지고 인간 세상과 훨씬 더 유사해진다.
2015년에는 젯브레인 블로그에서 JVM에서 동작하는 새로운 언어에 대해서 읽을 기회가 있었다. 처음 드는 생각은 '어째서 새로운 언어가 필요할까?'였다(맞다, 나는 글을 많이 읽기도 하지만 다양한 주제로 많이 쓰기도 한다). 그 뒤로 코틀린에 대해 공부하기 시작했는데 바로 사랑에 빠지고 말았다. 코틀린의 유일한 목적은 프로그래밍을 쉽게 만드는 것이다. 사람들이 코틀린의 장점을 이야기할 때면 빠지지 않고 널 포인터 예외의 처리가 쉽다는 점이 언급되는데, 그 외에도 많은 장점이 있고 그 목록은 계속 늘어나고 있다.
코틀린과 리액티브X를 결합해 사용하는 일은 프로그래머에게 최고로 멋진 일일 것이다. 마리오 아리아스(Mario Arias)는 개발자 커뮤니티를 위해 2013년부터 RxKotlin을 개발하고 있다.
RxKotlin에서 아쉬운 유일한 점은 문서화가 부족하다는 것이다. 개인적으로 문서화의 부족이 리액티브X의 학습 곡선이 높은 주요 이유라고 생각하며, 이는 문서의 중요도에 대한 인식이 부족하기 때문이라고 생각한다. 지금까지 리액티브 프로그래밍을 들어본 적 없는 6~8년 이상 경력의 개발자들을 많이 보았는데, 이 책이 그들에게 큰 도움이 되기를 기대한다. 또한 코틀린의 사용처를 늘리고 관련 지식을 최대한 많이 전파하기 위한 나를 비롯한 코틀린 콜카타 사용자 그룹의 미션을 달성하기 위한 것이기도 하다.
내가 아는 한 이 책은 코틀린의 리액티브 프로그래밍과 Reactor-Kotlin 프레임워크, RxKotlin (정확히는 RxKotlin 2.0 버전)을 공부할 수 있는 첫 번째 책이다. 이 책은 RxKotlin과 Reactor-Kotlin, 그리고 스프링과 안드로이드에 대한 단계별 가이드가 되어줄 것이다. 이 책으로 코틀린과 리액티브 프로그래밍의 장점을 발견하고, 코틀린 프로젝트에 성공적으로 리액티브 프로그래밍을 도입하기를 바란다.
('지은이의 말' 중에서)

코틀린과 리액티브 프로그래밍, 어느 것 하나 절대 가볍지 않은 주제다. 자바가 빠른 속도로 다양한 기능을 추가하고 있지만, 여전히 변화 속도에 만족하지 못하는 많은 개발자가 코틀린으로 이동하고 있음을 느낀다. 그런 와중에 RxJava의 코틀린 포팅인 RxKotlin을 다루는 이 책의 출간은 반가운 소식이 될 것이다. 개인적으로 작년까지만 해도 리액티브 프로그래밍과 코틀린 모두 낯설었지만, 이제는 현장에서 두 가지 모두 사용하고 있다.
개인적인 경험을 바탕으로 생각했을 때 다른 독자들도 코틀린보다는 리액티브 프로그래밍에 익숙해지는 데 조금 더 시간이 걸릴 것 같다. 다행히 이 책도 코틀린의 언어적인 특징보다는 리액티브 프로그래밍에 조금 더 초점을 두고 있다. 최근에는 마이크로서비스 아키텍처로 개발하는 회사의 수가 증가한 만큼 리액티브 프로그래밍을 적용할 수 있는 기회가 늘었다고 생각한다. 리액티브 매니페스토의 응답성은 마이크로서비스 내에서 사용되는 API에 빠질 수 없는 특징이다. 스프링 부트(Spring Boot)나 도커 등 백엔드 개발자들의 든든한 도구로 인해 전보다 많은 업무가 그저 설정으로 처리되는 단계에 이르렀으며, 백엔드 API가 진정으로 갖춰야 하는 장점에 대해서도 신경을 쓸 만큼 충분히 여유를 가질 수 있게 되었다고 생각한다. 템플릿으로 찍어내는 것이 가능한 CRUD성 API를 양산하고 있지는 않은가? 리액티브 프로그래밍과 코틀린, 이 두 가지를 사용해서 프로덕션에 런칭해 보는 것만으로도 수준이 한층 더 높아질 수 있다고 생각한다. 이미 말한 것처럼 RxKotlin은 RxJava의 포팅이기 때문에, 이해되지 않는 내용이 있다면 가장 자신 있는 언어로 설명된 문서나 코드들을 구글링 해보는 것도 좋을 것이다. 이 책을 다 읽었다고 리액티브 프로그래밍과 코틀린을 완벽하게 알게 되었다고 말할 수는 없지만, 앞으로 어떤 방향으로 공부를 진행하면 좋을지 길잡이 역할을 해줄 수 있을 것이다.
('옮긴이의 말' 중에서)

저자소개

리부 차크라보티(Rivu Chakraborty) [저] 신작알림 SMS신청 작가DB보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

구글 공인 안드로이드 전문가이자 인도 공학회의 선임 멤버이며 스크럼 마스터이다. 5년 이상의 경력을 쌓고 현재 인두스 넷 테크놀로지스(Indus Net Technologies)에서 안드로이드 시니어 소프트웨어 엔지니어로 일하고 있다. 스스로를 코틀린과 안드로이드 매니아이자 코틀린 에반젤리스트라 생각한다. 2015년 12월부터 코틀린을 사용했다. 코틀린 튜토리얼과 관련 지식을 가능한 한 많이 전파하기 위해 전 세계에서 가장 활동적인 코틀린 사용자 그룹인 '코틀린 콜카타'를 설립했다. 또한 GDG 콜카타의 정회원이며 관련 밋업에서 강의를 진행한다.
공유를 통해 지식이

펼쳐보기
생년월일 -
출생지 -
출간도서 0종
판매수 0권

라인에서 근무 중인 소프트웨어 엔지니어다. 자바, 스프링, 자바스크립트, 파이썬, 객체지향 TDD, DDD에 큰 관심을 갖고 웹 서비스를 개발하고 있다. 개발자 문화를 사랑하고 세상에 영향을 줄 수 있는 무엇인가를 만들어 내기 위해 노력한다.

이벤트 기획전

이 상품의 시리즈

프로그래밍 언어 시리즈(총 19권 / 현재구매 가능도서 19권)

펼쳐보기

이 책과 내용이 비슷한 책 ? 내용 유사도란? 이 도서가 가진 내용을 분석하여 기준 도서와 얼마나 많이 유사한 콘텐츠를 많이 가지고 있는가에 대한 비율입니다.

    리뷰

    0.0 (총 0건)

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    0.0

    교환/환불

    교환/환불 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청함, 1:1 문의 게시판 또는 고객센터(1577-2555) 이용 가능

    교환/환불 가능 기간

    고객변심은 출고완료 다음날부터 14일 까지만 교환/환불이 가능함

    교환/환불 비용

    고객변심 또는 구매착오의 경우에만 2,500원 택배비를 고객님이 부담함

    교환/환불 불가사유

    반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가할 수 있음
    배송된 상품의 분실, 상품포장이 훼손된 경우, 비닐랩핑된 상품의 비닐 개봉시 교환/반품이 불가능함

    소비자 피해보상

    소비자 피해보상의 분쟁처리 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 따라 비해 보상 받을 수 있음
    교환/반품/보증조건 및 품질보증 기준은 소비자기본법에 따른 소비자 분쟁 해결 기준에 따라 피해를 보상 받을 수 있음

    기타

    도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 주문이 취소될 수 있음(이 경우 인터파크도서에서 고객님께 별도로 연락하여 고지함)

    배송안내

    • 인터파크 도서 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능하여, 인터파크 외 타업체 배송상품인 경우 발송되지 않을 수 있습니다.

    • 배송비

    도서(중고도서 포함) 구매

    2,000원 (1만원이상 구매 시 무료배송)

    음반/DVD/잡지/만화 구매

    2,000원 (2만원이상 구매 시 무료배송)

    도서와 음반/DVD/잡지/만화/
    중고직배송상품을 함께 구매

    2,000원 (1만원이상 구매 시 무료배송)

    업체직접배송상품 구매

    업체별 상이한 배송비 적용