본문내용 바로가기
MD의선택 무료배송 이벤트 소득공제

리액티브 안드로이드 프로그래밍(Reactive Android Programming) RxJava로 애플리케이션 제작하기

타다스 수보니스 지음 | 김성일 옮김 | 에이콘출판 | 2018년 09월 21일 출간
  • 정가 : 30,000원
    판매가 : 27,000 [10%↓ 3,000원 할인]
  • 통합포인트 :
    [기본적립] 1,500원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 5만원 이상 구매 시 2~3% 추가적립
  • 추가혜택 : 카드/포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(16일,화) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내

이 책의 이벤트 해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

  • MANNING, O'REILLY, PACKT, WILE..
    2016.03.07 ~ 2020.12.31
상품상세정보
ISBN 9791161752105(1161752102)
쪽수 328쪽
크기 188 * 237 * 21 mm /758g 판형알림
이 책의 원서/번역서 Reactive Android Programming/Subonis, Tadas

책소개

이 책이 속한 분야

상세이미지

리액티브 안드로이드 프로그래밍(Reactive Android Programming) 도서 상세이미지

저자소개

저자 : 타다스 수보니스

열세 살 때 코딩을 시작했다. 그 후 PHP, 자바스크립트, 파이썬, C++, Java로 프로그래밍했다. 비교적 최근인 2014년에는 안드로이드를 사용했다.
그러나 자바스크립트와 같이 더 부주의한 언어는 오랫동안 프라미스(Promise)가 있었지만 안드로이드는 비동기 프로그래밍에 대한 적절한 지원이 부족하다는 것을 알게 됐다. 게다가 자바의 표준 라이브러리는 함수형 프로그래밍 요소(map, filter)에 대한 지원이 부족했지만 구아바(Guava)와 같은 라이브러리로 쉽게 수정할 수 있었다.
이런 이유로 프라미스와 같은 기능과 인터페이스를 얻는 데 도움되는 라이브러리를 검색했다. 리액티브 방식으로 스트림을 처리하는 ReactiveX와 그 구현 제품군(RxJava 포함)을 발견하기까지 오래 걸리지 않았다. 이는 정확히 프라미스 같은 시스템 흐름은 아니었지만, 더욱 강력한 것임을 곧 깨달았다. 이후 일상적인 안드로이드 프로그래밍에 RxJava와 RxKotlin를 사용하고 있다.

역자 : 김성일

전자공학을 전공했지만 소프트웨어에 대한 호기심이 많다. 대학 시절 프리랜서로 공공 기관과 기업 SI를 통해 실무 경험을 쌓았다. 디자인에도 관심이 많아 웹 디자이너 생활도 했으며, 중소기업청 예비 기술 창업 중점 과제에 선정돼 모바일 광고 플랫폼 스타트업 대표로 활동했다. 지금은 삼성 SDS 연구소에서 신사업 솔루션 개발에 박차를 가하고 있다. 모든 것은 하나로 통한다는 신념으로 다양한 경험을 하기를 좋아하며, 언젠가 올 그날을 위해 항상 준비하고 공부 중이다. 에이콘출판사에서 출간한 『반응형 안드로이드 앱 UI 개발』(2015)과 『MariaDB 성능 분석과 최적화』(2015)를 번역했다.

작가의 말

안드로이드에 코드를 작성하기는 어렵다. 동시 작업과 병렬 작업을 포함한 고품질 코드를 작성하는 것은 더욱 어렵다. 이 코드가 예기치 않은 경합 조건(race condition) 없이 최고 성능으로 실행되도록 하려면 더 힘들다. 특히 오늘날처럼 대다수 애플리케이션(서버 또는 클라이언트)이 많은 원격 구성 요소와 모듈 또는 종속성과 상호작용할 때 특히 중요하다. 원격 작업이 실행되는 많은 경우(거의 모든 경우)에 프로그램은 I/O에서 대기하지 않고, 단지 응답을 기다리는 것보다 더 유용한 작업을 수행할 수 있도록 비동기로 작동해야 한다. 이 책에서 는 RxJava가 제공하는 다양한 도구를 초보 개발자에게 소개해 비동기 작업을 위한 강력하면서 고품질의 코드를 만들 수 있길 바란다. 이 작업은 높은 품질의 제품을 만들기 위해 고급 RxJava 기술을 이용할 비교적 간단한 애플리케이션을 만들면서 수행할 것이다. 먼저 1장, ‘첫 “Hello World” RxJava 애플리케이션 만들기’를 통해 안드로이드 환경에서 RxJava 초기 설정을 알아본다. 그 후 주식 데이터 처리와 표시를 시작하면서 RxJava 2.0을 단계별로 학습한다. 이와 함께 개발자는 적절한 스케줄러를 선택하고 원격 요청에 대해 레트로핏(Retrofit) 라이브러리를 사용하는 방법을 배운다. 8장, ‘커스텀 옵저버블 작성’에서 우리는 트위터의 스트리밍 데이터를 주식 데이터와 결합, 처리하기 위한 통합을 추가할 것이다. 이를 위해 커스텀 옵저버블과 flatMap 생성처럼 고급 RxJava 기술을 활용할 것이다.
그런 다음 커스텀 RxJava 옵저버블 작성법을 배우며 RxJava 코드를 이해하고 유지 보수하기 쉬운 방법을 모색한다. 끝으로 우리는 개발자가 RxJava 문서를 더 쉽게 이해할 수 있도록 구슬 다이어그램(marble diagram)에 대해 간략하게 설명할 것이다.
이 책을 읽은 후에 다양한 종류의 I/O 작업을 관리하거나 기능적 패러다임을 따르는 리액티브 방식의 일반적인 처리를 수행하기 위해 강력하고 재사용 가능하며 이해하기 쉬운 코드를 작성하도록 다양한 RxJava 기술을 쓸 수 있게 된다.

