코틀린 완벽 가이드
도서+교보Only(교보배송)을 함께 15,000원 이상 구매 시 무료배송
15,000원 미만 시 2,500원 배송비 부과
20,000원 미만 시 2,500원 배송비 부과
15,000원 미만 시 2,500원 배송비 부과
1Box 기준 : 도서 10권
알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.
해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.
패키지
북카드
키워드 Pick
키워드 Pick 안내
관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.
코틀린의 기초, 심화, 활용을 한 권에 담았다. 코틀린 언어의 기초 개념과 핵심 문법, 기능을 소개하고(기초), 더 나아가 객체지향, 함수형, 코루틴, 리플렉션, 도메인 특화 언어 형태와 관련된 고급 기능까지 설명한다(심화). 마지막으로 테스트, 안드로이드, 웹 등에서 코틀린을 사용하는 방법을 알려준다(활용). 코틀린으로 프로그래밍하려면 꼭 필요한 지식 & 사용하는 방법 & 사용함으로써 얻을 수 있는 이점을 모두 알 수 있다.
코틀린을 종합적으로 소개한다는 장점과 함께 코틀린이라는 언어의 특징, 핵심 문법, 동작 원리를 전달하고자 했다는 점, 자바와 비교해 설명하면서 이해를 높이고 원리를 쉽게 설명하려 노력한 점도 주목할 만하다. 또한, 번역하면서 코틀린의 최신 내용을 반영하고, 소스 코드와 예제를 모두 검증했다.
작가정보
알렉세이 세두노프는 2008년부터 자바 개발자로 일해 왔다. 2012년 젯브레인즈에 합류한 이후, 인텔리J 플랫폼에서 IDE 도구 개발이 쉽도록 코틀린 언어를 개발하는 일에 활발히 참여해 왔다. 현재는 젯브레인즈의 데이터베이스 IDE인 데이터그립(DataGrip) 팀에서 코틀린을 주 개발 도구로 사용하면서 일하고 있다.
비사이드소프트(BSIDESOFT) 이사로 일하면서 매일매일 고객의 요청에 따라 코드를 만들어내고 있는 현업 개발자다. 어릴 때 처음 컴퓨터를 접하고 매혹된 후 경기과학고, KAIST 전산학과(프로그래밍 언어 전공 석사)를 거치면서 계속 컴퓨터를 사용해 왔다. 직장에서는 주로 코틀린이나 자바를 사용한 서버 프로그래밍을 하고, 주말이나 빈 시간에는 번역을 하거나 공부를 하면서 즐거움을 찾는다. 시간이 아주 많이 남을 때는 시뮬레이션 게임을 하면서 머리를 식히고 놀고, 어떻게 하면 막내를 프로그래밍의 세계로 끌어들일 수 있을까 고민 중인 아빠이기도 하다. 『코어 파이썬 애플리케이션 프로그래밍 Core Python Applications Programming Third Edition』(에이콘출판, 2014)을 시작으로 『코틀린을 다루는 기술』(길벗, 2020), 『파이썬 코딩의 기술(개정 2판)』(길벗, 2020), 『한 권으로 읽는 컴퓨터 구조와 프로그래밍』(책만, 2021) 등 30여 권의 책을 번역했다.
목차
- 1장 강력하고 실용적인 코틀린
1.1 코틀린이란 무엇인가?
__1.1.1 안전성
__1.1.2 다중 패러다임
__1.1.3 간결성과 표현력
__1.1.4 상호 운용성
__1.1.5 다중 플랫폼
1.2 코틀린 생태계
__1.2.1 코루틴
__1.2.2 테스트
__1.2.3 안드로이드 개발
__1.2.4 웹 개발
__1.2.5 데스크톱 애플리케이션
1.3 코틀린 시작하기
__1.3.1 인텔리J 프로젝트 설정하기
__1.3.2 REPL 사용하기
__1.3.3 코틀린 놀이터
1.4 이클립스 프로젝트 설정하기
1.5 결론
2장 코틀린 언어 기초
2.1 기본 문법
__2.1.1 주석
__2.1.2 변수 정의하기
__2.1.3 식별자
__2.1.4 가변 변수
__2.1.5 식과 연산자
2.2 기본 타입
__2.2.1 정수 타입
__2.2.2 부동소수점 수
__2.2.3 산술 연산
__2.2.4 비트 연산
__2.2.5 문자 타입 Char
__2.2.6 수 변환
__2.2.7 불 타입과 논리 연산
__2.2.8 비교와 동등성
2.3 문자열
__2.3.1 문자열 템플릿
__2.3.2 기본 문자열 연산
2.4 배열
__2.4.1 배열 정의하기
__2.4.2 배열 사용하기
2.5 결론
3장 함수 정의하기
3.1 함수
__3.1.1 코틀린 함수의 구조
__3.1.2 위치 기반 인자와 이름 붙은 인자
__3.1.3 오버로딩과 디폴트 값
__3.1.4 vararg
__3.1.5 함수의 영역과 가시성
3.2 패키지와 임포트
__3.2.1 패키지와 디렉터리 구조
__3.2.2 임포트 디렉티브 사용하기
3.3 조건문
__3.3.1 if 문으로 선택하기
__3.3.2 범위, 진행, 연산
__3.3.3 when 문과 여럿 중에 하나 선택하기
3.4 루프
__3.4.1 while과 do-while 루프
__3.4.2 for 루프와 이터러블
__3.4.3 루프 제어 흐름 변경하기: break와 continue
__3.4.4 내포된 루프와 레이블
__3.4.5 꼬리 재귀 함수
3.5 예외 처리
__3.5.1 예외 던지기
__3.5.2 try 문으로 예외 처리하기
3.6 결론
3.7 정리 문제
4장 클래스와 객체 다루기
4.1 클래스 정의하기
__4.1.1 클래스 내부 구조
__4.1.2 생성자
__4.1.3 멤버 가시성
__4.1.4 내포된 클래스
__4.1.5 지역 클래스
4.2 널 가능성
__4.2.1 널이 될 수 있는 타입
__4.2.2 널 가능성과 스마트 캐스트
__4.2.3 널 아님 단언 연산자
__4.2.4 안전한 호출 연산자
__4.2.5 엘비스 연산자
4.3 단순한 변수 이상인 프로퍼티
__4.3.1 최상위 프로퍼티
__4.3.2 늦은 초기화
__4.3.3 커스텀 접근자 사용하기
__4.3.4 지연 계산 프로퍼티와 위임
4.4 객체
__4.4.1 객체 선언
__4.4.2 동반 객체
__4.4.3 객체 식
4.5 결론
4.6 정리 문제
5장 고급 함수와 함수형 프로그래밍 활용하기
5.1 코틀린을 활용한 함수형 프로그래밍
__5.1.1 고차 함수
__5.1.2 함수 타입
__5.1.3 람다와 익명 함수
__5.1.4 호출 가능 참조
__5.1.5 인라인 함수와 프로퍼티
__5.1.6 비지역적 제어 흐름
5.2 확장
__5.2.1 확장 함수
5.3 확장 프로퍼티
5.4 동반 확장
__5.4.1 람다와 수신 객체 지정 함수 타입
5.5 수신 객체가 있는 호출 가능 참조
__5.5.1 영역 함수
__5.5.2 클래스 멤버인 확장
5.6 결론
5.7 정리 문제
6장 특별한 클래스 사용하기
6.1 이넘 클래스
__6.1.1 빠뜨린 부분이 없는 when 식
__6.1.2 커스텀 멤버가 있는 이넘 정의하기
__6.1.3 이넘 클래스의 공통 멤버 사용하기
6.2 데이터 클래스
__6.2.1 데이터 클래스와 데이터 클래스에 대한 연산
__6.2.2 구조 분해 선언
6.3 인라인 클래스(값 클래스)
__6.3.1 인라인 클래스 정의하기
__6.3.2 부호 없는 정수
6.4 결론
6.5 정리 문제
7장 컬렉션과 I/O 자세히 알아보기
7.1 컬렉션
__7.1.1 컬렉션 타입
__7.1.2 Comparable과 Comparator
__7.1.3 컬렉션 생성하기
__7.1.4 기본 컬렉션 연산
__7.1.5 컬렉션 원소에 접근하기
__7.1.6 컬렉션에 대한 조건 검사
__7.1.7 집계
__7.1.8 걸러내기
__7.1.9 변환
__7.1.10 하위 컬렉션 추출
__7.1.11 순서
7.2 파일과 I/O 스트림
__7.2.1 스트림 유틸리티
__7.2.2 스트림 생성
__7.2.3 URL 유틸리티
__7.2.4 파일 콘텐츠 접근하기
__7.2.5 파일 시스템 유틸리티
7.3 결론
7.4 정리 문제
8장 클래스 계층 이해하기
8.1 상속
__8.1.1 하위 클래스 선언
__8.1.2 하위 클래스 초기화
__8.1.3 타입 검사와 캐스팅
__8.1.4 공통 메서드
8.2 추상 클래스와 인터페이스
__8.2.1 추상 클래스와 추상 멤버
__8.2.2 인터페이스
__8.2.3 봉인된 클래스와 인터페이스
__8.2.4 위임
8.3 결론
8.4 정리 문제
9장 제네릭스
9.1 타입 파라미터
__9.1.1 제네릭 선언
__9.1.2 바운드와 제약
__9.1.3 타입 소거와 구체화
9.2 변성
__9.2.1 변성: 생산자와 소비자 구분
__9.2.2 선언 지점 변성
__9.2.3 프로젝션을 사용한 사용 지점 변성
__9.2.4 스타 프로젝션
9.3 타입 별명
9.4 결론
9.5 정리 문제
10장 애너테이션과 리플렉션
10.1 애너테이션
__10.1.1 애너테이션 클래스 정의하고 사용하기
__10.1.2 내장 애너테이션
10.2 리플렉션
__10.2.1 리플렉션 API 개요
__10.2.2 지정자와 타입
__10.2.3 호출 가능
10.3 결론
10.4 정리 문제
11장 도메인 특화 언어
11.1 연산자 오버로딩
__11.1.1 단항 연산
__11.1.2 증가와 감소
__11.1.3 이항 연산
__11.1.4 중위 연산
__11.1.5 대입
__11.1.6 호출과 인덱스로 원소 찾기
__11.1.7 구조 분해
__11.1.8 이터레이션
11.2 위임 프로퍼티
__11.2.1 표준 위임들
__11.2.2 커스텀 위임 만들기
__11.2.3 위임 표현
11.3 고차 함수와 DSL
__11.3.1 중위 함수를 사용해 플루언트 DSL 만들기
__11.3.2 타입 안전한 빌더 사용하기
__11.3.3 @DslMarker
11.4 결론
11.5 정리 문제
12장 자바 상호 운용성
12.1 자바 코드를 코틀린에서 사용하기
__12.1.1 자바 메서드와 필드
__12.1.2 Unit과 void
__12.1.3 합성 프로퍼티
__12.1.4 플랫폼 타입
__12.1.5 널 가능성 애너테이션
__12.1.6 자바/코틀린 타입 매핑
__12.1.7 단일 추상 메서드 인터페이스
__12.1.8 자바를 코틀린으로 변환하는 변환기 사용하기
12.2 코틀린 코드를 자바에서 사용하기
__12.2.1 프로퍼티 접근
__12.2.2 파일 퍼사드와 최상위 선언
__12.2.3 객체와 정적 멤버
__12.2.4 노출된 선언 이름 변경하기
__12.2.5 오버로딩한 메서드 생성하기
__12.2.6 예외 선언하기
__12.2.7 인라인 함수
__12.2.8 타입 별명
12.3 결론
12.4 정리 문제
13장 동시성
13.1 코루틴
__13.1.1 코루틴과 일시 중단 함수
__13.1.2 코루틴 빌더
__13.1.3 코루틴 영역과 구조적 동시성
__13.1.4 코루틴 문맥
13.2 코루틴 흐름 제어와 잡 생명 주기
__13.2.1 취소
__13.2.2 타임아웃
__13.2.3 코루틴 디스패치하기
__13.2.4 예외 처리
13.3 동시성 통신
__13.3.1 채널
__13.3.2 생산자
__13.3.3 티커
__13.3.4 액터
13.4 자바 동시성 사용하기
__13.4.1 스레드 시작하기
__13.4.2 동기화와 락
13.5 결론
13.6 정리 질문
14장 코틀린 테스팅
14.1 코테스트 명세
__14.1.1 코테스트 시작하기
__14.1.2 명세 스타일
14.2 단언문
__14.2.1 매처
__14.2.2 인스펙터
__14.2.3 예외 처리
__14.2.4 비결정적 코드 테스트하기
__14.2.5 속성 기반 테스트
14.3 픽스처와 설정
__14.3.1 픽스처 제공하기
__14.3.2 테스트 설정
14.4 결론
14.5 정리 질문
15장 안드로이드 애플리케이션
15.1 안드로이드 개발 시작하기
__15.1.1 안드로이드 스튜디오 프로젝트 설정하기
__15.1.2 그레이들 빌드 스크립트
__15.1.3 액티비티
__15.1.4 에뮬레이터 사용하기
15.2 액티비티
__15.2.1 애플리케이션 UI 설계하기
__15.2.2 액티비티 클래스 정의하기
__15.2.3 젯팩 뷰 바인딩
__15.2.4 액티비티 상태 유지하기
__15.2.5 젯팩 콤포즈 레이아웃 DSL
15.3 결론
15.4 정리 문제
16장 Ktor를 활용한 웹 개발
16.1 Ktor 소개
16.2 서버 관련 기능
__16.2.1 라우팅
__16.2.2 HTTP 요청 처리
__16.2.3 HTML DSL
__16.2.4 세션 지원
16.3 클라이언트 기능
__16.3.1 요청과 응답
__16.3.2 쿠키
16.4 결론
16.5 정리 문제
17장 마이크로서비스 구축
17.1 마이크로서비스 아키텍처
17.2 스프링 부트 소개
__17.2.1 프로젝트 설정
17.3 서비스 API 결정하기
__17.3.1 난수 생성기 서비스 구현하기
__17.3.2 암호 생성 서비스 구현하기
17.4 Ktor를 사용한 마이크로서비스
__17.4.1 JSON 직렬화 사용하기
__17.4.2 암호 생성기 서비스 구현하기
17.5 결론
17.6 정리 문제
찾아보기
책 속으로
[지은이 서문]
2017년 구글이 공식적으로 코틀린을 인정했고, 2018년에는 안드로이드 개발의 주 언어로 채택했다. 이와 같은 유명세는 코틀린 언어의 실용성과 알려진 해법 중 최선의 실무 지침이 될 수 있는 해법을 채택하려는 설계 경향 덕분이라고 할 수 있다. 코틀린 팀은 아름다운 언어를 창조해냈고 만들어낸 언어를 개선하기 위해 끊임없이 노력하고 있다.
여러분을 아름다운 코틀린 프로그래밍 세계로 초대하고 싶다. 이 책을 통해 여러분은 코틀린을 사용함으로써 얻는 이점을 알 수 있다. 이 책을 다 읽고 나면 코틀린으로 직접 코딩하기 위해 필요한 모든 지식을 갖추게 될 것이다.
[옮긴이 서문]
『코틀린 인 액션(Kotlin in Action)』을 번역하기 시작했던 2016년 말은 아직 코틀린이 안드로이드 공식 지원 언어가 되기 전이었다. 하지만 구글 I/O 2017에서 코틀린이 안드로이드 공식 언어로 지정됐으며, 때맞춰 『코틀린 인 액션』을 독자 여러분에게 선보일 수 있었다. 그 후 시간이 지나면서 코틀린 언어도 변화해 왔으며, 코틀린이 실행되는 환경인 JVM과 코틀린이 의존하는 상당수 기능을 제공하는 자바 표준 라이브러리나 자바 언어 자체도 빠르게 변했다.
이 책 『코틀린 완벽 가이드(Kotlin In Depth 1&2)』는 코틀린 개발 팀원의 책으로서 너무 이론적이지 않게 코틀린 언어를 설명하고 있다는 점도 마음에 들었고, 코틀린 언어만이 아니라 Ktor, 코테스트, 스프링, 안드로이드 개발 등 다양한 코틀린 소프트웨어 개발 예제를 소개하고 있다는 점이 특히 마음에 들어서 즐겁게 번역했다.
출판사 서평
강력하고 실용적인 코틀린!
기초, 심화, 활용을 한 권으로!
이 책은 코틀린 언어의 기초부터 심화 내용까지 탄탄히 배우고 모바일, 웹, 데스크톱에서 다양한 애플리케이션을 개발하는 데 코틀린을 사용해 보는 것을 목표로 한다. 이 책을 통해 코틀린의 기본 문법을 시작으로 동작 원리와 그 이면의 핵심 아이디어를 이해할 수 있다. 더 나아가 객체지향 및 코틀린 기능을 활용하여 유연하고 재사용 가능한 코드를 만들고, 코틀린 표준 라이브러리를 사용해 보고, 고유한 도메인별 언어를 작성하고, 코루틴 라이브러리를 사용하여 비동기 코드를 작성해 본다. 마지막으로 코테스트 및 안드로이드, 웹 애플리케이션 개발에 코틀린을 사용해 볼 것이다. 자바 및 JVM에 익숙하다면 이 책을 좀 더 수월하게 볼 수 있을 것이다. 자바와 코틀린을 비교하면서 코틀린을 더 쉽고 깊게 이해하고, 자바에서 코틀린으로 전환하는 법도 배울 수 있다.
[베타테스터 실습 후기]
코틀린을 처음 접하더라도 좀 더 친숙하게 배울 수 있도록 해주는 책입니다. 자바 구문과 비교하여 어떤 부분이 코틀린의 강점이고 코딩할 때 더 효율적인지 바로 이해할 수 있었습니다. 한 번쯤 구현해본 기능들을 실습 주제로 다루기 때문에 예제로 주어지는 샘플 코드를 코틀린 언어로 하나씩 학습하면서 흥미를 잃지 않고 진행할 수 있도록 안내해줬습니다.
코틀린을 처음 접했지만, 이 책으로 코틀린 문법을 잘 이해했을 뿐 아니라 함수와 객체지향 기능에 대한 유익한 내용도 쉽게 익힐 수 있었습니다.
- 이동원_라인플러스
코틀린의 기초 문법부터 코틀린 설계를 뒷받침하는 기본 사상, 그리고 여러 응용 영역에서 사용되는 코틀린 라이브러리와 프레임워크를 전반적으로 살펴볼 수 있었습니다. 문법을 설명할 때는 자바와 코틀린의 차이점까지 설명하여 자바 개발자가 코틀린으로 쉽게 전환할 수 있도록 해줍니다. 코
- 허헌_프리랜서
기초 이론부터 고급 함수까지 실무에서 쓰는 기술을 익히는 데 큰 도움이 되는 책입니다. 코틀린과 자바를 비교하면서 주의할 사항을 쉽게 설명한 점이 인상 깊었습니다. 또한, 예제 코드가 잘 작동됩니다. 특히 코드를 설명하기 전에 x 값은 무엇이고 y 값은 무엇인지 적은 후 참인지 거짓인지 결과를 알려줘서 이해하기 편했습니다. 그리고 다른 책과 달리 인텔리J 단축키를 자세히 보여주므로 생산성을 높이는 데도 도움을 줍니다.
- 오동주_SW 개발자
안드로이드를 활용하기 위한 코틀린이 아니라 언어로서 코틀린을 바라보게 해준 책이다. 비슷한 책으로 이미 『코틀린 인 액션』을 읽은 바 있지만, 이 책은 좀 더 넓은 범위를 다루고 활용되거나 접목되는 측면을 더했으며 실습을 통해 익히는 부분을 강조했다. 또한, 안드로이드의 젯팩 콤포즈와 Ktor를 통한 웹 개발이 수록된 것이 인상적이었다. 기본에 충실한 내용을 담고 있지만 트렌디한 부분까지 챙겨볼 수 있다는 매력이야말로 다른 책에서는 찾아볼 수 없는, 이 책만의 장점이라고 생각한다.
- 박수빈_엔씨소프트
몇 년 전 안드로이드 개발자 사이트에 코틀린이 자바와 병기되어 표기될 즈음, 새 프로젝트는 코틀린으로 해보자는 의견이 있었으나 부정적 반응이 대부분이었고 저 또한 마찬가지였습니다. 그러나 그 후 몇 년 지나지 않아 어느새 주류로 자리 잡은 코틀린을 바라보면서, 새로운 기술 트렌드에 너무 둔감했던 것은 아닌지 자기반성을 하게 됩니다.
이 책에는 코틀린에 대한 모든 것이 담겨 있으며, 특히 코틀린의 특징을 자바와 비교하여 설명하는 부분이 요긴했습니다. 많은 내용을 담고 있으므로 소장용으로도 적합하고, 그 내용을 통해 많이 배웠습니다. 저자와 역자의 개발 노하우가 지면 곳곳에 묻어 있으므로, 끈기를 가지고 학습한다면 분명 좋은 결과가 있을 것으로 생각합니다.
- 이진_휴맥스
예제는 코틀린 문법이 주를 이루고 있으니 책에서 자바와 코틀린의 차이를 명확히 설명해주는 부분인 ‘자바 vs. 코틀린’을 우선 살펴보면 빠르게 이해할 수 있습니다. 이 책을 통해 ‘내가 코틀린을 공부해야 하는가?’라는 질문과 관련해 활용 가능한 선택지가 많아졌다는 점에 감사합니다.
- 박광현_(주)핀테크_개발팀
이 책은 안드로이드 애플리케이션 개발 언어로 알려진 코틀린의 기초와 객체지향 프로그래밍뿐 아니라 안드로이드 프로그래밍부터 웹 프로그램에서의 활용까지 순수 코틀린이라는 언어에 초점을 맞추면서 폭넓게 다루고 있습니다. 책의 중간중간에 제시된 자바 언어와 코틀린 언어 간의 차이를 비교해 가며 코틀린이라는 언어를 흥미롭게 학습할 수 있을 것입니다.
- 김동원_한양사이버대학교 응용소프트웨어공학과
기본정보
ISBN | 9791165218911 | ||
---|---|---|---|
발행(출시)일자 | 2022년 02월 28일 | ||
쪽수 | 704쪽 | ||
크기 |
184 * 236
* 33
mm
/ 1251 g
|
||
총권수 | 1권 | ||
원서명/저자명 | Kotlin in-depth : a comprehensive guide to modern multi-paradigm language. 1-2/Sedunov, Aleksei |
Klover
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
구매 후 리뷰 작성 시, e교환권 200원 적립
문장수집
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
구매 후 리뷰 작성 시, e교환권 100원 적립