코틀린 아카데미 : 함수형 프로그래밍 - 프로그래밍 인사이트
Description
더 쉽게 함수형 프로그래밍을 배우는 방법!
이 책은 코틀린의 함수형 프로그래밍 특징을 심도 있게 탐구하는 완벽한 가이드입니다. 기본 개념을 차근차근 설명하며, 컬렉션 처리, 함수 참조, 스코프 함수, 도메인 특화 언어(DSL) 사용 및 생성, 컨텍스트 리시버와 같은 고급 주제를 포괄적으로 다룹니다. 각 장의 끝에는 학습한 내용을 바로 적용해 볼 수 있는 연습문제가 수록되어 있어 실전에서의 활용도를 높여 줍니다.

저자

마르친모스카와

저자:마르친모스카와(MarcinMoskała)
경험많은개발자이자코틀린강사이다.2015년부터코틀린을전문적으로사용하였고,2016년부터코틀린에관한글을썼으며,2018년부터코틀린을가르치고있다.코틀린분야의GDE(GoogleDeveloperExpert)이며,젯브레인(JetBrains)과코틀린교육에대한공식적인파트너십을체결하고있는코틀린아카데미(Kt.Academy)의창립자이다.저술한책으로는《코틀린을이용한안드로이드개발》,《이펙티브코틀린》,《코틀린코루틴》,《코틀린아카데미:핵심편》이있다.

역자:신성열
시스템프로그래밍으로개발을시작했으며,현재는카카오에서서버개발자로일하고있다.C++부터시작해자바로,그리고현재는코틀린까지언어영역을넓히고있으며,현업에서는코틀린의다양한기능을배우고적용하고있다.

목차


1장코틀린을사용한함수형프로그래밍
왜함수를객체로다뤄야할까요?

2장함수타입
함수타입정의
함수타입활용
명명된매개변수
타입별명
함수타입은인터페이스입니다

3장익명함수

4장람다표현식
까다로운중괄호
매개변수
후행람다
결괏값
람다표현식예시
단일매개변수의암묵적이름
클로저
람다표현식과익명함수비교
연습문제:함수타입과리터럴

5장함수참조
최상위함수참조
메서드참조
확장함수참조
메서드참조와제네릭타입
한정된함수참조
생성자참조
한정된객체선언참조
함수오버로딩과참조
프로퍼티참조
연습문제:추론된함수타입
연습문제:함수타입과리터럴2

6장코틀린에서SAM인터페이스지원
코틀린에서자바SAM인터페이스지원
함수형인터페이스

7장인라인함수
인라인함수
함수형매개변수가있는인라인함수
비지역반환
crossinline과noinline
구체화된타입매개변수
인라인프로퍼티
inline제어자의비용
인라인함수사용하기
연습문제:인라인함수

8장컬렉션처리
forEach와onEach
filter
map
mapNotNull
flatMap
연습문제:컬렉션처리최적화80
fold
reduce
sum
withIndex와인덱스된변형함수들
take,takeLast,drop,dropLast,subList
연습문제:특정위치에원소추가하기
특정위치의원소얻기
원소찾기
원소개수세기
any,all,none
연습문제:샵함수구현(어려움)
partition
groupBy
맵으로짝지우기
distinct와distinctBy
연습문제:프라임접근리스트
sorted,sortedBy,sortedWith
가변컬렉션정렬하기
최댓값과최솟값
shuffled와random
연습문제:컬렉션처리리팩터링
zip과zipWithNext
윈도잉(windowing)
joinToString
Map,Set,String처리
컬렉션처리함수를모두함께사용하기
연습문제:합격한학생목록
연습문제:가장뛰어난학생목록(어려움)

9장시퀀스
시퀀스란무엇인가?
순서가중요하다
시퀀스는연산을최소한으로수행한다
시퀀스는무한할수있다
시퀀스는각처리단계마다컬렉션을생성하지않는다
시퀀스가더빠르지않은상황은?
자바스트림은어떨까?
코틀린시퀀스디버깅
요약
연습문제:시퀀스이해

10장타입에안전한DSL빌더
리시버가있는함수타입
간단한DSL빌더
apply사용
멀티레벨DSL
DSL마커(DslMarker)
더복잡한예
DSL은언제사용해야할까?
요약
연습문제:HTML테이블DSL
연습문제:사용자테이블행생성하기

11장스코프함수
let
also
takeIf와takeUnless
apply
부주의하게리시버를오버로딩할때의위험성
with
run
스코프함수사용하기
연습문제:스코프함수사용하기
연습문제:orThrow

12장컨텍스트리시버
확장함수의문제점
컨텍스트리시버소개
사용예
컨텍스트리시버가있는클래스
주의점
요약
연습문제:로거

13장애로우개요
함수와애로우코어(ArrowsCore)
고차함수테스트
에러처리
애로우옵틱스로데이터불변성유지하기

마치며
연습문제해답
찾아보기

출판사 서평

《이펙티브코틀린》,《코틀린코루틴》의저자마르친모스카와에게배우는함수형프로그래밍!

코틀린은안드로이드와백엔드개발에혁신을일으킨강력한언어로,뛰어난함수형프로그래밍기능을제공합니다.함수형프로그래밍이라는마법을통해컬렉션을다루고,DSL빌더를만들며,스코프함수를활용하고,컨텍스트리시버를사용하여개발자들이더욱직관적이고표현력넘치는코드를작성하도록돕습니다.또한코틀린의뛰어난확장성은애로우(Arrow)같은라이브러리를활용해타입안전성,안정성,성능을유지하면서더욱함수형에가까운프로그래밍을가능하게합니다.이러한기능들덕분에코틀린은함수형프로그래밍을열정적으로적용하고자하는개발자들에게이상적인언어로자리잡았습니다.

이책은코틀린을어느정도사용해본후,더깊은주제를배우고자하는개발자에게유용합니다.이책을통해함수형프로그래밍의진정한매력을발견하고,코틀린의강력한기능들을마스터하세요.당신의개발실력을한단계더끌어올릴완벽한기회가될것입니다!

이책에서다루는내용

함수타입
컬렉션처리함수
익명함수
시퀀스
람다표현식
DSL사용과생성
함수참조
스코프함수
함수인터페이스
애로우라이브러리에관한필수지식

이책의대상독자

이책은독자여러분이코틀린의기본적인특징을이미알고있다고가정합니다.코틀린을매일사용하는개발자든,기본문법만방금익혔든상관없습니다.데이터클래스가무엇인지알고,val과var의차이를이해하고,여러문장(statement)이어떻게표현식(expression)으로도사용되는지알고있으면됩니다.

소스코드다운로드

본문에소개된모든소스코드는다음깃허브저장소에서확인할수있습니다.
github.com/MarcinMoskala/functional_kotlin_sources