코틀린 완벽 가이드 (입문부터 활용까지, 필요한 지식 총망라!)

코틀린 완벽 가이드 (입문부터 활용까지, 필요한 지식 총망라!)

$37.53
Description
코틀린 현업 개발자인 저자와 역자의 노하우가 듬뿍 들어간, 최신 코틀린 종합 가이드!
코틀린 현업 개발자인 저자와 역자의 노하우가 듬뿍 들어간, 최신 코틀린 종합 가이드!

코틀린의 기초, 심화, 활용을 한 권에 담았다. 코틀린 언어의 기초 개념과 핵심 문법, 기능을 소개하고(기초), 더 나아가 객체지향, 함수형, 코루틴, 리플렉션, 도메인 특화 언어 형태와 관련된 고급 기능까지 설명한다(심화). 마지막으로 테스트, 안드로이드, 웹 등에서 코틀린을 사용하는 방법을 알려준다(활용). 코틀린으로 프로그래밍하려면 꼭 필요한 지식 & 사용하는 방법 & 사용함으로써 얻을 수 있는 이점을 모두 알 수 있다.
코틀린을 종합적으로 소개한다는 장점과 함께 코틀린이라는 언어의 특징, 핵심 문법, 동작 원리를 전달하고자 했다는 점, 자바와 비교해 설명하면서 이해를 높이고 원리를 쉽게 설명하려 노력한 점도 주목할 만하다. 또한, 번역하면서 코틀린의 최신 내용을 반영하고, 소스 코드와 예제를 모두 검증했다.
저자

알렉세이세두노프

알렉세이세두노프는2008년부터자바개발자로일해왔다.2012년젯브레인즈에합류한이후,인텔리J플랫폼에서IDE도구개발이쉽도록코틀린언어를개발하는일에활발히참여해왔다.현재는젯브레인즈의데이터베이스IDE인데이터그립(DataGrip)팀에서코틀린을주개발도구로사용하면서일하고있다.

목차

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.2REPL사용하기
__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.4vararg
__3.1.5함수의영역과가시성
3.2패키지와임포트
__3.2.1패키지와디렉터리구조
__3.2.2임포트디렉티브사용하기
3.3조건문
__3.3.1if문으로선택하기
__3.3.2범위,진행,연산
__3.3.3when문과여럿중에하나선택하기
3.4루프
__3.4.1while과do-while루프
__3.4.2for루프와이터러블
__3.4.3루프제어흐름변경하기:break와continue
__3.4.4내포된루프와레이블
__3.4.5꼬리재귀함수
3.5예외처리
__3.5.1예외던지기
__3.5.2try문으로예외처리하기
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.2Comparable과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.3URL유틸리티
__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.2Unit과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.1Ktor소개
16.2서버관련기능
__16.2.1라우팅
__16.2.2HTTP요청처리
__16.2.3HTMLDSL
__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.4Ktor를사용한마이크로서비스
__17.4.1JSON직렬화사용하기
__17.4.2암호생성기서비스구현하기

출판사 서평

강력하고실용적인코틀린!
기초,심화,활용을한권으로!

이책은코틀린언어의기초부터심화내용까지탄탄히배우고모바일,웹,데스크톱에서다양한애플리케이션을개발하는데코틀린을사용해보는것을목표로한다.이책을통해코틀린의기본문법을시작으로동작원리와그이면의핵심아이디어를이해할수있다.더나아가객체지향및코틀린기능을활용하여유연하고재사용가능한코드를만들고,코틀린표준라이브러리를사용해보고,고유한도메인별언어를작성하고,코루틴라이브러리를사용하여비동기코드를작성해본다.마지막으로코테스트및안드로이드,웹애플리케이션개발에코틀린을사용해볼것이다.자바및JVM에익숙하다면이책을좀더수월하게볼수있을것이다.자바와코틀린을비교하면서코틀린을더쉽고깊게이해하고,자바에서코틀린으로전환하는법도배울수있다.


[베타테스터실습후기]
코틀린을처음접하더라도좀더친숙하게배울수있도록해주는책입니다.자바구문과비교하여어떤부분이코틀린의강점이고코딩할때더효율적인지바로이해할수있었습니다.한번쯤구현해본기능들을실습주제로다루기때문에예제로주어지는샘플코드를코틀린언어로하나씩학습하면서흥미를잃지않고진행할수있도록안내해줬습니다.
코틀린을처음접했지만,이책으로코틀린문법을잘이해했을뿐아니라함수와객체지향기능에대한유익한내용도쉽게익힐수있었습니다.
-이동원_라인플러스

코틀린의기초문법부터코틀린설계를뒷받침하는기본사상,그리고여러응용영역에서사용되는코틀린라이브러리와프레임워크를전반적으로살펴볼수있었습니다.문법을설명할때는자바와코틀린의차이점까지설명하여자바개발자가코틀린으로쉽게전환할수있도록해줍니다.코
-허헌_프리랜서

기초이론부터고급함수까지실무에서쓰는기술을익히는데큰도움이되는책입니다.코틀린과자바를비교하면서주의할사항을쉽게설명한점이인상깊었습니다.또한,예제코드가잘작동됩니다.특히코드를설명하기전에x값은무엇이고y값은무엇인지적은후참인지거짓인지결과를알려줘서이해하기편했습니다.그리고다른책과달리인텔리J단축키를자세히보여주므로생산성을높이는데도도움을줍니다.
-오동주_SW개발자

안드로이드를활용하기위한코틀린이아니라언어로서코틀린을바라보게해준책이다.비슷한책으로이미『코틀린인액션』을읽은바있지만,이책은좀더넓은범위를다루고활용되거나접목되는측면을더했으며실습을통해익히는부분을강조했다.또한,안드로이드의젯팩콤포즈와Ktor를통한웹개발이수록된것이인상적이었다.기본에충실한내용을담고있지만트렌디한부분까지챙겨볼수있다는매력이야말로다른책에서는찾아볼수없는,이책만의장점이라고생각한다.
-박수빈_엔씨소프트

몇년전안드로이드개발자사이트에코틀린이자바와병기되어표기될즈음,새프로젝트는코틀린으로해보자는의견이있었으나부정적반응이대부분이었고저또한마찬가지였습니다.그러나그후몇년지나지않아어느새주류로자리잡은코틀린을바라보면서,새로운기술트렌드에너무둔감했던것은아닌지자기반성을하게됩니다.
이책에는코틀린에대한모든것이담겨있으며,특히코틀린의특징을자바와비교하여설명하는부분이요긴했습니다.많은내용을담고있으므로소장용으로도적합하고,그내용을통해많이배웠습니다.저자와역자의개발노하우가지면곳곳에묻어있으므로,끈기를가지고학습한다면분명좋은결과가있을것으로생각합니다.
-이진_휴맥스

예제는코틀린문법이주를이루고있으니책에서자바와코틀린의차이를명확히설명해주는부분인‘자바vs.코틀린’을우선살펴보면빠르게이해할수있습니다.이책을통해‘내가코틀린을공부해야하는가?’라는질문과관련해활용가능한선택지가많아졌다는점에감사합니다.
-박광현_(주)핀테크_개발팀

이책은안드로이드애플리케이션개발언어로알려진코틀린의기초와객체지향프로그래밍뿐아니라안드로이드프로그래밍부터웹프로그램에서의활용까지순수코틀린이라는언어에초점을맞추면서폭넓게다루고있습니다.책의중간중간에제시된자바언어와코틀린언어간의차이를비교해가며코틀린이라는언어를흥미롭게학습할수있을것입니다.
-김동원_한양사이버대학교응용소프트웨어공학과