코틀린 아카데미 : 고급편 - 프로그래밍 인사이트 Programming Insight
Description
평범한 코틀린 개발자에서 진정한 코틀린 전문가로 거듭나기!
많은 코틀린 개발자가 실용적인 앱 개발을 위해 컨트랙트, 변성 제어자, 코틀린 심벌 처리기 등의 고급 기능을 사용하고 있지만, 그 내부 동작 원리를 제대로 이해하지 못한 채 활용하는 경우가 많습니다. 《코틀린 아카데미: 고급편》은 변성 제어자, 프로퍼티 위임, 인터페이스 위임, 컨트랙트, 멀티플랫폼 개발, 애너테이션 처리, 코틀린 심벌 처리기, 컴파일러 플러그인, 정적 분석기 등 복잡하지만 강력한 코틀린의 고급 기능을 상세히 설명하고, 실제 프로젝트에 적용할 수 있는 기반 지식을 제공합니다. 이 책을 통해 독자들은 코틀린의 고급 기능들을 자신의 프로젝트에 효과적으로 적용할 수 있는 능력을 갖추게 될 것이며, 이전에는 상상하지 못했던 프로그래밍의 가능성을 발견하고 코틀린의 진정한 잠재력을 깨닫게 될 것입니다. 지금 바로 코틀린 마스터로의 여정을 시작해 보세요!

이 책에서 다루는 내용
제네릭 변성 제어자인터페이스 위임과 프로퍼티 위임코틀린 컨트랙트코틀린과 자바 상호운용성코틀린/JS 사용하기코틀린 리플렉션애너테이션 처리기코틀린 심벌 처리기코틀린 컴파일러 플러그인커스텀 규칙을 사용한 정적 분석

이 책의 대상 독자
이 책은 경험 많은 코틀린 개발자를 대상으로 합니다. 독자들이 함수 타입과 람다 표현식, 컬렉션 처리, DSL의 생성과 사용법, Any?와 Nothing 같은 필수 코틀린 타입을 알고 있다고 가정합니다.

소스코드 다운로드
본문에 소개된 모든 소스코드는 다음 깃허브 저장소에서 볼 수 있습니다.

https://github.com/MarcinMoskala/advanced_kotlin_sources

저자

마르친모스카와

저자:마르친모스카와
경험많은개발자이자코틀린강사이다.2015년부터코틀린을전문적으로사용하였고,2016년부터코틀린에관한글을썼으며,2018년부터코틀린을가르치고있다.코틀린분야의GDE(GoogleDeveloperExpert)이며,젯브레인(JetBrains)과코틀린교육에대한공식적인파트너십을체결하고있는코틀린아카데미(Kt.Academy)의창립자이다.저술한책으로는《코틀린코루틴》,《코틀린아카데미:핵심편》,《코틀린아카데미:함수형프로그래밍》,《코틀린아카데미:이펙티브코틀린》,《코틀린을이용한안드로이드개발》이있다.

역자:신성열
시스템프로그래밍으로개발을시작했으며,현재는카카오에서서버개발자로일하고있다.C++부터시작해자바로,그리고현재는코틀린까지언어영역을넓히고있으며,현업에서는코틀린의다양한기능을배우고적용하고있다.

목차


1부코틀린의고급기능

1장제네릭변성제어자
리스트의변성
소비자의변성
함수타입
공변Nothing객체
공변Nothing클래스
변성제어자의제한
@UnsafeVariance애너테이션
변성제어자의위치
스타프로젝션(*)
요약
연습문제:제네릭타입사용
연습문제:제네릭응답
연습문제:제네릭컨슈머

2장인터페이스위임
위임패턴
위임과상속
코틀린의인터페이스위임지원
래퍼클래스
데코레이터패턴
인터섹션타입
한계
부모사이의요소충돌
요약
연습문제:ApplicationScope

3장프로퍼티위임
프로퍼티위임의원리
getValue와setValue의다른매개변수들
커스텀프로퍼티위임자구현
위임자제공하기
코틀린표준라이브러리의프로퍼티위임자
notNull위임자
연습문제:Lateinit위임자구현
lazy위임자
연습문제:블로그포스트프로퍼티
observable위임자
vetoable위임자
위임자로맵사용하기
변수가동작하는방식복습하기
요약
연습문제:뮤터블lazy위임자

