함수형 코틀린 (코틀린과 애로우로 배우는 함수형 프로그래밍)

함수형 코틀린 (코틀린과 애로우로 배우는 함수형 프로그래밍)

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

마리오아리아스

소프트웨어개발,디자인,데이터베이스,교육자료디자인,트레이닝딜리버리(trainingdelivery)에서12년이상의경험을쌓은소프트웨어엔지니어이자스프링인증강사다.
현재영국맨체스터의BAMTECH미디어회사인케이크솔루션(CakeSolutions)에서소프트웨어엔지니어로일하고있다.
코틀린커뮤니티에서잘알려진멤버이며,애로우기능라이브러리를개발하고유지보수하는그룹인애로우팀의일원이다.자유시간에자전거를타고브라질리언주짓수를연마한다.

목차

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,coroutineworld!
__실제코루틴사용
____동기구현
____콜백
____자바퓨처
____코버넌트를통한프로미스
____코루틴
____코루틴컨텍스트
__채널
____채널파이프라인
__변경가능한상태관리
____컨텍스트전환
____스레드안전구조체
____뮤텍스
____액터
__정리

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가있는코리커젼
__정리

부록.코틀린퀵스타트
__코틀린작성및실행
____코틀린온라인
____콘솔에서하기
____그래들사용
____IntelliJIDEA나안드로이드스튜디오사용
__기본코틀린구문
____일반기능
____제어구조
__코틀린Koans

출판사 서평

★이책에서다루는내용★

■코틀린으로함수형프로그래밍컨셉배우기
■코틀린코루틴다루기
■애로우라이브러리사용하기
■모나드,펑터,어플리커티브에대해배우기
■함수형프로그래밍을OOP와리액티브프로그래밍과결합하기
■애로우와함께모나드사용하기
■스트림처리하기

★이책의대상독자★

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

★이책의구성★

1장,'코틀린:데이터타입,오브젝트,클래스'에서는코틀린의객체지향프로그래밍에대해소개한다.코틀린은기본적으로객체지향프로그래밍이며,함수형프로그래밍스타일을소개하기위해이러한기능을사용한다.
2장,'함수형프로그래밍시작'에서는코틀린의객체지향프로그래밍기능을사용해함수형프로그래밍의기본원칙을다룬다.
3장,'불변성:중요’에서는불변성을함수형프로그래밍의가장중요한개념중하나라고강조한다.그리고불변성에대해심층적으로이해할수있게돕는다.
4장,'함수,함수타입,부수효과'에서는함수,순수함수에대한컨셉과다양한함수타입및부수효과에대한기본적인함수형프로그래밍컨셉을소개한다.
5장,'함수심화학습'에서는확장함수,연산자오버로딩,DSL,코리커젼같은함수형프로그래밍을위한코틀린의기능을다룬다.
6장,'코틀린의델리게이트'에서는델리게이트를위해코틀린이언어레벨에서지원하는방법을다룬다.델리게이트는객체지향프로그래밍컨셉이지만코드를모듈화하는데도움이될수있다.
7장,'코루틴을사용한비동기프로그래밍'에서는코틀린에서의비동기프로그래밍을소개하고,코루틴과다른스타일을비교한다.
8장,'코틀린의컬렉션과데이터작업'에서는코틀린의향상된컬렉션API와코틀린의컬렉션프레임워크가제공하는함수형인터페이스에대해다룬다.
9장,'함수형프로그래밍과리액티브프로그래밍'에서는최대한의이득을얻기위해함수형프로그래밍이다른프로그래밍패러타임과결합하는방법을보여준다.또한함수형프로그래밍과객체지향프로그래밍및리액티브프로그래밍의결합방법을알아본다.
10장,'펑터,어플리커티브,모나드'에서는타입을가진함수형프로그래밍과그기본컨셉을소개한다.또한코틀린에서구현하는방법을설명한다.
11장,'코틀린에서스트림작업'에서는코틀린의스트림API을소개한다.
12장,'애로우시작'에서는애로우사용법과함수형프로그래밍을위한확장,함수합성,커링,부분애플리케이션,메모이제이션,옵틱스를다룬다.
13장,'애로우타입'에서는Option,Either,Try같은애로우데이터타입과State및타입클래스,펑터,모나드를이해하게돕는다.
부록,'코틀린퀵스타트'에서는코틀린코드작성을시작하는데필요한도구,기본구문등과코틀린여행을진행하는데도움이되는다른리소스를제공한다.

★옮긴이의말★

코틀린개발에관심있으신독자여러분,관심을갖고이책을봐주셔서대단히감사합니다.
저는안드로이드개발을통해코틀린을접하게됐지만,안드로이드와는관계없이코틀린을알게되는과정이참재미있었습니다.새로운언어를배우는것이약간힘들기도하지만그만큼재미도있습니다.다른분들도저와같은마음이라면좋겠습니다.
이책은코틀린에대해많은내용을다루고있습니다.기존에안드로이드개발을하시던분이라면한번쯤코틀린으로도전하는것도좋을것같습니다.호환도되고코드를만드는재미도있습니다.후회하지않을겁니다.저도간단하게코틀린으로앱하나를만들어봤는데,괜찮았습니다.
여러분처럼코틀린을배우고싶은분들에게도움되고자이책을번역하게됐습니다.부디도움이됐으면좋겠습니다.책을읽다가이상한부분,이해가안되는부분이있으면주저없이이메일로의견보내주시기를바랍니다.