로그인회원가입장바구니고객센터마이페이지회사소개
kangcom
전체
Home >   >   > 

『함수형 코틀린: 코틀린과 애로우로 배우는 함수형 프로그래밍』

   
지은이 마리오 아리아스, 리부 카크라보티   |   출판사 에이콘  |   발행일 2019년 01월 31일
 
클릭하시면 큰 도서이미지를 보실 수 있습니다.
판매가 30,000원27,000원 10%
마일리지 5% 1,500원
발행일 2019-01-31
ISBN 1161752633 | 9791161752631
기타정보 번역서 | 416쪽
예상출고일 금일 가능 (근무일기준)
배송비 무료배송
   
일반
   
이 책의 원서
  Functional Kotlin
Packt Publishing | Mario Arias
 

★ 요약 ★



간단한 예제를 통해 코틀린의 여러 가지 특징을 쉽게 살펴볼 수 있도록 구성된 책이다. 다른 언어에서 접해보지 못한, 혹은 접해봤지만 코틀린에서 약간 다르게 동작하는 것들을 알게 될 것이다. 이 책을 읽고 나면 코틀린의 기본에 대해 깨우치고 스스로 코틀린 프로그래밍을 헤쳐나갈 수 있는 기초를 다질 수 있다.





★ 이 책에서 다루는 내용 ★



■ 코틀린으로 함수형 프로그래밍 컨셉 배우기

■ 코틀린 코루틴 다루기

■ 애로우 라이브러리 사용하기

■ 모나드, 펑터, 어플리커티브에 대해 배우기

■ 함수형 프로그래밍을 OOP와 리액티브 프로그래밍과 결합하기

■ 애로우와 함께 모나드 사용하기

■ 스트림 처리하기

★ 이 책의 대상 독자 ★



이 책은 코틀린의 기본을 알고 있으면서 함수형 프로그래밍 이면의 기본 아이디어를 이해하고 실용적으로 사용하는 방법을 알고 싶은 코틀린 유저(프로그래머, 엔지니어, 라이브러리 작성자, 아키텍트)를 위한 것이다. 부록에서 코틀린 언어를 빠르게 시작하는 방법을 제공한다. 코틀린을 처음 접하는 독자라면 부록 먼저 보기를 권한다.





★ 이 책의 구성 ★



1장, '코틀린: 데이터 타입, 오브젝트, 클래스'에서는 코틀린의 객체지향 프로그래밍에 대해 소개한다. 코틀린은 기본적으로 객체지향 프로그래밍이며, 함수형 프로그래밍 스타일을 소개하기 위해 이러한 기능을 사용한다.

2장, '함수형 프로그래밍 시작'에서는 코틀린의 객체지향 프로그래밍 기능을 사용해 함수형 프로그래밍의 기본 원칙을 다룬다.

3장, '불변성: 중요’에서는 불변성을 함수형 프로그래밍의 가장 중요한 개념 중 하나라고 강조한다. 그리고 불변성에 대해 심층적으로 이해할 수 있게 돕는다.

4장, '함수, 함수 타입, 부수 효과'에서는 함수, 순수 함수에 대한 컨셉과 다양한 함수 타입 및 부수 효과에 대한 기본적인 함수형 프로그래밍 컨셉을 소개한다.

5장, '함수 심화 학습'에서는 확장 함수, 연산자 오버로딩, DSL, 코리커젼 같은 함수형 프로그래밍을 위한 코틀린의 기능을 다룬다.

6장, '코틀린의 델리게이트'에서는 델리게이트를 위해 코틀린이 언어 레벨에서 지원하는 방법을 다룬다. 델리게이트는 객체지향 프로그래밍 컨셉이지만 코드를 모듈화하는데 도움이 될 수 있다.

7장, '코루틴을 사용한 비동기 프로그래밍'에서는 코틀린에서의 비동기 프로그래밍을 소개하고, 코루틴과 다른 스타일을 비교한다.

8장, '코틀린의 컬렉션과 데이터 작업'에서는 코틀린의 향상된 컬렉션 API와 코틀린의 컬렉션 프레임워크가 제공하는 함수형 인터페이스에 대해 다룬다.

