|
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 정리 문제 |
Aleksei Sedunov
알렉세이 세두노프의 다른 상품
오현석의 다른 상품