목차

지은이 소개
기술 감수자 소개
옮긴이 소개
옮긴이의 말
들어가며

1장. 첫 “Hello World” RxJava 애플리케이션 만들기
__애플리케이션 생성
____디펜던시
____최초의 사용자 인터페이스
____레트로람다 사용
__요약

2장. 기본 RxJava의 이해
__옵저버블
____핫 그리고 콜드 옵저버블
__디스포저블
__스케줄러
____스케줄링 예제
__옵저버블의 흐름 조사
__플로어블
____아이템 버리기
____마지막 아이템 유지하기
____버퍼링
__컴플리터블, 싱글, 메이비 타입
____컴플리터블
____싱글
____메이비
__요약

3장. 주식 데이터를 가져오면서 레트로핏 사용법 배우기
__레트로핏 설정
__HTTP 요청
____서비스 인터페이스
____서비스 팩토리
____서비스 생성
__요청 데이터 변환
____JSON 분석
____데이터 불러오기
____JSON 값 객체 변환
__UI에 데이터 표현하기
__주기적인 업데이트
__UI에서 여러 레코드 처리
__요약

4장. RxJava 1.0을 RxJava 2.0과 통합하기
__버전 간 차이점
____디펜던시 및 패키지 이름
____함수형 인터페이스
____플로어블
__다른 RxJava 버전 통합
____설정
____RxJava 1.0 옵저버블 변환
__요약

5장. SQLite와 스케줄러에 데이터 작성하기
__스케줄러
____스케줄러 타입
____스케줄러 사용
____병렬 처리 달성
__StorIO를 이용한 데이터 입력
____StorIO 설정
____StorIO 구성
____데이터 저장 흐름
__요약

6장. 에러 핸들링과 SQLite 데이터 읽기
__RxJava의 예외 처리
____subscribe() 사용
____onExceptionResumeNext() 사용
____doOnError() 사용
____기타 오류 처리 방법
____안드로이드 UI의 오류 표시
____중앙 집중식 에러 로깅
__StorIO로 SQLite 데이터 읽기
____리졸버 얻기
____StockUpdate 항목에 대한 오프라인 대체
____사용자에게 오류에 대해 알리기
____누락된 삭제 리졸버
__요약

7장. RxJava와 액티비티 생명 주기의 통합
__안드로이드 생명 주기
____생명 주기 검토
____액티비티 설정
____onCreate() 호출에 대해 알아야 할 사항
__리소스 누수
____메모리 누수
____옵저버블 누수
__구독 정리
____디스포저블 사용
__RxLifecycle 라이브러리 활용

8장. 커스텀 옵저버블 작성
__커스텀 옵저버블을 만드는 방법
____표준 Java API와의 통합
____이미터 API와 통합
__리액티브 방식으로 주식에 대한 트윗 읽기
____설정
____트위터를 위한 커스텀 옵저버블
____UI에 트윗 표시
____값 객체 업데이트
____레이아웃 업데이트
____기타 개선 사항
__요약

9장. 고급 옵저버블 흐름 설명
__옵저버블 벗기기
____맵을 이용해 값 변환하기
____FlatMap 옵저버블
__값 전달
____튜플
__커스텀 클래스
__업데이트된 흐름
__아이템 결합
____ZIP
____최신 항목 결합
____스트림 연결하기
__필터링
____주식 어댑터 청소
____트윗 필터링
__요약

10장. 고차원 추상화
__메소드로 코드 추출
____조건을 명시적으로 만들기
____컨슈머 추출
____FlatMap 추출
____팩토리 메소드의 작성
__변환 사용하기
____정규 코드 추출
____변환으로 코드 단순화
____변환 클래스 생성
____파일 기반 캐싱 예제
____변환을 사용해 실행 시간 추적하기
____옵저버블을 디버깅하기 위해 변환 사용하기
__요약

11장. 서브젝트의 기본과 환경 설정 저장
__서브젝트
____PublishSubject
____BehaviorSubject
____ReplaySubject
____AsyncSubject
__애플리케이션에서 서브젝트 사용
____RxPreferences 사용
____설정에 서브젝트 연결
____설정 액티비티 생성
____흐름 업데이트
__요약

12장. 구슬 다이어그램 읽는 법
__구슬 다이어그램의 핵심 요소
____다이어그램의 요소
____RxMarbles 도구
__연산자 분석
____Map
____FlatMap
____onExceptionResumeNext()
____GroupBy
____SubscribeOn과 ObserveOn
____BehaviorSubject
__요약

찾아보기

출판사 서평

★ 요약 ★

RxJava가 제공하는 다양한 도구를 초보 개발자에게 소개하며, 비동기 작업을 위한 강력하고 고품질의 코드를 만들 수 있도록 한다. 고품질의 제품을 만들기 위해 고급 RxJava 기술을 사용하여 비교적 간단한 애플리케이션을 예제로 만들면서 배울 수 있다.

★ 이 책에서 다루는 내용 ★

■ 비동기적인 리액티브 안드로이드 프로그래밍을 위한 환경 설정 방법
■ 커스텀 옵저버블 작성법과 고차원 추상화
■ 리액티브 프로그래밍 원칙을 사용한 여러 호출의 조율
■ RxJava를 사용해 원격 주식 데이터 가져오기... 더보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

※ 상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서번역서

안내

이 분야의 베스트

더보기+

이 분야의 신간

더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품