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

코틀린 동시성 프로그래밍 예제로 배우는 코틀린 동시성

프로그래밍 언어
미구엘 엔젤 카스티블랑코 토레스 지음 | 강인호 , 김동후 옮김 | 에이콘출판 | 2020년 05월 29일 출간
  • 정가 : 28,000원
    판매가 : 25,200 [10%↓ 2,800원 할인]
  • 통합포인트 :
    [기본적립] 1,400원 적립 [5% 적립] [추가적립] 5만원 이상 구매 시 2천원 추가적립 안내 [회원혜택] 실버등급 이상, 3만원 이상 구매 시 2~4% 추가적립 안내
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    06월 08일 출고 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내 바로드림 혜택
    휴일에는 바로드림 픽업으로 더 빨리 받아 보세요. 바로드림 혜택받고 이용하기

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

  • MANNING, O'REILLY, PACKT, WILE..
    2016.03.07 ~ 2020.12.31
상품상세정보
ISBN 9791161754222(1161754229)
쪽수 312쪽
크기 188 * 234 * 24 mm /724g 판형알림
원서명/저자명 Learning Concurrency in Kotlin: Build highly efficient and robust applications/Miguel Angel Castiblanco Torres

책소개

이 책이 속한 분야

코틀린의 코루틴 소개로 시작해 동시성 코드를 어떻게 작성하는지 배우고, 코틀린으로 멀티 스레드 소프트웨어를 개발하는 데 필요한 개념을 이해할 수 있다. 비동기 애플리케이션을 개발할 때 스레드와 코루틴이 어떻게 소통하고 동기화하는지 알게 될 것이다. 또한 에러와 예외를 핸들링하는 방법과 멀티 코어 프로세싱을 활용하는 방법도 배울 수 있다. 추가로 코루틴이 어떻게 내부적으로 동작하는지 파악함으로써 코틀린의 큰 그림을 이해할 수 있을 것이다.

★ 이 책에서 다루는 내용 ★

■ 동시성에 대한 코틀린의 접근 방식
■ 순차적 비동기 일시정지 함수
■ 온 디맨드로 다시 시작되는 일시 정지 데이터 소스의 생성
■ 에러 핸들링의 베스트 프랙티스
■ 코루틴 간의 소통을 위한 채널 사용
■ 코루틴의 내부 동작 방식

★ 이 책의 대상 독자 ★

동시성과 관련한 일반적인 지식을 배우고 싶거나 특정 분야에 코틀린을 적용하려는 개발자를 위한 책이다. 기본적인 코틀린 지식만 있으면 읽을 수 있을 것이다.

저자소개

저자 : 미구엘 엔젤 카스티블랑코 토레스

미국에 거주하는 소프트웨어 엔지니어다. 글로반트(Globant)에서 풀스택 기술 리더 및 소프트웨어 디자이너로 근무하고 있으며 포브스에서 선정한 세계 기업 브랜드 가치 순위 10위, 신뢰할 만한 기업 순위 5위 안에 속한 회사에서 다수의 프로젝트를 성공적으로 이끌었다.
코틀린의 얼리 어댑터로서 코루틴의 첫 번째 베타 버전의 동시성 프리미티브(Concurrency Primitive)에 대해 저술했으며, 항상 코틀린의 새로운 기능을 주시하고 있다

저자가 속한 분야

개발자로 IT 경력을 시작해서 EnSOA와 티맥스소프트를 거치면서 CBD & SOA 방법론 컨설팅을 수행했다. 오라클에서는 클라우드 네이티브, 컨테이너 네이티브 애플리케이션 개발과 운영을 도우며, 개발자 생태계를 지원하고 소통하는 역할을 하고 있다. 최근에는 머신 러닝에도 많은 관심을 갖고 있다.

강인호님의 최근작

역자 : 김동후

2001년부터 자바 개발자로 시작해 약 10년 간 엔터프라이즈 프로젝트에서 개발과 기술 아키텍트로 활동했다. 현재는 오라클에서 클라우드와 컨테이너 네이티브 관련 엔지니어로 일하고 있다. 요즘은 하이브리드 모바일 개발과 클라우드 네이티브를 위한 다양한 오픈소스에 관심이 많다.

작가의 말

