다재다능 코틀린 프로그래밍 (다양한 프로그래밍 패러다임으로 살펴보는 코틀린 기본서)

다재다능 코틀린 프로그래밍 (다양한 프로그래밍 패러다임으로 살펴보는 코틀린 기본서)

$32.53
Description
다양한 언어들의 장점들을 한데 모은 코틀린 완벽 사용법
코틀린은 간단한 스크립트 프로그램부터 안드로이드 앱, 웹 앱을 비롯해 다양한 플랫폼으로 컴파일 되는 다재다능한 언어다. 간결함과 안정성, 상호 운용능력을 장점으로 내세운 코틀린은 2019년 구글에서 안드로이드의 우선 지원 언어로 지정하며 많은 관심을 받고 있다.

이 책에서는 코틀린을 통해 우아하고 효율적인 프로그래밍을 하는데 필요한 모든 지식들을 정리한다. 간단한 스크립트 작업을 통해 코틀린의 문법을 익히는 것으로 시작하여 코틀린을 통해 객체지향 프로그래밍, 비동기 프로그래밍, 함수형 프로그래밍 등 다양한 프로그래밍 패러다임을 적용하는 방법도 살펴본다. 또한 현업 프로젝트에 도움이 될 수 있는 코틀린의 특수한 기능들과 기존 언어나 프레임워크와 코틀린을 혼용하는 방법 등 실제 프로젝트 환경에서 코틀린을 도입하는데 필요한 지식들 또한 소개한다.

각 챕터는 코틀린에서 지원하는 프로그래밍 개념에 관한 설명과 간단한 예제 코드들을 통해 바로 내용을 이해할 수 있도록 구성되어있다. 코틀린을 활용하는데 필요한 개념 대부분을 소개하고 있기 때문에 프로그래밍과 관련된 기초적인 개념들도 소개한다. 따라서, 프로젝트에 코틀린을 처음 도입하고자 하는 현업 개발자는 코틀린이 지닌 장점들을 최대한 활용하는 방법을 파악할 수 있으며, 다른 언어를 통해 프로그래밍을 시작한 초보자는 책에서 소개된 다양한 프로그래밍 개념을 통해 실력을 한 단계 더 높일 수 있다.
저자

벤컷수브라마니암

휴스턴대학교수이자기업'애자일디벨로퍼'의설립자이다.전세계의수많은소프트웨어개발자들을훈련하고멘토링하였으며많은소프트웨어프로젝트에애자일방법론을성공적으로적용하는방법을코칭했다.저서로는〈자바8람다의힘〉(루비페이퍼,2014),〈애자일프랙티스〉(인사이트,2007)가있다.

목차

Part01코틀린으로스크립팅하기

Chapter01코틀린시작하기
1-1코틀린을사랑할수밖에없는이유
1-2왜코틀린을선택해야하는가?
1-3코틀린사용하기
1-4바이트코드로컴파일하고실행하기
1-5다른타깃으로컴파일하기
1-6어떤옵션을선택해야할까?
정리

Chapter02Java개발자를위한코틀린필수사항
2-1더적은타이핑
2-2현명한경고
2-3var보다는val
2-4향상된동일성체크
2-5문자열템플릿
2-6RAW문자열
2-7표현식은많이,명령문은적게
정리

Chapter03함수를사용하자
3-1함수생성
3-2기본인자와명시적인자
3-3다중인자와스프레드
3-4구조분해
정리

Chapter04외부반복과아규먼트매칭
4-1범위와반복
4-2배열과리스트의반복
4-3when을사용해야할때
정리

Chapter05콜렉션사용하기
5-1콜렉션의특징
5-2페어와트리플사용하기
5-3객체배열과프리미티브배열
5-4리스트사용하기
5-5셋사용하기
5-6맵사용하기
정리

Chapter06오류를예방하는타입안정성
6-1Any와Nothing클래스
6-2Null가능참조
6-3타입체크와캐스팅
6-4명시적타입캐스팅
6-5제네릭:파라미터타입의가변성과제약사항
6-6구체화된타입파라미터
정리

Part02객체지향코틀린

Chapter07객체와클래스
7-1객체와싱글톤
7-2클래스생성
7-3컴패니언객체와클래스멤버
7-4제네릭클래스생성
7-5데이터클래스
정리

Chapter08클래스계층과상속
8-1인터페이스와추상클래스생성
8-2중첩클래스와내부클래스
8-3상속
8-4씰드클래스
8-5Enum의생성과사용
정리

