[도서 소개]
코틀린 현업 개발자인 저자와 역자의 노하우가 듬뿍 들어간, 최신 코틀린 종합 가이드!
코틀린의 기초, 심화, 활용을 한 권에 담았다. 코틀린 언어의 기초 개념과 핵심 문법, 기능을 소개하고(기초), 더 나아가 객체지향, 함수형, 코루틴, 리플렉션, 도메인 특화 언어 형태와 관련된 고급 기능까지 설명한다(심화). 마지막으로 테스트, 안드로이드, 웹 등에서 코틀린을 사용하는 방법을 알려준다(활용). 코틀린으로 프로그래밍하려면 꼭 필요한 지식 & 사용하는 방법 & 사용함으로써 얻을 수 있는 이점을 모두 알 수 있다.
코틀린을 종합적으로 소개한다는 장점과 함께 코틀린이라는 언어의 특징, 핵심 문법, 동작 원리를 전달하고자 했다는 점, 자바와 비교해 설명하면서 이해를 높이고 원리를 쉽게 설명하려 노력한 점도 주목할 만하다. 또한, 번역하면서 코틀린의 최신 내용을 반영하고, 소스 코드와 예제를 모두 검증했다.
[대상 독자]
- 안드로이드 개발자
- 자바의 대체 언어를 찾고 있는 개발자
[주요 내용]
- 코틀린 언어의 특징과 동작 원리를 이해하면서 핵심 문법을 배운다.
- 객체지향, 함수형, 코루틴, 리플렉션, 도메인 특화 언어 형태와 관련된 고급 기능
- 테스트, 안드로이드, 웹 어플리케이션에서 코틀린 사용법을 배운다.
[이 책의 특징]
- 입문부터 활용까지 필요한 지식 총망라
- 강력하고 실용적인 코틀린으로 기초, 심화, 활용을 한권으로 담았다.
- 코틀린을 사용함으로써 얻는 이점과 코틀린으로 코딩하기 위해 필요한 모든 지식을 배울수 있다.
[서평]
2016년 젯브레인에서 코틀린 1.0이 정식 발표를 시작으로 현재 모바일, 데스크톱, 서버 애플리케이션의 다양한 개발작업을 잘 다룰 수 있다록 갖춰진 강력하고 유연한 도구로 핫이슈로 떠오르고 있다. 코틀린이 알려지기 시작한 것은 바로 2017년 구글 I/O행사에서 공식적으로 코틀린을 지원하기 시작으로 2018년에는 안드로이드 개발의 주언어가 자바에서 코틀린으로 바뀌게 된다. 그리고 안드로이드에서는 이제 자바보다 코틀린이 개발자들이 차츰 더 늘어나고 있고, 웹 애플리 케이션 영역에서도 자바-스프링 체제에서 이제는 코틀린- 스프링 즉 코프링으로 바뀌고 있는 추세이다. 자바 웹 애플리케이션 개발자도 이제 코틀린을 배우지 않으면 안되는 세상이 되었다.
이책의 구성은 1장에서 9장까지는 코틀린의 기초를 배운다. 기본 문법과 순차적, 객체지향 함수형 프로그래밍 측면을 다루며, 코틀린 표준 라이브러리도 설명한다.
첫 장이 시작되면 어떤 내용을 배우는지와 이번 장에서 배울 학습 목표를 한눈에 알수 있다.
이책의 가장 큰 장점은 바로 자바와 코틀린 두가지 문법을 비교해서 배울수 있다. 그래서 자바 개발자에서 코틀린을 배울때 좀더 접근하기가 쉽다 반대로 코틀린 개발자 또한 자바 문법으로 코틀린과 유사한 부분이 많아 자바 문법을 좀더 친숙하게 여겨서 자바 언어를 배울때 도움이 되지 않을까 생각한다.
각 장의 마지막에는 결론으로 내용을 요약하고 그리고 정리 문제로 배운 내용에 대해서 다시 한번 생각해 볼수 있다.
1장 코틀린 언어 설계에 감춰진 핵심 아이디어를 설명하고 코틀린 에코시스템과 도구를 전반적으로 살펴보며, 여러 환경에서 코틀린 프로젝트를 설정하는 방법을 안내한다.
2장 변수 사용법을 설명하고, 정수, 불 등 간단한 데이터 타입과 이런 타입에 대해 언어가 제공하는 연산을 살펴본다. 이를 바탕으로 문자열이나 배열 같은 복잡한 데이터 구조도 설명한다.
3장 코틀린 함수 문법을 설명하고 이항/다중 선택, 이터레이션, 오류 처리 같은 코틀린이 지원하는 여러가지 제어 구조를 설명한다. 그리고 코드를 구조화하는 패키지 사용법도 다룬다.
4장 코틀린 객체지향 프로그래밍의 기본적인 측면을 소개한다. 클래스 인스턴스를 생성하고 초기화하는 방법과 클래스 멤버에 대한 접근을 어떻게 제어하는지 설명한다. 객체 선언과 단순한 필드가 아닌 프로퍼티도 설명한다. 그리고 타입 널 가능성에 대해 이야기한다.
5장 코틀린의 함수형 언어적 측면을 설명하면서 고차 함수와 익명 함수를 소개하고, 인라인 함수 사용법을 언급한다. 그리고 확장 함수와 프로퍼티를 활용해 기존 타입에 새로운 기능을 추가하는 방법을 설명한다.
6장 구체적인 프로그래밍 과업에 사용할 수 있는 특별한 유형의 클래스를 소개한다. 데이터 클래스는 간단한 데이터 저장에 쓰이며, 이넘은 미리 정해진 인스턴스들로 이뤄진 클래스를 표현하고, 인라인 클래스 원시 타입을 둘러싸는 비용이 거의 들지 않는 경량래퍼 타입을 저으이할 수 있게 해준다.
7장 4장과 6장에서 소개한 객체지향 기능을 이어서 다루되, 특히 클래스 계층 구조에 초점을 맞춘다. 하위 클래스를 정의 하는 방법, 추상 클래스와 인터페이스를 사용하는 방법 봉인된 클래스를 통해 클래스 계층 구조를 제한하는 방법을 다룬다.
8장 코틀린 표준 라이브러리의 주요 내용을 설명한다. 그중에서도 특히 여러 가지 컬렉션 타입과 컬렉션 연산을 설명하며 파일 접근이나 스트림 기반 I/O를 쉽게 할 수 있도록 돕는 유틸리티 라이브러리도 설명한다.
9장 제네릭 선언의 개념을 소개하고, 코틀린에서 제네릭 클래스, 제네릭 함수, 제네릭 프로퍼티를 정의하고 사용하는 방법을 설명한다. 또한, 변성이라는 개념을 소개하고 여러분이 정의한 제네릭 코드의 유연성을 높이기 위해 변성을 어떻게 활용하는지 설명한다.
10장에서 17장은 리플렉션, 도메인 특화 언어, 코루틴 등과 같은 더 어려운 주제를 다룬다. 자바와 코틀린의 상호 운용성 문제를 설명하고, 코틀린을 테스트, 안드로이드 애플리케이션, 웹 등의 여러 개발 영역에서 사용하는 방법을 소개한다. 각 장의 내용은 다음과 같다.
10장 코틀린 코드에 여러 메타데이터를 추가할 수 있는 애너테이션을 설명하고, 실행 시점에 코틀린 선언에 접근할 수 있는 리플렉션 API의 기본적인 내용을 설명한다.
11장 개발자가 도메인 특화 언어 형태로 유연한 API를 제공하려고 할때 도움이 되는 연산자 오버로딩, 위임 프로퍼티, 고차 함수 기반의 발더 스타일 DSL 등과 같은 몇 가지 고급 코틀린 기능을 설명한다.
12장 자바와 코틀린 코드를 같은 코드 기반에서 사용할 때 흔히 발생하는 문제를 논의하고, 자바선언을 코틀린 코드에서 사용할 때 발생하는 문제나 이와 반대로 코틀린 선언을 자바 코드에서 사용할 때 발생하는 문제를 구체적으로 다룬다.
13장 코틀린 코루틴 라이브러리를 소개한다. 코루틴 라이브러리는 비동기 계산 프로그래밍에 사용할 수 있는 몇 가지 빌딩 블록을 제공한다. 추가로 코틀린 코드에서 자바 동시성 API를 더 쉽게 사용할 수 있도록 해주는 몇 가지 유틸리티를 설명한다.
14장 코틀린 개발자를 위한 코틀린 테스트 프레임워크인 코테스트를 다룬다. 여러 가지 테스트 명세 스타일을 설명하고, 단어문 API를 사용하는 방법과 픽스처나 테스트 설정 등의 몇 가지 고급 주제를 다룬다.
15장 코틀린을 사용한 안드로이드 플랫폼 개발 방법을 다룬다. 간단한 계산기 애플리케이션을 통해 안드로이드 스튜디오 프로젝트 설정 방법을 알려주고 안드로이드 개발의 기본적인 내용을 설명한다.
16장 코틀린의 기능과 비동기 계산을 아주 잘 활용하는 네트워크 연결 애플리케이션 개발 프레임워크인 Ktor 프레임워크를 사용해 마이크로서비스를 구축하는 방법을 설명한다.
17장 스프링 부트와 Ktor 프레임워크를 사용해 마이크로서비스를 구축하는 방법을 설명한다.
이 책은 코틀린 언어의 기초부터 심화 내용까지 탄탄히 배우고 모바일, 웹, 데스크톱에서 다양한 애플리케이션을 개발하는 데 코틀린을 사용해 보는 것을 목표로 한다.
이 책을 통해 코틀린의 기본 문법을 시작으로 동작 원리와 그 이면의 핵심 아이디어를 이해할 수 있다. 더 나아가 객체지향 및 코틀린 기능을 활용하여 유연하고 재사용 가능한 코드를 만들고, 코틀린 표준 라이브러리를 사용해 보고, 고유한 도메인별 언어를 작성하고, 코루틴 라이브러리를 사용하여 비동기 코드를 작성해 본다.
마지막으로 코테스트 및 안드로이드, 웹 애플리케이션 개발에 코틀린을 사용해 볼 것이다. 자바 및 JVM에 익숙하다면 이 책을 좀 더 수월하게 볼 수 있을 것이다. 자바와 코틀린을 비교하면서 코틀린을 더 쉽고 깊게 이해하고, 자바에서 코틀린으로 전환하는 법도 배울 수 있다.
코틀린 저서 중에서 너무 이론에 치우치지 않고 코틀린 언어를 설명하고 코틀린 문법 뿐만 아니라 Ktor, 코테스트, 스프링, 안드로이드 개발 등 다양한 코틀린 프레임워크를 소개하고 있다는 점이 좋았다. 지금까지 JVM은 자바의 시대였다면 앞으로의 코틀린의 시대로 바뀌지 않을까 생각한다. 자바에서 경험 하지 못한 모던한 문법을 코틀린에서 찾아보는걸 적극 추천한다.
"길벗 <개발자 리뷰어> 활동을 위해서 책을 제공받아 작성된 서평입니다."
'책이야기' 카테고리의 다른 글
[리뷰]쉽고 빠른 플러터 앱 개발 (0) | 2022.05.22 |
---|---|
[리뷰]도메인 주도 개발 시작하기: DDD 핵심 개념 정리부터 구현까지 (0) | 2022.04.24 |
[리뷰]러닝 Go(Go 개발자처럼 생각하는 방법) (0) | 2022.03.26 |
[리뷰]당당한 디자인 결정을 위한 9가지 방법 (0) | 2022.02.21 |
[리뷰]파이썬으로 익히는 말랑말랑 알고리즘 (0) | 2022.02.21 |