◈ 이 책의 구성 ◈
1장, ‘코틀린 시작하기’에서는 코틀린 프로그래밍 언어의 간략한 개요를 제공한다. 또한 데이터 유형과 null 안전 및 형 변환의 작동 방식을 알아본다. 연산자(operator) 및 흐름 제어도 소개한다. 반복문과 함수도 살펴본다.
2장, ‘객체지향 프로그래밍 소개’에서는 객체지향 프로그래밍이 무엇인지, 왜 절차적 프로그래밍과 다르고 더 나은지 살펴본다. 코틀린의 클래스와 데이터 클래스를 설명하고 코틀린이 어떻게 그것들을 독특하게 만드는지 알아본다. 또한 생성자, 생성자의 유형 및 속성 그리고 제일 중요한 속성이 무엇을 의미하는지 자세히 알아본다.
3장, ‘객체지향 프로그래밍의 4가지 요소’에서는 객체지향 프로그래밍의 4가지 요소를 자세히 알아본다. 또한 캡슐화가 무엇인지, 상속이 어떻게 작동하는지 알아본다. 다형성을 선택하는 이유와 추상화의 장점도 알아본다. 마지막으로 부모 클래스를 선언하는 방법과 자식 클래스에서 자원을 활용하는 방법을 살펴본다.
4장, ‘클래스: 고급 개념’에서는 코틀린이 독점적으로 제공하는 프로그래밍의 핵심 개념을 알아본다. 봉인된 클래스, 객체, 컴패니언 객체의 개념과 기존 클래스와 다른 이유를 알아본다. 또한 클래스의 속성과 위임을 알아본다.
5장, ‘데이터 컬렉션, 반복자, 필터’에서는 코틀린에서 제공하는 다양한 데이터 구조를 사용해 데이터 컬렉션을 처리하는 방법을 살펴본다. 또한 배열을 정의하고 사용하는 방법과 목록, 세트, 컬렉션, 맵과 같은 객체 컬렉션을 효율적으로 관리하고자 다양한 템플릿을 활용하는 방법을 알아본다.
6장, 코틀린을 사용한 객체지향 패턴은 설계 패턴이라고 하는 객체지향 프로그래밍의 고급 개념을 다룬다. 설계 패턴은 소프트웨어 설계에서 알려진 문제에 대한 일반적인 해결책이다. 설계 패턴은 개발 프로세스를 가속화하고 이후 단계에서 발생할 수 있는 설계 에러의 위험을 줄일 수 있다. 다른 문제에는 다른 설계 패턴이 사용된다. 소프트웨어 설계 과제와 설계 패턴을 살펴본다.
7장, ‘코루틴: 경량 스레드?’에서는 코틀린이 코루틴이라는 새로운 라이브러리를 어떻게 도입했는지 알아본다. 코루틴은 수천 개의 요청이 진행 중이더라도 CPU를 한계까지 밀어내지 않는 경량 스레드로 간주할 수 있다. 코루틴이 무엇인지 설명하고 자바에서 기존 스레드보다 우수한 이유를 알아본다.
8장, ‘상호운용성’에서는 코틀린이 자바 상호운용성을 염두에 두고 설계된 자바의 슈퍼세트라는 사실을 살펴본다. 상호운용성은 코틀린에서 자바 함수를 호출할 수 있고 그 반대의 경우도 가능하며 자바 및 코틀린 파일을 동일한 애플리케이션에서 사용할 수 있음을 의미한다. 상호운용성에 대한 기술과 플랫폼 간 코드 작성 방법을 자세히 알아본다. 가장 중요한 것은 자바에서 나타날 수 있는 널(null) 입력 가능 호출을 처리하는 방법을 알아본다.
9장, ‘코틀린의 정규식’과 직렬화에서는 regex라고도 알려진 정규식이 많은 양의 텍스트에서 필요한 정보를 찾는 데 도움을 주는 다른 문자의 조합을 살펴본다. 이 기술은 사용자가 문자열(패턴)을 제공하고 정확하게 일치하거나 유사한 목록을 얻는다. 모든 고급 텍스트 편집기는 정규식을 사용해 코드에서 변수를 찾는다. 그리고 코틀린이 정규식에 대한 완벽한 지원과 버그 없는 패턴 작성을 지원하는 방법을 알아보고, 직렬화와 JSON 같은 텍스트 형식을 코틀린에서 어떻게 동작하는지도 알아본다.
10장, ‘예외 처리’에서는 예외 및 예외 처리를 자세히 알아본다. 또한 다양한 키워드가 시도하고 캐치(catch)하고 던지고(throw) 마침내 던지는 등 다양한 예외 유형과 사용자가 사용자 정의 예외를 작성하고 처리하는 방법을 알아본다. 또한 테스트 환경을 준비해 몇 가지 테스트를 작성할 수 있는 방법을 살펴본다.
11장, ‘코틀린을 사용한 객체지향 프로그래밍 테스트’에서는 테스트의 중요성, 테스트가 필요한 이유 및 코드를 테스트하지 않고 공개했을 때의 영향에 대한 통찰력을 제공한다. 또한 테스트 기술, 테스트용 전용 코틀린 라이브러리 및 코틀린이 깨끗하고 읽기 쉬운 테스트 사례를 작성하는 방법을 알아본다.
◈ 옮긴이의 말 ◈
많은 기업과 개발자가 엔터프라이즈 애플리케이션을 만들 때 필수적으로 사용해오던 자바에서 부족했던 언어적인 한계를 해결하고자 코틀린을 적용해 더 손쉽게 엔터프라이즈 애플리케이션 프로젝트를 수행하는 경우가 많아지고 있다. 코틀린은 구글에 의해 안드로이드 앱을 만들기 위한 개발 언어로 공식 지정된 이후 모바일 앱뿐만 아니라 서버 사이드에서도 적용하는 사례가 점차 증가하고 있다. 이 책에서는 개발 언어로서 제공하는 코틀린의 기본 기능뿐만 아니라 다양한 부가 기능을 소개해 처음 접하는 사람뿐만 아니라 이미 알고 있는 개발자라 하더라도 코틀린을 이용해서 객체지향 프로그래밍을 하기 위한 다양한 패턴과 주의할 것들을 소개한다. 처음 이 책을 번역하고 상당히 오랜 기간이 지난 시점에서 책으로 출판이 돼 코틀린 자체에도 많은 변화가 있었으나 코틀린의 기본 개념의 변화는 없었기 때문에 객체지향에 관심이 있는 개발자는 한번 보는 것이 좋겠다.