◈ 이 책에서 다루는 내용 ◈
◆ 코틀린 팀 멤버들의 가이드
◆ 도메인 특화 언어(DSL)
◆ 코틀린 코루틴과 플로우
◈ 이 책의 대상 독자 ◈
주로 어느 정도 자바 경험이 있는 개발자를 대상으로 한 책이다. 코틀린은 자바에 있는 여러 개념과 기법 위에 만들어졌고, 이 책은 독자가 코틀린을 빠르게 배울 수 있도록 독자들의 기존 지식을 활용한다.
C#이나 자바 스크립트 같은 다른 프로그래밍 언어에 대한 경험이 있는 독자라면 코틀린과 JVM의 상호작용의 복잡한 측면을 이해하기 위해 다른 자료가 필요하겠지만 여전히 이 책을 사용해 코틀린을 배울 수 있다. 이 책은 코틀린 언어 전체를 다루며, 특별히 구체적인 문제 영역에 초점을 맞추지는 않는다. 따라서 서버 개발자나 안드로이드 개발자나 JVM에서 실행될 프로젝트를 구축하는 모든 개발자에게 도움이 될 것이다.
◈ 옮긴이의 말 ◈
이 책의 1판을 번역한 2017년에는 코틀린이 안드로이드에 본격적으로 쓰이기 시작했고 스칼라, 하둡 등을 통해 함수형 프로그래밍 개념이 슬슬 메인스트림 프로그래밍 언어 세상에 들어오던 시기였다. 그래서 1판의 ‘옮긴이의 말’에서는 관련 내용을 길게 설명해야 했다. 하지만 시간이 지나면서 안드로이드 프로그래밍에서는 코틀린이 확고히 자리 잡았고, 서버 프로그래밍에서도 코틀린을 사용하는 개발자나 회사가 많이 늘어났으며, 함수형 프로그래밍 개념도 어느 정도 확고히 자리 잡았으니 이제는 코틀린 언어의 특징이나 장점, 함수형 프로그래밍의 특징이나 장점을 굳이 설명할 필요가 없어졌다고 생각한다. 이 책을 집어든 개발자라면 코틀린이라는 이름을 듣고 그 언어의 매력에 빠져들 준비가 돼 있을 것이다.
코틀린은 이제 JVM에서 자바를 대신하는 더 나은 자바의 위치를 벗어나 자신만의 동시성 프로그래밍 프레임워크와 다중 플랫폼 지원을 통해 독자적인 프로그래밍 언어로서의 위치를 잡아가고 있다. 이 책을 통해 코틀린 언어의 기본적인 철학과 문법, 함수형 프로그래밍의 기초적 기법을 활용한 컬렉션 처리, 코틀린 언어의 DSL 지원 기능을 통한 내부 DSL과 풍부한 API 개발 방법, 코틀린 코루틴과 플로우를 통한 동시/병렬 프로그래밍을 배울 수 있다. 또한 JVM상에서 자바와 코틀린을 어떻게 함께 프로젝트에 활용할 수 있는지도 배울 수 있다. 이 책을 통해 튼튼한 코틀린 기초를 갖춘 개발자라면 향후 컴포즈 다중 플랫폼(compose multiplatform)을 통한 다중 플랫폼 앱 개발이나 스프링 등 자바 라이브러리를 통합한 클린 아키텍처 서버 개발 등 다양한 분야에 코틀린을 활용할 수 있을 것이다. 예를 들어 역자가 일하고 있는 (주)모빌리티42에서는 자체 코틀린 다중 플랫폼 라이브러리를 개발해서 서버(스프링 기반의 자체 서버 라이브러리와 내부 DSL을 활용한 데이터베이스 모델링), 웹(자바스크립트 + 자체 개발 컴포넌트 라이브러리), 컴포즈 데스크톱 등의 다양한 애플리케이션을 개발해 사용하고 있다.
아무쪼록 이 책을 통해 코틀린이 여러분 손에 착 달라붙는 제대로 깎은 방망이처럼 작업할 때 편하게 사용할 수 있는 도구로 자리 잡길 바란다. 그리고 코틀린을 통해 늘어난 생산성만큼 독자 여러분이 좀 더 여유 있는 저녁이 있는 삶을 누릴 수 있게 되길 빈다.