Chapter09델리게이션을통한확장
9-1상속대신델리게이션을써야하는상황
9-2델리게이션을사용한디자인
9-3파라미터에위임하기
9-4메소드충돌관리
9-5델리게이션의주의사항
9-6변수와속성델리게이션
9-7빌트인스탠다드델리게이션
정리

Part03함수형코틀린

Chapter10람다를사용한함수형프로그래밍
10-1함수형스타일
10-2람다표현식
10-3람다와익명함수
10-4클로저와렉시컬스코핑
10-5비지역성(non-local)과라벨(labeled)리턴
10-6람다를이용한인라인함수
정리

Chapter11내부반복과지연연산
11-1외부반복자vs내부반복자
11-2내부반복자
11-3지연연산을위한시퀀스
정리

Part04우아하고효율적인코틀린

Chapter12코틀린에서구현하는유창성
12-1연산자오버로딩
12-2확장함수와속성을이용한인젝팅
12-3함수확장
12-4infix를이용한중위표기법
12-5Any객체를이용한자연스러운코드
12-6암시적리시버
정리

Chapter13내부DSL만들기
13-1DSL의타입과특징
13-2내부DSL을위한코틀린
13-3유창성확립시마주하는난관
13-4타입세이프빌더
14-5스코프제어를통한접근제한
정리

Chapter14재귀프로그래밍과메모이제이션프로그래밍
14-1재귀의강점과위험성
14-2꼬리호출최적화
14-3메모이제이션
정리

Part05비동기어플리케이션만들기

Chapter15코루틴탐험하기
15-1코루틴과동시실행
15-2코루틴을이용한동시실행
15-3코루틴의컨텍스트와스레드
15-4코루틴디버깅
15-5async와await
15-6연속성살펴보기
15-7무한시퀀스만들기
정리

Chapter16비동기프로그래밍
16-1비동기프로그래밍
16-2예외처리
16-3취소와타임아웃
정리

Part06상호운용과테스트

Chapter17Java와코틀린혼용
17-1조인트컴파일
17-2코틀린에서Java호출하기
17-3Java에서코틀린호출하기
정리

Chapter18코틀린유닛테스트
18-1테스트코드가있는코드
18-2프로젝트파일가져오기
18-3카나리테스트로시작하기
18-4실증테스트작성
18-5데이터드리븐테스트작성
18-6의존성모킹
18-7탑레벨함수테스트
18-8코루틴과비동기호출테스트
18-9서비스로통합하기
18-10코드커버리지보기
18-11앱실행하기
정리

Chapter19코틀린으로스프링사용하기
19-1시작프로젝트생성
19-2컨트롤러만들기
19-3엔티티클래스생성
19-4리포지터리인터페이스생성
19-5서비스생성
19-6컨트롤러로서비스통합하기
19-7사용하기
정리

Chapter20코틀린으로안드로이드어플리케이션만들기
20-1프로젝트생성
20-2도메인객체정의
20-3레이아웃생성
20-4액티비티구현
20-5리싸이클러뷰업데이트
20-6사용하기
정리

출판사 서평

코틀린은멀티패러다임프로그래밍언어다.코틀린은스크립트로사용할수도있고,객체지향코드나함수형코드,비동기프로그램을작성하는것처럼더다양한방법으로사용가능하다.이렇게넓은스펙트럼의주제들을설명하기위해이책은여러부분들로나누었다.

1부는코틀린을사용한스크립팅에집중한다.2부는객체지향프로그래밍에관한설명이다.3부에서는함수형언어로서의코틀린을배운다.4부는지금까지배운것들을종합하여더좋은코드를쓰도록만든다.그리고내부도메인특정언어(Domain-SpecificLanguage,DSL)를만드는방법에대해서배운다.5부에서는코루틴과비동기프로그래밍에대해서알아본다.마지막으로6부에서는Java인터롭(interop:다른언어로개발된어셈블리를특정환경에서사용할수있게하는기술),테스팅,스프링사용,안드로이드어플리케이션개발등코틀린을활용한개발에대해살펴본다.각장에서다루는영역은다음과같다.

1장.코틀린시작하기
코틀린을사용해야할이유를알아보고필수적인툴을다운로드받아코드를작성해볼것이다.

2장.Java의개발자를위한코틀린필수사항
Java에서코틀린으로넘어온개발자들은코틀린과Java의차이점을배우기전까지코틀린에서도Java의문법과습관들을그대로사용한다.그래서일부습관과문법을고치기위한필수사항들을알아본다.

