본문 바로가기

리디북스 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디북스 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기


코틀린 쿡북 상세페이지

컴퓨터/IT 개발/프로그래밍

코틀린 쿡북

85가지 문제 중심 레시피로 완성하는 코틀린 프로그래밍

구매종이책 정가25,000
전자책 정가20,000(20%)
판매가20,000
코틀린 쿡북

책 소개

<코틀린 쿡북>

자바에 익숙한 개발자가 코틀린을 가장 빠르게 배울 수 있는 방법, 이 책의 85가지 실전 레시피 예제에 모두 담겼다!
개발 실무 중에 마주치는 여러 상황에서, 간결하고 안전하며 좀 더 코틀린스럽게 코드를 짜는 방법을 제시해준다.

코틀린 객체 지향 프로그래밍, 함수형 프로그래밍, 컬렉션, 시퀀스, 영역 함수, 코틀린 대리자(delegate), 테스트, 스프링 부트를 코틀린으로 설정하는 방법, 코루틴과 구조적 동시성 등
자바 기반 언어인 코틀린을 자신의 프로젝트에 적용하는 방법을 손쉽게 익힐 수 있다. 이 책의 실용 레시피는 경험이 풍부한 개발자는 물론, 코틀린을 새롭게 시작하는 초보 개발자 모두에게 매우 유익하다.

▶ 안드로이드와 스프링 등 특정 프레임워크를 위한 실용적인 조언
▶ 람다, 시퀀스, 동시성 등 함수형 프로그래밍 개념 적용
▶ 대리자, 지연 초기화, 영역 함수 사용 방법
▶ 자바 호환성,코틀린을 사용한 자바 라이브러리 접근 방법
▶ 사용자 정의 확장 함수 추가
▶ JUnit 5 같은 유용한 라이브러리 사용법


출판사 서평

이 책의 구성
이 책은 많은 레시피로 구성되어 있고 각 레시피는 독립적이지만 대부분 다른 레시피와 연관되어 있다. 책을 읽는 순서는 독자가 선택해도 좋은데, 각 장에서 다루는 내용은 다음과 같다.

- 1장 ‘코틀린 설치와 실행’에서는 REPL 사용 방법, 메이븐(Maven)과 그레이들(Gradle) 같은 빌드 도구를 사용하는 방법, 그랄(Graal)에 포함된 네이티브 이미지 생성기 사용법을 비롯해 코틀린을 설치하고 실행하는 기본 과정을 다룬다.

- 2장 ‘코틀린 기초’에서는 비트 단위 시프트 연산자 또는 Pair 클래스의 to 확장 함수 사용법을 비롯한 난해한 문제들을 다루기에 앞서, 널 허용(nullable) 타입, 연산자 중복, 그리고 타입 간 변환 같은 코틀린의 기본 기능 일부를 다룬다.

- 3장 ‘코틀린 객체 지향 프로그래밍’에서는 다른 언어를 사용하는 개발자가 코틀린을 접하면 아마 놀라거나 색다르다고 생각할 수 있는 코틀린의 객체 지향 기능에 집중한다. 이 장에서는 const 키워드 사용 방법과 지원 속성(Backing Property), 지연 초기화(Lazy initialization), 그리고 기존 자바 개발자라면 혼동스러워 할 것이 분명한 무시무시한 Nothing 클래스를 코틀린이 어떻게 다루는지 설명한다.

- 4장 ‘함수형 프로그래밍’에는 해당 기능에 대한 설명이 필요한 함수형 기능을 사용하는 몇 가지 레시피만 들어 있다. 함수형 프로그래밍 개념은 특히 컬렉션, 시퀀스, 코루틴(coroutine)을 설명할 때를 비롯해 이 책 곳곳에서 다루지만, 특이하거나 특별히 흥미롭다고 여겨질 만한 몇 가지 함수형 기법을 이 장에서 설명한다.