9장, '함수형 프로그래밍과 리액티브 프로그래밍'에서는 최대한의 이득을 얻기 위해 함수형 프로그래밍이 다른 프로그래밍 패러타임과 결합하는 방법을 보여준다. 또한 함수형 프로그래밍과 객체지향 프로그래밍 및 리액티브 프로그래밍의 결합 방법을 알아 본다.

10장, '펑터, 어플리커티브, 모나드'에서는 타입을 가진 함수형 프로그래밍과 그 기본 컨셉을 소개한다. 또한 코틀린에서 구현하는 방법을 설명한다.

11장, '코틀린에서 스트림 작업'에서는 코틀린의 스트림 API을 소개한다.

12장, '애로우 시작'에서는 애로우 사용법과 함수형 프로그래밍을 위한 확장, 함수 합성, 커링, 부분 애플리케이션, 메모이제이션, 옵틱스를 다룬다.

13장, '애로우 타입'에서는 Option, Either, Try 같은 애로우 데이터 타입과 State 및 타입 클래스, 펑터, 모나드를 이해하게 돕는다.

부록, '코틀린 퀵 스타트'에서는 코틀린 코드 작성을 시작하는 데 필요한 도구, 기본 구문 등과 코틀린 여행을 진행하는 데 도움이 되는 다른 리소스를 제공한다.





★ 지은이의 말 ★



지난 2017년 I/O 콘퍼런스에서 구글이 안드로이드의 공식 언어로 코틀린을 발표한 후로 코틀린은 세계의 개발자들 사이에서 인기를 얻고 있다. 코틀린의 인기는 안드로이드 커뮤니티에 국한되지 않고, 데스크톱, 웹, 백엔드 커뮤니티와 같은 다른 많은 커뮤니티에서도 코틀린을 사용하고 있다. 새로운 라이브러리와 프레임워크가 계속해서 만들어지고 있으며, 기존 라이브러리와 프레임워크도 코틀린을 지원한다.

계속해서 더 많은 개발자가 코틀린 커뮤니티로 오고 있으며, 자연스러운 유연한 특징으로 인해 더 많은 프로그래밍 스타일이 시도되고 있다. 이 책의 목적은 광범위한 코틀린 커뮤니티에게 함수형 프로그래밍 스타일의 첫 번째 단계로 이끌고, 컨셉을 진보시키기 위한 기본 툴을 제공하는 것이다.



1장. 코틀린: 데이터 타입, 오브젝트, 클래스

__클래스

____속성

____메소드

__상속

__추상 클래스

__인터페이스

__오브젝트

____오브젝트 선언

____컴패니언 오브젝트

__제네릭

__타입 앨리어스

__Nullable 타입

____null 확인

____null이 아닌 타입 확인

____안전 호출

____엘비스(?:) 연산자

____(!!) 연산자

__코틀린의 타입 시스템

____Any 타입

____최소 공통 타입

____Unit 타입

____Nothing 타입

__기타 타입

____데이터 클래스

____주석

____열거형

__정리





2장. 함수형 프로그래밍 시작

__함수형 프로그래밍이란?

__기본 개념

____일급 함수 및 고차 함수

____순수 함수

____재귀 함수

____느긋한 계산법

__함수적 컬렉션

__함수형 리스트 구현

__정리





3장. 불변성: 중요

__불변성이란?

____코틀린에서 불변성 구현

____var와 val의 차이

____컴파일 타임 상수

____불변성의 종류

__불변 컬렉션

__불변성의 장점

____스레드 안전성

____낮은 커플링

____참조 투명성

____실패 원자성

____캐싱

____컴파일러 최적화

____순수 함수

__불변성의 단점

__정리





4장. 함수, 함수 타입, 부수 효과

__코틀린의 함수

____함수에서 두 개의 값 반환

____확장 함수

____기본 인수

____중첩 함수

__함수형 프로그래밍에서의 함수 타입

__람다

____속성으로서의 함수

__고차 함수

__순수 함수와 부수 효과

____부수 효과

____순수 함수

__정리





5장. 함수 심화 학습

__단일 표현 함수

__파라미터

____수정자 vararg

____람다

____명명된 파라미터

____기본 파라미터

__확장 함수

