코틀린은 자바와 부드럽게 연동되는 우아한 JVM 언어로, 구글은 2019년부터 안드로이드에서 최우선 언어로 코틀린을 채택했다.
이 책은 이해하기 쉽고 유지 보수하기 편하며 안전한 프로그램을
코틀린으로 작성하는 법을 가르쳐준다. 함수형 프로그래밍에서 영감을 얻은 다양한 기법을 소개하고 프로그래밍할
때 발생하는 일반적인 문제를 이 기법들로 해결하는 방법을 알려준다. 여러 문제를 해결해 나가는 과정에서
오류와 데이터를 제대로 처리하는 방법, 상태를 관리하는 방법, 지연
계산을 활용하는 방법 등을 배우게 된다. 이 책에 있는 강력한 기법들을 제대로 배우고 나면 코틀린을
깊이 있게 이해하고 현업에서 코틀린을 더 코틀린답게 사용할 수 있을 것이다.
1장
프로그램을 더 안전하게 만들기
1.1 프로그래밍의 함정
1.2 안전한 프로그래밍의 이점
1.3 요약
2장
코틀린 프로그래밍의 개요
2.1 필드와 변수
2.2 클래스와 인터페이스
2.3 원시 타입이 없음
2.4 컬렉션의 두 유형
2.5 패키지
2.6 가시성
2.7 함수
2.8 널
2.9 프로그램 흐름과 제어 구조
2.10 비검사 예외
2.11 사용한 자원 자동으로 닫기
2.12 스마트 캐스트
2.13 동등성과 동일성
2.14 문자열 인터폴레이션
2.15 여러 줄 문자열
2.16 변성: 파라미터화한
타입과 하위 타입
2.17 요약
3장
함수로 프로그래밍하기
3.1 함수란 무엇인가
3.2 코틀린 함수
3.3 고급 함수 기능
3.4 요약
4장
재귀, 공재귀, 메모화
4.1 공재귀와 재귀
4.2 꼬리 호출 제거
4.3 재귀 함수와 리스트
4.4 메모화
4.5 메모화한 함수는 순수 함수인가
4.6 요약
5장
리스트로 데이터 처리하기
5.1 데이터 컬렉션을 분류하는 방법
5.2 리스트의 여러 유형
5.3 리스트의 상대적 예상 성능
5.4 코틀린에서 사용할 수 있는 리스트의 종류
5.5 리스트 연산에서 데이터 공유하기
5.6 다른 리스트 연산들
5.7 요약
6장
선택적 데이터 처리하기
6.1 널 포인터의 문제점
6.2 코틀린이 널 참조를 처리하는 방식
6.3 널 참조에 대한 대안
6.4 Option 타입 사용하기
6.5 요약
7장
오류와 예외 처리하기
7.1 데이터가 없는 경우와 관련한 문제점
7.2 Either 타입
7.3 Result 타입
7.4 Result 패턴
7.5 고급 Result 처리
7.6 실패 매핑하기
7.7 팩터리 함수 추가하기
7.8 효과 적용하기
7.9 고급 Result 합성
7.10 요약
8장
고급 리스트 처리
8.1 length의 단점
8.2 성능 문제
8.3 메모화의 이점
8.4 List와 Result의
합성
8.5 리스트에 대한 일반적인 추상화
8.6 리스트를 자동으로 병렬 처리하기
8.7 요약
9장
지연 계산 사용하기
9.1 즉시 계산과 지연 계산
9.2 코틀린과 즉시 계산
9.3 코틀린과 지연 계산
9.4 지연 계산 구현
9.5 추가 지연 합성
9.6 스트림 처리하기
9.7 요약
10장
트리를 사용한 데이터 처리
10.1 이진 트리
10.2 균형 트리와 불균형 트리 이해하기
10.3 트리의 크기, 높이, 깊이 살펴보기
10.4 빈 트리와 트리의 재귀적 정의
10.5 잎 트리
10.6 순서가 있는 이진 트리와 이진 검색 트리
10.7 삽입 순서와 트리의 구조
10.8 재귀적 트리 순회 순서와 비재귀적 트리 순회 순서
10.9 이진 검색 트리 구현
10.10 트리 접기에 대해
10.11 트리 매핑하기
10.12 균형 트리 다루기
10.13 요약
11장
고급 트리를 활용해 문제 해결하기
11.1 자체 균형 트리의 스택 안전성 및 성능 높이기
11.2 레드-블랙 트리의
활용: 맵
11.3 함수형 우선순위 큐 구현하기
11.4 원소와 정렬한 리스트
11.5 비교 불가능한 원소에 대한 우선순위 큐
11.6 요약
12장
함수형 입출력
12.1 부수 효과를 컨텍스트 안에 가둔다는 것은 무슨 뜻인가
12.2 데이터 읽기
12.3 입력 테스트하기
12.4 완전히 함수형인 입출력
12.5 요약
13장
액터로 상태 변이 공유하기
13.1 액터 모델
13.2 액터 프레임워크 구현하기
13.3 AbstractActor 구현
13.4 액터가 행동하게 만들기
13.5 요약
14장
자주 일어나는 문제를 함수형으로 해결하기
14.1 단언문과 데이터 검증
14.2 함수와 효과 재시도하기
14.3 파일에서 프로퍼티 읽기
14.4 명령형 프로그램 변환하기:
XML 리더
14.5 요약
부록A 코틀린과
자바 함께 쓰기
A.1 혼합 프로젝트를 만들고 관리하기
A.2 자바 라이브러리 메서드와 코틀린 코드
A.3 SAM 인터페이스
A.4 코틀린 함수와 자바 코드
A.5 코틀린/자바 혼합
프로젝트에서만 발생하는 문제
A.6 요약
부록B 코틀린에서
속성 기반 테스트하기
B.1 속성 기반 테스트를 사용해야 하는 이유는 무엇인가
B.2 속성 기반 테스트는 무엇인가
B.3 추상화와 속성 기반 테스트
B.4 속성 기반 단위 테스트의 의존 관계
B.5 속성 기반 테스트 작성하기
B.6 요약
ㆍ지은이 피에르이브쏘몽
ㆍ옮긴이 오현석
독자의견 남기기