코틀린 프로그래밍 [상세한 가이드로 코틀린 기능과 친숙해지기]
- 원서명Programming Kotlin: Familiarize yourself with all of Kotlin's features with this in-depth guide (ISBN 9781787126367)
- 지은이스티븐 사무엘(Stephen Samuel), 스테판 보큐리우(Stefan Bocutiu)
- 옮긴이강경구
- ISBN : 9791161750996
- 30,000원
- 2018년 01월 19일 펴냄 (절판)
- 페이퍼백 | 556쪽 | 188*235mm
- 시리즈 : acorn+PACKT, 모바일 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 코드 파일은 여기에서 내려 받으실 수 있습니다.
본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약
코틀린은 JVM진영의 새로운 언어로 많은 관심을 받고 있다. 이 책에서는 코틀린의 기본 문법은 물론 동시성과 같은 어려운 주제까지 폭넓은 주제를 다루고 있다. JVM 기반 언어가 생소한 독자도 쉽게 배울 수 있으며, 자바와 같이 기존 JVM 기반 언어를 개발해 본 독자라면 코틀린에서 제공하는 풍부하고 손쉬운 기능들을 보면서 개발하는 데 새로운 즐거움을 느낄 수 있을 것이다.
이 책에서 다루는 내용
█ 구조화되고 가독성 좋은 객체지향 코드 작성을 위한 새로운 기능 사용
█ 깔끔하고 재사용이 가능하며 간단한 코드 작성을 위한 람다와 고차 함수 사용법 이해
█ 유닛 테스트 작성 및 변환된 코드 기반에서 코틀린 테스트와 자바 코드 통합
█ 마이크로서비스 스타일을 사용해 코틀린으로 실제 상용 코트 작성
█ 코틀린 확장을 자바 컬렉션 라이브러리에 활용하기
█ 널 포인터 에러를 피하는 코드를 작성하고, 자바의 널 값이 가능한 코드가 코틀린 코드베이스에 있는 기능과 어떻게 통합될 수 있는지를 확인하기
█ 코틀린에서 함수를 작성하는 방법과 사용 가능한 새로운 기능을 살펴보고, 기존 라이브러리를 확장하기
이 책의 대상 독자
이 책은 코틀린 경험이 없으면서 언어를 빠르게 습득하고자 하는 독자를 대상으로 한다.
책에서는 코틀린을 이용한 서버 사이드 개발에 중점을 두고 있으며, 현재 서버 사이드 개발자거나 이를 배우고자 하는 개발자에게는 안성맞춤일 것이다. 함수형 프로그래밍이나 객체지향 프로그래밍에 대한 선지식이 필요하지는 않지만 다른 프로그래밍 언어에 대한 지식이 있으면 좋다.
일부 장에는 자바 구현체와 코틀린을 비교하는 간단한 절이 있기는 하지만, 자바에 대한 지식이 없는 독자라면 이러한 절은 건너뛰어도 무방하다.
이 책의 구성
1장, ‘코틀린 시작하기’에서는 코틀린과 젯브레인(Jetbrains) 사의 인텔리제이(Intellij) IDEA 그리고 그레이들(Gradle) 빌드 환경을 설치하는 방법을 다룬다. 툴 체인 설정을 완료한 다음 첫 번째 코틀린 프로그램을 작성하는 방법을 보여준다.
2장, ‘코틀린 기본기’에서는 기본 타입과 기본 문법, 그리고 if 문과 for 문, while 루프 같은 프로그램 흐름 제어 구조를 포함한 코틀린의 기본사항을 배워본다. 또한 2장에서는 when 표현식과 타입 추론 같은 코틀린에 특화된 기능도 다룬다.
3장, ‘코틀린과 객체지향 프로그래밍’에서는 코틀린 언어의 객체지향적 측면에 초점을 맞춘다. 3장에서는 클래스, 인터페이스, 객체 그리고 이들 간의 관계와 서브타입과 다형성을 소개한다.
4장, ‘코틀린과 함수’에서는 다른 언어에서 기본 구성요소인 프로시저나 메소드로 알려진 함수에 대해 살펴본다. 4장에서는 이름이 있는 매개변수, 기본 매개변수, 함수 리터럴 같이 코틀린에서 향상된 기능을 포함한 함수를 위한 문법을 설명한다.
5장, ‘고차 함수와 함수형 프로그래밍’에서는 흔히 람다라고 알려진 클로저와 함수 참조(function reference)를 포함한 코틀린의 함수형 프로그래밍 측면에 중점을 둔다. 5장에서는 여기서 더 나아가 부분 적용과 함수 합성, 오류 축적 같은 함수형 프로그래밍 기교도 다뤄본다.
6장, ‘프로퍼티’에서는 클래스나 객체에서 값을 노출하기 위해 객체지향 프로그래밍과 함께 동작하는 프로퍼티에 대해 설명한다. 6장에서는 프로퍼티가 어떻게 동작하는지와 사용자가 프로퍼티를 어떻게 잘 활용할 수 있는지 그리고 프로퍼티가 바이트 코드로는 어떻게 표현되는지를 다룬다.
7장, ‘널 안정성, 리플렉션, 애노테이션’에서는 널 안정성이 코틀린이 제공하는 핵심 기능 중 하나라는 점을 설명한다. 7장에서는 우선, 코틀린에서 널 안정성이 왜 필요한지와 어떻게 사용하는지를 자세히 설명한다. 그런 다음, 런타임에서 코드를 반영하는 리플렉션에 대해 설명하면서 리플렉션이 메타프로그래밍에서 애노테이션과 함께 어떻게 사용될 수 있는지를 살펴본다.
8장, ‘제네릭’에서는 제네릭 또는 매개변수화된 타입은 향상된 타입 시스템의 핵심 요소이며, 코틀린의 타입 시스템은 자바에서 사용 가능한 것보다 좀 더 향상돼 있음을 설명한다.
8장에서는 Nothing 타입과 대수학 데이터 타입을 포함한 변경된 타입 시스템을 다룬다.
9장, ‘데이터 클래스’에서는 불변성과 보일러플레이트하지 않은 도메인 클래스가 코드를 더욱 단단하게 해주고 동시성 프로그래밍을 단순화하는 방법이라는 점에서 최근 뜨거운 감자임을 보여준다. 코틀린은 이러한 영역에 초점을 둔 많은 기능을 갖고 있으며, 이를 데이터 클래스라 부른다.
10장, ‘컬렉션’에서는 컬렉션이 표준 라이브러리에서 가장 일반적으로 사용되는 측면 중 하나라는 점을 설명하면서, 자바 컬렉션과 다르지 않다는 점을 설명한다. 10장에서는 맵(map) 과 폴드(fold), 필터(filter) 같은 함수형 연산을 포함해 코틀린에서 JDK 컬렉션을 강화한 점을 설명한다.
11장, ‘코틀린과 테스트’에서는 새로운 언어로 들어가는 관문 중 하나가 테스트 코드를 작성하는 데 그 언어를 사용하는 것임을 설명한다. 11장에서는 흥미진진한 테스트 프레임워크인 KotlinTest를 사용해 표준 JUnit 테스트가 허용하는 것보다 훨씬 표현력이 풍부하고 사람이 읽을 수 있는 테스트를 작성하는 방법을 보여준다.
12장, ‘코틀린과 마이크로서비스’에서는 최근 몇 년간 마이크로서비스가 서버 측 아키텍처를 지배해왔으며 코틀린은 이러한 서비스를 구현하기 위한 훌륭한 선택이라는 점을 보여준다.
12장에서는 라곰(Lagom) 마이크로서비스 프레임워크를 소개하고, 코틀린과 함께 사용해 큰 효과를 발휘하기 위해 어떻게 사용하는지를 보여준다.
13장, ‘동시성’에서는 서버 측 플랫폼에서 멀티코어를 지원하는 프로그램이 점점 더 중요해지고 있음을 설명한다. 13장에서는 스레드와 동시성 프리미티브(concurrency primitives) 그리고 퓨처(future)를 비롯해 현대 개발에서 필수적인 동시성 프로그래밍 기술을 소개하는 데 중점을 둔다.