____확장 함수와 상속

____충돌하는 이름을 가진 확장 함수

____오브젝트용 확장 함수

__중위 함수

__연산자 오버로딩

____바이너리 연산자

____Invoke

____인덱싱된 접근

____Unary 연산자

__타입 안전 빌더

____DSL 생성

__인라인 함수

____인라인 제한

__재귀 및 코리커젼

__정리





6장. 코틀린의 델리게이트

__위임 소개

____위임의 이해

__코틀린의 델리게이트

__속성 위임(표준 델리게이트)

____Delegates.notNull 함수와 lateinit

____느긋한 함수

____Delegates.Observable를 사용해 속성 값 변경 관찰

____거부의 힘: Delegates.vetoable

__위임된 맵

__커스텀 위임

__로컬 델리게이트

__클래스 위임

__정리





7장. 코틀린을 사용한 비동기 프로그래밍

__코루틴 소개

____JVM 스레드 이해

____Hell, coroutine world!

__실제 코루틴 사용

____동기 구현

____콜백

____자바 퓨처

____코버넌트를 통한 프로미스

____코루틴

____코루틴 컨텍스트

__채널

____채널 파이프라인

__변경 가능한 상태 관리

____컨텍스트 전환

____스레드 안전 구조체

____뮤텍스

____액터

__정리





8장. 코틀린의 컬렉션과 데이터 작업

__컬렉션 소개

____컬렉션 프레임워크의 장점

__List와 MutableList

__Set과 MutableSet

__Map과 MutableMap

__컬렉션의 데이터 작업

____map 함수

____filter 함수

____flatMap 함수

____drop 함수

____take 함수

____zip 함수

__컬렉션 그룹화

__정리





9장. 함수형 프로그래밍과 리액티브 프로그래밍

__FP와 OOP 결합

__함수형 리액티브 프로그래밍

____리액티브 매니페스토

____코틀린의 함수형 리액티브 프레임워크

__RxKotlin 시작

____RxKotlin 다운로드 및 설정

____RxJava 푸시 메커니즘과 풀 메커니즘 비교

__Observables

____Observable의 작동 방식

__Observable.create 메소드

__Observable.from 메소드

__Iterator.toObservable

__Subscriber: Observer 인터페이스

__구독 및 폐기

__정리





10장. 펑터, 어플리커티브, 모나드

__펑터

__모나드

__어플리커티브

__정리





11장. 코틀린에서 스트림 작업

__스트림 소개

__컬렉션과 스트림

__스트림 작업

__프리미티브 스트림

__스트림 팩토리 메소드

____스트림 빌더

____빈 스트림 생성: Stream.empty()

____요소를 전달해 스트림 만들기: Stream.of()

____스트림 생성: Stream.generate()

__컬렉터와 Stream.collect: 스트림 수집

____Collectors.toList(), Collectors.toSet(), Collectors.toCollection()

____맵에 수집: Collectors.toMap()

____문자열 스트림의 결합: Collectors.joining()

____스트림 요소 그룹화: Collectors.groupingBy()

__정리





12장. 애로우 시작

__함수 합성

__부분 애플리케이션

____바인딩

__리버스

__파이프

__커링

____커링과 부분 애플리케이션의 차이점

__논리 부정

__메모이제이션

__부분 함수

__항등과 상수

__옵틱스

____애로우 코드 생성 설정

____렌즈 생성

__정리





13장. 애로우 타입

__Option

__애로우의 타입 계층

__Either

__모나드 트랜스포머

__Try

__State

____State가 있는 코리커젼

__정리





부록. 코틀린 퀵 스타트

__코틀린 작성 및 실행

____코틀린 온라인

____콘솔에서 하기

____그래들 사용

____IntelliJ IDEA나 안드로이드 스튜디오 사용

__기본 코틀린 구문

____일반 기능

____제어 구조

__코틀린 Koans

마리오 아리아스(Mario Arias)

소프트웨어 개발, 디자인, 데이터베이스, 교육 자료 디자인, 트레이닝 딜리버리(training delivery)에서 12년 이상의 경험을 쌓은 소프트웨어 엔지니어이자 스프링 인증 강사다.