- 5장 ‘컬렉션’에서는 배열과 컬렉션, 컬렉션 분해, 여러 속성을 사용한 정렬, 컬렉션에서 윈도우 사용, 수열 생성과 같이 사용법이 직관적이지 않은 메소드를 주로 다룬다.

- 6장 ‘시퀀스’에서는 자바의 스트림(stream) 사용 방식과 비슷한 코틀린이 지연 계산법으로 시퀀스 항목을 다루는 방법을 보여준다. 이 장의 레시피에서는 시퀀스 생성, 시퀀스에서 yield하는 방법, 무한한 시퀀스 사용법을 다룬다.

- 7장 ‘영역 함수’에서는 코틀린의 또 하나의 고유한 주제인 객체 컨텍스트 안에서 코드 블록을 실행하는 함수를 다룬다. 코틀린의 let, apply, also 같은 함수들은 매우 유용하다. 이 장에서는 이러한 함수의 사용 방법과 이유를 자세하게 설명한다.

- 8장 ‘코틀린 대리자’에서는 대리자(delegate) 구현 방법 같은 코틀린의 편리한 기능에 대해 설명한다. 대리자는 상속보다는 합성을 사용하며 lazy, observable, vetoable 같은 몇몇의 대리자가 코틀린 기본 라이브러리에 포함되어 있다.

- 9장 ‘테스트’에서는 특히 Junit 5에 초점을 둔 테스트라는 중요한 주제를 다룬다. 현재 버전의 Junit은 코틀린 일반 애플리케이션과 코틀린 스프링 프레임워크 애플리케이션에서 모두 잘 동작하도록 디자인되어 있다. 이 장에서는 테스트 작성과 실행을 손쉽게 만들어주는 몇 가지 접근 방식에 대해 다룬다.

- 10장 ‘입력/출력’에서는 자원 관리와 관련된 구체적인 2가지 레시피를 다룬다. 이 장에서는 여러 컨텍스트에서 광범위하게 응용할 수 있는 use 함수로 파일 입출력을 처리한다.

- 11장 ‘그 밖의 코틀린 기능’에서는 어느 다른 범주에도 쉽게 포함할 수 없는 주제를 다룬다. 현재 코틀린 버전을 얻는 방법, when 문이 값을 리턴하지 않는 경우에도 when 문을 강제하는 방법, 정규표현식과 함께 replace 함수를 사용하는 방법과 같은 주제를 다룬다. 더불어 TODO 함수와 Random 클래스도 설명한다. 또한 코틀린 함수를 자바 예외 처리와 통합하는 방법도 배운다.

- 12장 ‘스프링 프레임워크’에서는 코틀린에 매우 우호적인 스프링 부트와 함께 스프링 프레임워크를 다룬다. 스프링이 관리하는 빈(bean)으로 코틀린 클래스를 사용하는 방법, JPA 퍼시스턴스를 구현하는 방법, 필요시 의존성을 주입하는 방법을 보여주는 몇 가지 레시피가 이 장에 포함되어 있다.

- 13장 ‘코루틴과 구조적 동시성’에서는 코틀린의 가장 인기 있는 기능 중 하나이자, 코틀린 언어에서 동시 프로그래밍과 병렬 프로그래밍의 기초인 코루틴에 대한 주제를 다룬다. 이 장의 레시피에서는 빌더(builder)와 디스패처(dispatcher) 같은 기초 지식, 코루틴을 취소하고 디버깅하는 방법, 그리고 코루틴을 사용자 정의 자바 스레드 풀에서 실행하는 방법을 다룬다.

이 책의 독자 대상
코틀린을 처음 배우려는데 이왕이면 좀 더 실무적으로 익히고 싶은 입문자와, 입문은 했으나 숙련된 고급 기법을 알고 싶은 코틀린 사용자. 특히 자바나 기타 JVM 기반 언어에서 객체 지향 프로그래밍의 기초를 알고 있는 개발자에겐 더 도움이 된다.

