장바구니 담기 close

장바구니에 상품을 담았습니다.

코틀린 쿡북

코틀린 쿡북

  • 켄코우젠
  • |
  • 책만
  • |
  • 2020-06-10 출간
  • |
  • 276페이지
  • |
  • 185 X 240 X 16 mm
  • |
  • ISBN 9791189909147
판매가

25,000원

즉시할인가

24,750

카드할인

0원(즉시할인 0%)

적립금

250원 적립(1%적립)

배송비

2,500원

(제주/도서산간 배송 추가비용:3,000원)

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
24,750

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




[이 책의 구성]
이 책은 많은 레시피로 구성되어 있고 각 레시피는 독립적이지만 대부분 다른 레시피와 연관되어 있다. 책을 읽는 순서는 독자가 선택해도 좋은데, 각 장에서 다루는 내용은 다음과 같다.
- 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 기반 언어에서 객체 지향 프로그래밍의 기초를 알고 있는 개발자에겐 더 도움이 된다.

[옮긴이의 글]
프로그래머라면 새로운 프로그래밍 언어에 대해 항상 관심이 있을 것입니다. 저 또한 새로운 프로그래밍 언어를 경험해보길 좋아해서 2013년 즈음 젯브레인스JetBrains 사가 프로덕션에 코틀린을 사용한다는 말을 듣고 코틀린을 처음 접해봤습니다. 당시 코틀린 공식 튜토리얼을 따라 해보았으나 그루비나 스칼라에 비해서도 아무런 특색이 없어 매우 실망하고 세일즈를 위한 언어라 치부하고 코틀린을 두 번 다시 쳐다도 보지 않았으며 그 후로 코틀린을 다시 보게 될 일은 없을 줄 알았습니다.
하지만, 2017년 구글 I/O에서 안드로이드 팀이 안드로이드 공식 개발 언어로 코틀린을 지정함으로써 코틀린에 대한 세간의 관심은 최고조에 이르렀습니다. 더불어, 평소 존경하는 에릭 마이어가 2017년 한 컨퍼런스에서 코틀린을 좋아한다고 남긴 말에도 단순히 립서비스로 생각하고 넘겼으나, 에릭 마이어는 이후에도 코틀린에 대해 꾸준한 애정을 보이며 코틀린 코드와 의견을 트위터에 올렸으며, 그렇게 저의 무관심은 조금씩 관심으로 바뀌어 갔습니다.
이후 2018년에 살펴본 코틀린 1.2는 정말 많은 발전이 있었으며 자바와의 호환성 역시 훌륭해서, 앞으로 JVM 기반으로 프로젝트를 한다면 이제 다신 자바를 선택하지는 않을 것이라는 생각이 들게 해줬습니다. 오늘날 코틀린은 모바일 개발에만 머무르지 않고 서버 사이드, 자바스크립트, 네이티브, 데이터 분석과 머신러닝 등을 아우르는 개발의 모든 분야에 진입하려고 노력 중이며 코틀린 공식 문서에서도 해당 분야에 대한 내용을 확인할 수 있습니다.
서버 사이드 코틀린을 좀 더 이야기해볼까요? 세상에서 가장 인기 있는 프레임워크인 스프링도 5.0부터 스프링 공식 지원 언어로 코틀린을 지정했으며 JVM에서 가장 인기 있는 빌드 자동화 도구인 그레이들Gradle도 5.0부터 코틀린 DSL을 지원하기 시작했습니다. 이처럼 코틀린은 꾸준히 자신의 영역을 넓혀가고 있으며 앞으로가 더욱 촉망되는 언어라고 생각합니다.
비록 이 책에서는 코틀린의 다양한 활용 분야 중 서버 사이드 코틀린을 집중해서 다루지만 해당 분야로 나아갈 수 있는 기초 지식을 익히기에 분명히 좋은 책입니다. 기존 자바 개발자에게는 꽤 많이 출간된 여러 레퍼런스 서적에 비해 각자가 필요한 부분을 찾아 빠르게 학습할 수 있습니다. 또한, 코틀린 입문자도 책을 따라 하며 어렵지 않게 코틀린 컴파일러를 설치하고 한 단계씩 더 어려운 주제로 학습해 나아갈 수 있게 구성되어 있습니다.
저는 현재 근무 중인 회사에서 코틀린 스프링을 사용 중인데, 처음 프로젝트를 구성할 때 꽤 애를 먹었습니다. 이 책에는 ‘스프링 프로젝트를 코틀린으로 구성하는 방법’을 설명하는 레시피들도 담겨 있는데, 이 책 번역을 좀 더 빨리 했더라면 프로젝트를 구성하면서 겪은 고생을 피할 수 있었을 터라 매우 아쉬웠습니다.
나름대로 열심히 노력했지만 부족한 부분이 있을 것입니다. 그럼에도 독자분들이 번역 때문에 고심하지 않고 편하게 읽으면서 코틀린을 익히실 수 있기를 바라봅니다.


목차


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 코루틴 디버깅

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.