코틀린 완벽 가이드
도서명:코틀린 완벽 가이드
저자/출판사:알렉세이,세두노프/길벗
쪽수:704쪽
출판일:2022-02-28
ISBN:9791165218911
목차
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 정리 문제
찾아보기