추천의 글
코틀린은 안드로이드와 스프링이 공식적으로 선택하고 권장하는 프로그래밍 언어입니다. 더 무슨 설명이 필요할까요. JVM 플랫폼의 안정성과 스프링이라는 뛰어난 애플리케이션 프레임워크가 제공하는 멋진 기능에 만족했지만 발전이 더딘 자바 언어 때문에 답답했던 서버 개발자들이라면 스프링 개발팀이 적극 지원하는 코틀린으로 개발해보기를 적극 추천합니다. 그런데 코틀린 문법을 익히고 나서 실전에 들어가면 여러 가지 문제를 만나게 될 겁니다. 아직은 새로운 언어와 기술의 조합이라 그런 문제의 해결 방법을 제시하고 그 이유를 자세히 설명해줄 동료를 주변에서 찾기는 어렵겠지요.
이번에 출간되는 『코틀린 쿡북』은 바로 그런 분들에게 필요한 책입니다. 개발 중 자주 만나는 문제를 풀기 위해서 코틀린의 어떤 방법을 사용해야 하는지부터, 스프링과 기존 자바 기술을 코틀린에서 사용할 때 빌드 스크립트에 어떤 플러그인을 넣어야 도움이 되는지까지 콕 집어 설명해주는 멋진 길잡이가 되어줄 것입니다.
이 책과 함께 코틀린의 매력에 미처 빠지기도 전에 몇 가지 걸림돌로 인해 다시 익숙할 뿐인 자바로 돌아가 버리는 안타까운 일이 없기를 바랍니다.
- 이일민 / EPRIL 대표, 『토비의 스프링 3.1』 저자

코틀린을 구글이 밀어주기 시작한 2017년 이래 안드로이드와 자바 서버 개발자를 중심으로 하는 개발자 커뮤니티에서는 코틀린에 대한 관심이 많이 늘었고, 그에 따라 졸역 『Kotlin in Action』을 비롯해 수많은 코틀린 관련 서적이 출간됐다. 하지만 3년이 지난 현재까지도 대부분의 서적이 실무나 좀 더 고급 코틀린 기법을 다루기보다는 기초적인 코틀린 개발을 다루고 있어서 내심 아쉬움이 컸다.
그러던 차에 후배 개발자지만 평소 내가 존경해 마지않는 김도남 님이 코틀린 책을 번역하신다는 이야기를 전해 듣고, 책 제목을 알아내서 원서를 살짝 살펴봤다.
이 책에는 그동안 실무에서 코틀린을 사용하면서 일일이 웹을 뒤져서 배울 수 있었던 여러 가지 기법이 잘 설명되어 있을 뿐만 아니라, 꼭 필요한 내용도 간결하게 잘 정리되어 있었다. 그간 내가 느껴온 아쉬움을 덜어줄 수 있는 책이며, 항상 배움의 끈을 늦추지 않고 이런저런 책을 많이 읽는 도남 님다운 혜안이 담긴 도서 선정이다. 마지막 번역 결과물을 보니, 겨우 두 번째(실제 출간되는 것으로는 첫 번째) 번역서이지만 상당히 부드럽게 번역이 잘 되어 있음을 느낄 수 있었다. 믿고 읽을 만한 역자가 한 분 더 등장하는구나 하는 생각에 마음이 기쁘다. 자신의 분야에 대한 깊은 이해와 통찰, 어학 능력, 책 한 권을 처음부터 끝까지 비슷한 호흡과 언어로 번역해 나가는 꾸준함 등이 좋은 역자가 되기 위해 필요한 덕목일 것이다. 감히 내가 누구를 평가할 수준은 아니지만, 도남 님은 이런 덕목을 갖춘 분이라고 생각한다.
마지막으로 이렇게 좋은 역자와 좋은 원서가 만나 탄생한 이 책을 통해, 독자들이 실무에서 코틀린을 더 잘 사용할 수 있게 되기를 바라고, 많은 개발자들이 더 고급 코틀린 주제를 공부하기 시작하는 출발점으로 이 책이 사용될 수 있기를 빈다. 이 책을 읽는 독자들의 건승을 기원한다.
- 오현석 / 코틀린/자바 백엔드 개발자, 『Kotlin in Action』, 『코틀린을 다루는 기술』 등 번역