현재 영국 맨체스터의 BAMTECH 미디어 회사인 케이크 솔루션(Cake Solutions)에서 소프트 웨어 엔지니어로 일하고 있다.

코틀린 커뮤니티에서 잘 알려진 멤버이며, 애로우 기능 라이브러리를 개발하고 유지 보수하는 그룹인 애로우 팀의 일원이다. 자유 시간에 자전거를 타고 브라질리언 주짓수를 연마한다.



리부 카크라보티(Rivu Chakraborty)

Caster.io 강사이자 구글 인증 안드로이드 개발자이며, 인도 엔지니어 학회의 시니어 테크 멤버다. 5년 이상의 경력을 쌓았고, 현재 인더스 넷 테크널러지스 유한회사(Indus Net Technologies Pvt. Ltd.)에서 시니어 소프트웨어 엔지니어(안드로이드)로 일하고 있다.

코틀린과 안드로이드 애호가이며 코틀린 에반젤리스트다. 2년 이상 코틀린을 사용해 왔으며, 코틀린 콜카타 UG의 설립자다. 또한 지디지 콜카타(GDG Kolkata)의 핵심 조직 팀의 멤버다. 『Reactive Programming in Kotlin』(Packt, 2017)을 저술했으며, 코틀린에 대한 두 권 이상의 책을 작업 중이다.





★ 옮긴이의 말 ★



코틀린 개발에 관심 있으신 독자 여러분, 관심을 갖고 이 책을 봐주셔서 대단히 감사합니다.

저는 안드로이드 개발을 통해 코틀린을 접하게 됐지만, 안드로이드와는 관계없이 코틀린을 알게 되는 과정이 참 재미있었습니다. 새로운 언어를 배우는 것이 약간 힘들기도 하지만 그만큼 재미도 있습니다. 다른 분들도 저와 같은 마음이라면 좋겠습니다.

이 책은 코틀린에 대해 많은 내용을 다루고 있습니다. 기존에 안드로이드 개발을 하시던 분이라면 한 번쯤 코틀린으로 도전하는 것도 좋을 것 같습니다. 호환도 되고 코드를 만드는 재미도 있습니다. 후회하지 않을 겁니다. 저도 간단하게 코틀린으로 앱 하나를 만들어 봤는데, 괜찮았습니다.

여러분처럼 코틀린을 배우고 싶은 분들에게 도움되고자 이 책을 번역하게 됐습니다. 부디 도움이 됐으면 좋겠습니다. 책을 읽다가 이상한 부분, 이해가 안 되는 부분이 있으면 주저 없이 이메일로 의견 보내주시기를 바랍니다.





★ 옮긴이 소개 ★



구진수

게임과 앱, 프로그래밍에 관심이 많으며, 관련 책과 정보를 번역하면서 공유하려 한다. 번역자로서의 목표는 한 페이지가 본인의 이름으로 채워질 수 있게 많은 책을 번역해보는 것이다.

등록된 서평이 없습니다.
CATIA VBA...
이재섭
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
드론 제작 노트...
양정환
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
파이썬 머신러닝 완벽 가이드...
권철민
선택된 상품을 찜하실 수 있습니다. 선택된 상품을 바로구매 하실 수 있습니다.
커트 건서로...
드미트리 보...
 
전체평균(0)
회원평점   회원서평수 0
에이콘 출판사의 신간
『파이썬 네트워크 자동화: 가상화 랩 만들기를 통한』
최병철 저
40,500원
(10%↓+5%)
 
『RxJava 시작하기: RxJava로 시작하는 리액티브 프로그래밍』
토마스 닐드 저
29,700원
(10%↓+5%)
 
『리액트 & 리액트 네이티브 통합 교과서: 웹과 네이티브 모바일 개발을 위한 실전 활용법』
아담 보두치 저
31,500원
(10%↓+5%)
 
『사이버 보안 공학: 소프트웨어 공학과 정보 보안』
낸시 R. 미드, 캐롤 C. 우디 저
31,500원
(10%↓+5%)
 
『Kafka Streams in Action: 카프카 스트림즈 API로 만드는 실시간 애플리케이션』
윌리엄 베젝 저
27,000원
(10%↓+5%)
 
이메일주소수집거부