도서소개
안전하고 유지 보수하기 쉽게 코드를 작성하는 방법을 배우자!!
새로운 해법을 찾고 있는 자바 개발자를 위한 책
코틀린은 프로젝트 소스 수준에서 자바와 통합된다. 이 덕분에 자바에서 코틀린으로 이전하기가 쉽다. 또한 코틀린으로 프로그램을 작성하면 더 안전하며 규모 변경이 쉽고 테스트와 유지 보수하기가 용이하다. 이 책은 JVM 환경에서 자바의 한계를 극복하고 자바로 프로그래밍할 때 발생하는 일반적인 문제를 해결하고 싶은 개발자들에게 이해하기 쉽고 안전한 프로그램을 코틀린으로 작성하는 법을 가르쳐준다.
코드를 좀 더 코틀린답게 작성할 수 있는 다양한 기법을 소개한다.
이 책은 오래전부터 서로 다른 환경에서 발전해 온 여러 기법을 설명한다. 이 책에서 설명하는 모든 기법은 자바 생태계에서 프로덕션에 여러 해 동안 사용해 왔던 것으로, 전통적인 명령형 프로그래밍 기법보다 버그 발생을 줄이는 데 효과적이다. 이 책은 프로그래밍을 맨 밑바닥부터 알려주지 않지만, 버그가 없는 프로그램을 더 쉽고 안전하게 작성할 수 있게 돕는다.
72개 예제와 164개 연습문제로 확인한다.
이 책에서 최대한 많은 것을 얻어낼 수 있도록 장마다 다양한 예제와 연습문제를 제시한다. 연습문제는 간단한 것부터 시작하여 점점 난도를 올리며 한 주제를 깊게 파고든다. 또한, 앞의 연습문제에 나온 코드를 활용하여 다음 문제를 해결하도록 순차적으로 배열되어 있다. 연습문제에는 문제를 풀 때 필요한 지시사항, 해법을 찾을 때 도움이 되는 힌트가 들어 있으며, 연습문제마다 모범 답안과 직접 푼 해법이 맞는지 검증하기 위한 테스트도 있다.
도서목차
장 프로그램을 더 안전하게 만들기
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 요약
해시태그
#코틀린을 #다루는 #기술