구글 I/O를 통해 코틀린을 안드로이드용 공식 언어로 발표한 지도 벌써 몇 년이 지났습니다. 이제 안드로이드 개발을 할 때 코틀린은 아주 당연한 선택이 되었습니다. 저도 코틀린을 몇 년째 주력 언어로 사용 중인데, 10년 넘게 다뤄왔던 자바 문법이 이젠 가물가물할 정도로 코틀린의 매력에 푹 빠져 있습니다.
막상 코틀린을 처음 접하게 되면, 코틀린의 다양한 문법뿐 아니라 표준 라이브러리가 제공하는 방대한 함수들에 압도당하게 됩니다. 공식 문서나 시중에 출간된 여러 코틀린 기본 서적들은 코틀린의 문법을 잘 설명해 주지만, 문법을 익힌 뒤에도 과연 이런 경우엔 어떻게 짜야 더 코틀린스러울까? 좀 더 간결하고 읽기 좋게 짤 방법은 없을까? 라는 물음이 계속 따라다닙니다. 얄궂게도 인텔리제이(IntelliJ)의 자동완성이 제안하는 코드가 여러분이 고심해서 짠 코드보다 더 아름다울 때도 많습니다.
그런 면에서 이 책은 우리가 개발하면서 흔히 마주치는 여러 상황에서 간결하고, 안전하고, 좀 더 코틀린스럽게 코드를 짜는 방법을 제시합니다. 갓 문법을 떼고 방황하는 코틀린 초심자나, 좀 더 좋은 코드를 짜고 싶은 코틀린 숙련자 모두에게 좋은 가이드를 제공하는 책이라고 생각합니다.
- 안세원 / 카카오모빌리티 안드로이드 애플리케이션 개발자

IT 분야에서는 몇 년에 한 번씩 개발자가 소프트웨어를 작성하는 방법을 바꾸도록 위협하는 혁명적인 새로운 언어가 등장하지만 대부분은 좀처럼 기대에 부응하지 못한다. 그러나 코틀린은 달랐다. 코틀린이 선보인 2011년 이후, 코틀린은 천천히, 거의 알아차릴 수 없게, 살금살금 전세계의 코드 베이스로 잠입해 들어갔다. 오랫동안 자바를 사용해오면서도 뭔가 자바에 아쉬움을 느꼈던 개발자들은 여기저기서 조금씩 코틀린으로 슬금슬금 옮겨갔다. 그렇게 해서 개발자들은 코드 사이즈를 줄이고 자신들의 코드 능력도 향상시켰다.
코틀린은 안드로이드 개발에서 가장 선호하는 언어로 명성을 얻고 있으며 이제 이런 책이 절실히 필요한, 충분히 성숙한 단계에 이르렀다. 우선 이 책은 도움이 되는 풍부한 정보로 시작한다. 저자 켄은 여러분의 프로젝트를 위해 코틀린 설치와 설정 방법을 보여준다. 그리고 자바 환경이나 브라우저 또는 독립 환경에서 코틀린 프로젝트를 실행하는 방법을 설명한다. 이 책은 곧이어 개발자가 겪는 일상의 프로그램과 전반적인 구조에 대한 문제를 푸는 것으로 빠르게 넘어간다.
코틀린 테스트에 대한 내용도 있지만, 이 책은 그 자체로 테스트 주도적(test-driven)이라는 사실을 발견할 수 있을 것이다. 이 책은 코틀린을 사용하는 방법에 대한 실용적인 예제로 테스트를 활용한다. 여기서 다루는 테스트들은 이 책에서 소개한 레시피들을 여러분의 필요에 따라 더 정확히 맞게 적용할 수 있게 도와준다.
이 책은 여러분이 코틀린 여행으로 나아가는 데 손쉽고 실용적인 도움을 줄 것이다. 필수적인 코틀린 입문 안내서인 이 책은 모든 개발자가 자신의 업무를 위해 (실제 또는 가상의) 책상에 한 권씩 소장해야 할 것이다.
- 돈 & 데이비드 그리피스 / 『헤드 퍼스트 코틀린(Head First Kotlin)』의 저자