4장코틀린컨트랙트
컨트랙트의의미
인수로받은함수를몇번호출할까?
함수가값을반환한다는사실을암시하기
컨트랙트실제로사용하기
요약
연습문제:코루틴시간측정

2부다양한플랫폼에서의코틀린

5장자바상호운용성
널가능한타입
코틀린타입매핑
JVM원시타입
컬렉션타입
애너테이션대상
정적요소
@JvmField
코틀린에서자바접근자사용하기
@JvmName
@JvmMultifileClass
@JvmOverloads
Unit
함수타입과함수인터페이스
편법적인이름
@Throws
@JvmRecord
요약
연습문제:코틀린코드를자바에서이용할수있도록다듬기

6장코틀린멀티플랫폼사용하기
멀티플랫폼모듈설정
expect와actual요소
가능성
멀티플랫폼라이브러리
멀티플랫폼모바일애플리케이션
요약
연습문제:멀티플랫폼에서의LocalDateTime

7장자바스크립트상호운용성
프로젝트설정하기
코틀린/JS를지원하는라이브러리사용하기
코틀린/JS사용하기
패키지빌딩과링킹
npm에패키지배포하기
객체노출하기
플로우와상태플로우노출하기
npm의존성추가하기
코틀린/JS용프레임워크와라이브러리
자바스크립트와코틀린/JS의한계
요약
연습문제:코틀린/JVM프로젝트를KMP로이전하기

3부메타프로그래밍

8장리플렉션
클래스계층구조
함수참조
매개변수참조
프로퍼티참조
클래스참조
직렬화예시
타입참조하기
타입리플렉션예시:랜덤값
코틀린리플렉션과자바리플렉션
캡슐화깨뜨리기
요약
연습문제:함수호출자
연습문제:객체를JSON으로직렬화
연습문제:객체를XML로직렬화
연습문제:DSL에기초한의존성주입라이브러리

9장애너테이션처리
처음만드는애너테이션처리기
생성된클래스숨기기
요약
연습문제:애너테이션처리로실행시간측정래퍼만들기

10장코틀린심벌처리
처음만드는KSP처리기
KSP테스트하기
의존성과점진적처리
다중라운드처리
멀티플랫폼프로젝트에서KSP사용하기
요약
연습문제:KSP로처리시간측정래퍼만들기

11장코틀린컴파일러플러그인
컴파일러프런트엔드와백엔드
컴파일러확장
유명한컴파일러플러그인들
모든클래스를open으로설정하기
타입변경하기
함수래퍼생성하기
플러그인구현예제
요약

12장정적분석도구
정적분석도구란?
분석도구종류
코틀린코드분석도구
디텍트설정하기
첫번째디텍트규칙작성하기
요약

마치며
연습문제해답
찾아보기

출판사 서평


평범한코틀린개발자에서진정한코틀린전문가로거듭나기!

많은코틀린개발자가실용적인앱개발을위해컨트랙트,변성제어자,코틀린심벌처리기등의고급기능을사용하고있지만,그내부동작원리를제대로이해하지못한채활용하는경우가많습니다.《코틀린아카데미:고급편》은변성제어자,프로퍼티위임,인터페이스위임,컨트랙트,멀티플랫폼개발,애너테이션처리,코틀린심벌처리기,컴파일러플러그인,정적분석기등복잡하지만강력한코틀린의고급기능을상세히설명하고,실제프로젝트에적용할수있는기반지식을제공합니다.이책을통해독자들은코틀린의고급기능들을자신의프로젝트에효과적으로적용할수있는능력을갖추게될것이며,이전에는상상하지못했던프로그래밍의가능성을발견하고코틀린의진정한잠재력을깨닫게될것입니다.지금바로코틀린마스터로의여정을시작해보세요!

이책에서다루는내용

ㅇ제네릭변성제어자
ㅇ인터페이스위임과프로퍼티위임
ㅇ코틀린컨트랙트
ㅇ코틀린과자바상호운용성
ㅇ코틀린/JS사용하기
ㅇ코틀린리플렉션
ㅇ애너테이션처리기
ㅇ코틀린심벌처리기
ㅇ코틀린컴파일러플러그인
ㅇ커스텀규칙을사용한정적분석

이책의대상독자

이책은경험많은코틀린개발자를대상으로합니다.독자들이함수타입과람다표현식,컬렉션처리,DSL의생성과사용법,Any?와Nothing같은필수코틀린타입을알고있다고가정합니다.