길벗·이지톡

도서 IT전문서/IT입문서 프로그래밍/오픈소스

코틀린을 익히고 레벨업하는 가장 확실한 방법!

한 번에 하나씩 + 명확한 예제를 실행하면서 + 훌륭한 멘토의 설명으로 배워라!


 

코틀린의 기본 개념을 명확히 이해하고, 더 나은 코드를 작성하기 위한 87가지 필수 개념을 배울 수 있다. 이 책의 강점은 다음 3가지다. (1) 한 번에 한 가지 개념만, 하나의 문법 요소만 군더더기 없이 집중적으로 설명한다. 주제별로 세분화하여 학습 효율을 높이고, 코틀린의 철학을 충분히 이해시키기 위해 이러한 아토믹(atomic)한 구성을 선택했다. (2) 각 아톰마다 예제가 풍부하고, 모든 설명이 명확한 예제에 기반한다. 설명하기보다 예제와 결과로 코틀린의 특성을 말 그대로 보여줌으로써 코드를 직관적으로 이해시킨다. (3) 이미 좋은 책들을 집필해본 경험이 많은 저자들이 오로지 코틀린 학습 및 코드 연습을 위해 심혈을 기울여 만들었다(https://www.atomickotlin.com). 기초부터 차근차근, 이미 알고 있는 개념도 왜 이것이 더 나은 코드인지 더 정확하게 이해할 수 있다.

 

목차

1부 프로그래밍 기초

__01 소개

____이 책의 콘셉트

__02 왜 코틀린인가?

____컴파일러와 인터프리터

____코틀린에 영향을 미친 언어

____왜 코틀린인가? (2011년 출시되고 2016년 버전 1.0이 나온 언어)

____코틀린의 두 가지 특징

__03 Hello, World!

__04 var와 val

__05 데이터 타입

__06 함수

__07 if 식

__08 문자열 템플릿

__09 수 타입

__10 불리언

__11 while로 반복하기

__12 루프와 범위

__13 in 키워드

__14 식과 문

__15 1부 요약

 

 

2부 객체 소개

__16 객체는 모든 곳에 존재한다

__17 클래스 만들기

__18 프로퍼티

__19 생성자

__20 가시성 제한하기

____모듈

__21 패키지

__22 테스트

____프로그램의 일부분인 테스트

__23 예외

__24 리스트

____파라미터화한 타입

____읽기 전용과 가변 List

____+=의 비밀

__25 가변 인자 목록

____명령줄 인자

__26 집합

__27 맵

__28 프로퍼티 접근자

__29 2부 요약

 

 

3부 사용성

__30 확장 함수

__31 이름 붙은 인자와 디폴트 인자

__32 오버로딩

__33 when 식

__34 이넘

__35 데이터 클래스

____HashMap과 HashSet

__36 구조 분해 선언

__37 널이 될 수 있는 타입

__38 안전한 호출과 엘비스 연산자

__39 널 아님 단언

__40 확장 함수와 널이 될 수 있는 타입

__41 제네릭스 소개

____제네릭 함수

__42 확장 프로퍼티

__43 break와 continue

____레이블

 

 

4부 함수형 프로그래밍

__44 람다

__45 람다의 중요성

__46 컬렉션에 대한 연산

__47 멤버 참조

____함수 참조

____생성자 참조

____확장 함수 참조

__48 고차 함수

__49 리스트 조작하기

____묶기

____평평하게 하기

__50 맵 만들기

____맵에 연산 적용하기

__51 시퀀스

__52 지역 함수

____레이블

____지역 함수 조작하기

__53 리스트 접기

__54 재귀

 

 

5부 객체 지향 프로그래밍

__55 인터페이스

____SAM 변환

__56 복잡한 생성자

__57 부생성자

__58 상속

__59 기반 클래스 초기화

__60 추상 클래스

__61 업캐스트

__62 다형성

__63 합성

____합성과 상속 중 선택하기

__64 상속과 확장

____관습에 의한 인터페이스

____어댑터 패턴

____멤버 함수와 확장 함수 비교

__65 클래스 위임

__66 다운캐스트

____스마트 캐스트

____변경 가능한 참조

____as 키워드

____리스트 원소의 타입 알아내기

__67 봉인된 클래스

____sealed와 abstract 비교

____하위 클래스 열거하기

__68 타입 검사

____외부 함수에서 타입 검사하기

__69 내포된 클래스

____지역 클래스

____인터페이스에 포함된 클래스

____내포된 이넘

__70 객체

__71 내부 클래스

____한정된 this

____내부 클래스 상속

____지역 내부 클래스와 익명 내부 클래스

__72 동반 객체

 

 

6부 실패 방지하기

__73 예외 처리

____오류 보고

____복구

____예외 하위 타입

____자원 해제

____AtomicTest의 예외 처리

____가이드라인

__74 검사 명령

____require()

____requireNotNull()

____check()

____assert()

__75 Nothing 타입

__76 자원 해제

__77 로깅

__78 단위 테스트

____테스트 프레임워크

____모킹과 통합 테스트

____인텔리J IDEA에서 테스트하기

 

 

7부 파워 툴

__79 확장 람다

____확장 람다를 사용해 빌더 작성하기

__80 영역 함수

____영역 함수는 인라인된다

__81 제네릭스 만들기

____Any

____제네릭스 정의하기

____타입 정보 보존하기

____타입 파라미터 제약

____타입 소거

____함수의 타입 인자에 대한 실체화

____타입 변성

__82 연산자 오버로딩

____동등성

____산술 연산자

____비교 연산자

____범위와 컨테이너

____컨테이너 원소 접근

____호출 연산자

____역작은따옴표로 감싼 함수 이름

__83 연산자 사용하기

____구조 분해 연산자

__84 프로퍼티 위임

__85 프로퍼티 위임 도구

__86 지연 계산 초기화

__87 늦은 초기화

 

 

부록

__A 아토믹 테스트

__B 자바 상호 운용성

____코틀린에서 자바 호출하기

____자바에서 코틀린 호출하기

____자바를 코틀린에 도입하기

____자바의 검사 예외와 코틀린

____널이 될 수 있는 타입과 자바

____널 가능성 애너테이션

____컬렉션과 자바

____자바 원시 타입

__C 인텔리J에서 코틀린 코드를 실행하는 법

____인텔리J IDEA 설치하기

____깃허브에서 예제 내려받기

____인텔리J에서 예제 실행하기

__D 인텔리J에서 이 책의 연습 문제를 푸는 법

____EduTools 플러그인 설치하기

____학습 코스 선택하기

____예제와 연습 문제 실행하기

 

찾아보기

 

더보기접기

저자&기여자

ㆍ지은이 브루스 에켈

소개
수차례 수상한 『Thinking in Java』, 『Thinking in C++』 등 여러 컴퓨터 프로그래밍 책을 쓴 저자다. 35년 넘게 프로그래밍 세계에서 책을 쓰고, 전 세계의 다양한 콘퍼런스나 이벤트에서 수백 번 발표를 해왔다. 블로그는 https://www.bruceeckel.com이며, 마인드뷰 유한 책임 회사(MindView LLC)(https://www.mindviewllc.com)를 통해 컨설팅 및 콘퍼런스 비즈니스를 하고 있다.

ㆍ지은이 스베트라나 이사코바

소개
코틀린 컴파일러 팀원이었으며, 현재는 젯브레인즈(JetBrains)의 코틀린 개발자 애드버킷이다. 세계 곳곳에서 코틀린을 가르치고 콘퍼런스 강사로 활동하고 있으며, 『Kotlin in Action』의 공저자이기도 하다.

ㆍ옮긴이 오현석

소개
비사이드소프트(BSIDESOFT) 이사로 일하면서 매일매일 고객의 요청에 따라 코드를 만들어내고 있는 현업 개발자다. 어릴 때 처음 컴퓨터를 접하고 매혹된 후 경기과학고, KAIST 전산학과(프로그래밍 언어 전공 석사)를 거치면서 계속 컴퓨터를 사용해왔다. 직장에서는 주로 코틀린이나 자바를 사용한 서버 프로그래밍을 하고, 주말이나 빈 시간에는 번역을 하거나 공부를 하면서 즐거움을 찾는다. 시간이 아주 많이 남을 때는 시뮬레이션 게임을 하면서 머리를 식히고 놀고, 어떻게 하면 막내자식을 프로그래밍의 세계로 끌어들일 수 있을까 고민 중인 아빠이기도 하다.

보도자료

연관 프로그램

아래 프로그램은 길벗출판사가 제공하는 것이 아닙니다.
무료로 사용할 수 있는 정보를 안내해 드리니, 지원이 필요하면 해당 프로그렘 제작사로 문의해 주세요.