저자 소개

지은이 켄 코우젠(Ken Kousen)

자바 챔피언, 오라클 그라운드브레이커 앰버서더, 그레일즈(Grails) 록스타이며, 『모던 자바 레시피(Modern Java Recipes)』(오라일리), 『안드로이드를 위한 그레이들 레시피(Gradle Recipes for Android)』(오라일리), 『자바 그루비 만들기(Making Java Groovy)』(매닝)를 집필했다. 오라일리의 안드로이드, 그루비, 그레이들, 고급 자바, 스프링 비디오 코스를 개발했다. 자신의 회사인 코우젠 IT 사에서 소프트웨어를 개발하고 소프트웨어 개발 트레이닝 코스를 가르친다. 젯브레인스(JetBrains) 인증 코틀린 트레이닝 파트너이기도 하다.

옮긴이 김도남

한국에서 프리랜서로 일하다가 2009년 호주에 정착해 엔터프라이즈 웹 개발, BI 관련 IT컨설턴트와 시니어 소프트웨어 엔지니어로 활동했다. 현재는 블록체인 엔지니어로 재직 중이며, 함수형 프로그래밍과 마이크로서비스에 관심이 많다.

목차

1장 코틀린 설치와 실행
레시피 1.1  로컬 컴파일러 없이 코틀린 실행하기
레시피 1.2  로컬 컴퓨터에 코틀린 설치하기
레시피 1.3  명령줄에서 코틀린 컴파일하고 실행하기
레시피 1.4  코틀린 REPL 사용하기
레시피 1.5  코틀린 스크립트 실행하기
레시피 1.6  GraalVM으로 독립형 애플리케이션 만들기
레시피 1.7  그레이들에 코틀린 플러그인 추가하기(그루비 문법)
레시피 1.8  그레이들에 코틀린 플러그인 추가하기(코틀린 문법)
레시피 1.9  그레이들을 이용해 코틀린 프로젝트 빌드하기
레시피 1.10  코틀린과 함께 메이븐 사용하기

2장 코틀린 기초
레시피 2.1  코틀린에서 널 허용 타입 사용하기
레시피 2.2  자바에 널 허용성 지시자 추가하기
레시피 2.3  자바를 위한 메소드 중복
레시피 2.4  명시적으로 타입 변환하기
레시피 2.5  다른 기수로 출력하기
레시피 2.6  숫자를 거듭제곱하기
레시피 2.7  비트 시프트 연산자 사용하기
레시피 2.8  비트 불리언 연산자 사용하기
레시피 2.9  to로 Pair 인스턴스 생성하기

3장 코틀린 객체 지향 프로그래밍
레시피 3.1  const와 val의 차이 이해하기
레시피 3.2  사용자 정의 획득자와 설정자 생성하기
레시피 3.3  데이터 클래스 정의하기
레시피 3.4  지원 속성 기법
레시피 3.5  연산자 중복
레시피 3.6  나중 초기화를 위해 lateinit 사용하기
레시피 3.7  equals 재정의를 위해 안전 타입 변환, 레퍼런스 동등, 엘비스 사용하기
레시피 3.8  싱글톤 생성하기
레시피 3.9  Nothing에 관한 야단법석