3장.함수를사용하자
함수는코틀린에서1급객체(first-classcitizen:다른객체들에일반적으로적용가능한연산을모두지원하는객체)이다.코틀린은매우많은기능을제공한다.기본인자와명시적인자그리고가변인자같은기능들을살펴본다.

4장.외부반복과아규먼트매칭
명령형프로그래밍을할때우리는종종외부반복자를사용한다.코틀린의반복자가어떻게반복작업을쉽게만들어주고,아규먼트매칭문법이조건문에서발생되는많은노이즈들을제거해주는지알아볼것이다.

5장.콜렉션사용하기
우리는프로그래밍을할때콜렉션을광범위하게사용한다.이장에서는뷰인터페이스를통해JDK의콜렉션을코틀린에서사용하는방법을보여줄것이다.

6장.오류를예방하는타입안정성
코틀린의타입시스템은컴파일시점에우리가정적타입언어에서기대하는타입체크를훨씬뛰어넘는성능을발휘한다.코틀린의기본타입,널가능(nullable)과널불가능(non-nullable)참조,스마트캐스팅,제네릭가변성등에대해배울것이다.

7장.객체와클래스
코틀린에서클래스를만들기란Java에서클래스를만드는것과의미상으로는비슷하지만많은차이점이있다.싱글톤,클래스,동반객체(companionobject)에대해서배우고데이터클래스를사용해야하는이유를배운다.

8장.클래스계층과상속
코틀린의상속을다루는방법은Java에서와많이다르다.클래스는디폴트로파이널이되고코틀린은타입안정성(typesafety)과컴파일시점에체크를향상시키기위해서몇가지룰을적용한다.

9장.델리게이션을통한확장
코틀린은델리게이션을직접제공하는언어로몇가지빌트인델리게이트를가지고있다.또한커스텀델리게이트를쉽게만들수있다.우리는언제그리고왜델리게이션을사용하는지에대해먼저논의한후델리게이트를사용할것이다.

10장.람다를사용한함수형프로그래밍
람다표현식을만드는방법과고차함수(higher-order-function)를작성하는방법을배운다.그리고함수호출의오버헤드제거와성능향상을위해코틀린이제공하는기능을알아볼것이다.

11장.내부반복과지연연산
내부반복자는유연함을제공한다.그리고시퀀스는우리에게효율성을준다.우리는함수형스타일에반복을적용하는방법과객체의콜렉션을처리하는알아볼것이다.

12장.코틀린에서구현하는유창성
코틀린을사용하여코드를간결하고,우아하고,풍부하게만드는방법과코틀린을능숙하게다루기위한다양한기능들을보여준다.

13장.내부DSL만들기
내부DSL를능숙하게다루기위한주제로,나만의특별한언어를위한문법을정의하는동시에컴파일시점에서타입안정성을구현하는방법을배운다.

14장.재귀프로그래밍과메모이제이션프로그래밍
코틀린은꼬리호출최적화를제공한다.그리고JVM에서동작하는언어중꼬리호출최적화가제공되는언어는별로없다.이런최적화가어떻게작동하는지볼것이고메모이제이션을통해연산복잡성을낮추는방법을배울것이다.

15장.코루틴탐험하기
코루틴은코틀린1.3에서안정화된기능이다.이번장에서는컨티뉴에이션과함께비동기프로그래밍의기본을설명한다.

16장.비동기프로그래밍
비동기프로그램의이점을알아볼수있는예제프로그램을만들기위해서코루틴을적용해본다.

17장.Java와코틀린혼용
코틀린은Java버추얼머신(JVM)을비롯한여러플랫폼에서동작한다.이번장에서는코틀린과Java를상호적으로사용하는방법을배운다.모던Java에서코틀린을사용하는방법,Maven과Gradle을사용하는방법,한프로그램에서Java와코틀린을동시에사용하는방법을배운다.

18장.코틀린유닛테스트
코틀린컴파일러가아무리에러를잡아주더라도지속가능한애자일개발을위해자동화된테스트가필수적이다.유닛테스트만드는방법과코드커버리지측정법에대해서배운다.

19장.코틀린으로스프링사용하기
코틀린프로그래머를위한스프링라이브러리를알아보고그특별한기능들도알아본다.

20장.코틀린으로안드로이드어플리케이션만들기
백엔드서비스와통신하는안드로이드어플리케이션을만든다.