이 책은 다이어그램, 예시, 실제 유스케이스 등을 사용해 다양한 주제를 상세히 소개한다. 대부분의 장에서 안드로이드 RSS 리더의 생성과 수정을 다루고 있고 RSS 리더는 코틀린 언어에서 제공하는 도구와 기본 요소, 코루틴 라이브러리만을 사용해 개발됐다. 애플리케이션을 생성할 때 코드를 단순 복사하기보다는 직접 입력해보길 권장한다. 더 나아가 코드에 의존하지 말고 여러 시도를 해보기 바란다. 뭔가를 해결하는 방법이 궁금해진다는 것은 뇌가 특정 개념을 어떻게 적용할 것인가를 이해하기 시작했음을 의미한다. 그리고 그것이 잘 작동하는지 알기 위해 노력하는 것보다 좋은 것은 없다.
코루틴은 코틀린이 지원하는 모든 플랫폼(JVM, JavaScript, Kotlin/Native)을 지원하도록 개발되고 있지만, 이 책을 쓰는 시점에서 가장 완벽하게 지원되는 플랫폼은 JVM이었다. 이러한 이유로 JVM 환경에서 제공되는 기술과 구현되는 방법을 중심으로 이 책을 저술했다. 하지만 많은 개념과 기본 요소가 JavaScript 환경에서도 유사하게 동작한다고 알고 있고, 일단 구현되면 Kotlin/Native에서도 똑같이 동작하리라 본다.
담지 못한 많은 주제가 있지만 이 책의 내용이 여러분 스스로 발전하는 데 충분하리라 믿는다. 이 책을 기반으로 다양한 동시성 애플리케이션을 개발할 수 있을 것이다.

목차

1장. Hello Concurrent World

__프로세스, 스레드, 코루틴
____프로세스
____스레드
____코루틴
____내용 정리
____동시성에 대해
____동시성은 병렬성이 아니다
____CPU 바운드와 I/O 바운드
____CPU 바운드 알고리즘에서의 동시성과 병렬성
____I/O 바운드 알고리즘에서의 동시성 대 병렬성
____동시성이 어려운 이유
__코틀린에서의 동시성
____넌 블로킹
____명시적인 선언
____코틀린 동시성 관련 개념과 용어
__요약

2장. 코루틴 인 액션

__안드로이드 스튜디오 다운로드 및 설치
__코틀린 프로젝트 생성하기
__코루틴 지원 추가하기
__안드로이드의 UI 스레드
____CallFromWrongThreadException
____NetworkOnMainThreadException
____백그라운드에서 요청하고, UI 스레드에서 업데이트
__스레드 생성
____CoroutineDispatcher
____디스패처에 코루틴 붙이기
__네트워킹 사용 권한 추가
__서비스 호출을 위한 코루틴 생성
__UI 요소 추가
____UI가 블로킹되면 발생하는 일
__처리된 뉴스의 수량 표시
__UI 디스패처 사용
____플랫폼별 UI 라이브러리
__요청 보류 여부를 위한 비동기 함수 생성
____비동기 호출자로 감싸인 동기 함수
____미리 정의된 디스패처를 갖는 비동기 함수
____유연한 디스패처를 가지는 비동기 함수
____더 좋은 방식을 선택하기 위한 방법
__요약

3장. 라이프 사이클과 에러 핸들링

__잡과 디퍼드
____잡
____디퍼드
__상태는 한 방향으로만 이동
____최종 상태의 주의 사항
__RSS - 여러 피드에서 동시에 읽기
____피드 목록 지원
____스레드 풀 만들기
____데이터를 동시에 가져오기
____응답 병합
____동시 요청 테스트
____넌 해피 패스(Non-happy path) - 예기치 않은 중단
____디퍼드가 예외를 갖도록 하기
____예외를 무시하지 말 것!
__요약

4장. 일시 중단 함수와 코루틴 컨텍스트

__RSS 리더 UI 개선
____각 피드에 이름 부여
____피드의 기사에 대한 자세한 정보 가져오기
____스크롤이 가능한 기사 목록 추가
____기사 별 레이아웃
____정보 매핑을 위한 어댑터
____액티비티에 어댑터 연결
____새 UI 테스트
__일시 중단 함수
____동작 중인 함수를 일시 중단
__코루틴 컨텍스트
____디스패처
____예외 처리
____Non-cancellable
__컨텍스트에 대한 추가 정보
____컨텍스트 결합
____withContext를 사용하는 임시 컨텍스트 스위치
__요약