4장 함수형 프로그래밍
레시피 4.1  알고리즘에서 fold 사용하기
레시피 4.2  reduce 함수를 사용해 축약하기
레시피 4.3  꼬리 재귀 적용하기

5장 컬렉션
레시피 5.1  배열 다루기
레시피 5.2  컬렉션 생성하기
레시피 5.3  컬렉션에서 읽기 전용 뷰 생성하기
레시피 5.4  컬렉션에서 맵 만들기
레시피 5.5  컬렉션이 빈 경우 기본값 리턴하기
레시피 5.6  주어진 범위로 값 제한하기
레시피 5.7  컬렉션을 윈도우로 처리하기
레시피 5.8  리스트 구조 분해하기
레시피 5.9  다수의 속성으로 정렬하기
레시피 5.10  사용자 정의 이터레이터 정의하기
레시피 5.11  타입으로 컬렉션을 필터링하기
레시피 5.12  범위를 수열로 만들기

6장 시퀀스
레시피 6.1  지연 시퀀스 사용하기
레시피 6.2  시퀀스 생성하기
레시피 6.3  무한 시퀀스 다루기
레시피 6.4  시퀀스에서 yield하기

7장 영역 함수
레시피 7.1  apply로 객체 생성 후에 초기화하기
레시피 7.2  부수 효과를 위해 also 사용하기
레시피 7.3  let 함수와 엘비스 연산자 사용하기
레시피 7.4  임시 변수로 let 사용하기

8장 코틀린 대리자
레시피 8.1  대리자를 사용해서 합성 구현하기
레시피 8.2  lazy 대리자 사용하기
레시피 8.3  값이 널이 될 수 없게 만들기
레시피 8.4  observable과 vetoable 대리자 사용하기
레시피 8.5  대리자로서 Map 제공하기
레시피 8.6  사용자 정의 대리자 만들기

9장 테스트
레시피 9.1  테스트 클래스 수명주기 설정하기
레시피 9.2  테스트에 데이터 클래스 사용하기
레시피 9.3  기본 인자와 함께 도움 함수 사용하기
레시피 9.4  여러 데이터에 JUnit 5 테스트 반복하기
레시피 9.5  파라미터화된 테스트에 data 클래스 사용하기

10장 입력/출력
레시피 10.1  use로 리소스 관리하기
레시피 10.2  파일에 기록하기

11장 그 밖의 코틀린 기능
레시피 11.1  코틀린 버전 알아내기
레시피 11.2  반복적으로 람다 실행하기
레시피 11.3  완벽한 when 강제하기
레시피 11.4  정규표현식과 함께 replace 함수 사용하기
레시피 11.5  바이너리 문자열로 변환하고 되돌리기
레시피 11.6  실행 가능한 클래스 만들기
레시피 11.7  경과 시간 측정하기
레시피 11.8  스레드 시작하기
레시피 11.9  TODO로 완성 강제하기
레시피 11.10  Random의 무작위 동작 이해하기
레시피 11.11  함수 이름에 특수 문자 사용하기
레시피 11.12  자바에게 예외 알리기

12장 스프링 프레임워크
레시피 12.1  확장을 위해 스프링 관리 빈 클래스 오픈하기
레시피 12.2  코틀린 data 클래스로 퍼시스턴스 구현하기
레시피 12.3  의존성 주입하기

13장 코루틴과 구조적 동시성
레시피 13.1  코루틴 빌더 선택하기
레시피 13.2  async/await을 withContext로 변경하기
레시피 13.3  디스패처 사용하기
레시피 13.4  자바 스레드 풀에서 코루틴 실행하기
레시피 13.5  코루틴 취소하기
레시피 13.6  코루틴 디버깅


리뷰

구매자 별점

0.0

점수비율

  • 5
  • 4
  • 3
  • 2
  • 1

0명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디북스에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

이 책과 함께 구매한 책


이 책과 함께 둘러본 책



본문 끝 최상단으로 돌아가기

spinner
모바일 버전