5장. 이터레이터, 시퀀스 그리고 프로듀서

__일시 중단 가능한 시퀀스 및 이터레이터
__값 산출
__이터레이터
____이터레이터와의 상호 작용
__시퀀스
____시퀀스와 상호 작용
____시퀀스는 상태가 없다
____일시 중단 피보나치
____피보나치 수열 작성
____피보나치 이터레이터 작성
__프로듀서
____프로듀서 만들기
____프로듀서와 상호 작용
____프로듀서를 사용한 일시 중단 피보나치 수열
__프로듀서 인 액션
____어댑터에서 더 많은 기사 요청
____온 디멘드 피드를 가져 오는 프로듀서 만들기
____UI의 목록에 기사 추가하기
__요약

6장. 채널 - 통신을 통한 메모리 공유

__채널 이해
____스트리밍 데이터 사례
____분산 작업 사례
__채널 유형과 배압
____언버퍼드 채널
____버퍼드 채널
__채널과 상호 작용
____SendChannel
____ReceiveChannel
____읽기 전 유효성 검사
____채널 인 액션
____협업 검색 구현하기
__요약

7장. 스레드 한정, 액터 그리고 뮤텍스

__원자성 위반
____원자성의 의미
__스레드 한정
____스레드 한정의 개요
____코루틴을 단일 스레드로 한정
__액터
____액터란?
____액터 생성
____액터를 사용해 기능 확장
____액터 상호 작용에 대한 추가 정보
__상호 배제
____상호 배제 이해
____상호 배제와 상호 작용
__휘발성 변수
____스레드 캐시
____@Volatile
____@Volatile이 스레드 안전 카운터 문제를 해결하지 못하는 이유
____@Volatile을 사용하는 경우
__원자적 데이터 구조
__액터 인 액션
____UI에 라벨 추가
____카운터로 사용할 액터 만들기
____결과가 로드될 때 카운터 증가시키기
____UI가 업데이트에 반응하도록 채널 추가하기
____채널을 통해 업데이트된 값 보내기
____변경사항에 대한 UI 업데이트
____구현 테스트
____새로운 검색 시 카운터 재설정하기
__요약

8장. 동시성 코드 테스트와 디버깅

__동시성 코드 테스트
____가정을 버려라
____나무가 아닌, 숲에 집중하라
____테스트에 대한 추가 조언
__테스트 작성
____결함이 있는 UserManager 작성하기
____kotlin-test 라이브러리 추가
____해피 패스 테스트 추가
____에지 케이스를 위한 테스트
____문제점 식별
____중단 해결
____테스트 재시도
__디버깅
____로그에서 코루틴 식별
____디버거에서 코루틴 식별
____조건부 브레이크 포인트
__복원력과 안정성
__요약

9장. 코틀린의 동시성 내부

__연속체 전달 스타일
____연속체
____suspend 한정자
____상태 머신
__컨텍스트 전환
____스레드 전환
____예외 처리
__요약

출판사 서평

★ 이 책의 구성 ★

1장, ‘Hello, Concurrent World!’에서는 동시성을 쉽게 이해할 수 있는 내용 위주로 구성했다. 프로세스, 스레드, 코루틴과 같은 개념으로 시작해서 동시성과 병렬처리를 비교해 소개한다. 동시성을 코딩할 때 부딪치는 일반적인 난관과 동시성에 대한 코틀린의 접근 방식 그리고 이 책에서 전체적으로 등장하는 용어를 소개한다.
2장, ‘코루틴 인 액션’에서는 코루틴을 개발하는 첫 번째 실습으로 안드로이드 프로젝트를 생성한다. 이를 통해 코루틴으로 네트워킹하는 방식, 비동기 작업을 위한 유형의 다... 더보기

북로그 리뷰 (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, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 분야의 베스트

  • 길벗R&D
    17,100원
  • 길벗R&D
    12,600원
  • 이남호
    23,310원
  • 조블리(조애리)
    20,700원
  • 윤인성
    16,200원
더보기+

이 분야의 신간

더보기+

바로가기

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

최근 본 상품