깡샘의 코틀린 프로그래밍
도서명:깡샘의 코틀린 프로그래밍
저자/출판사:강성윤/루비페이퍼
쪽수:706쪽
출판일:2018-03-05
ISBN:9791186710272
목차
Part 01 코틀린 시작하기
01 _ 코틀린 이해하기
1.1. 코틀린이란?
1.1.1. 코틀린 소개
1.1.2. 코틀린 특징
1.2. 코틀린으로 작성 가능한 프로그램
1.2.1. 자바를 코틀린으로
1.2.2. 안드로이드를 코틀린으로
1.2.3. 자바스크립트를 코틀린으로
1.2.4. 서버 측 웹 애플리케이션을 코틀린으로
1.2.5. 스프링 부트를 이용하는 Restful 서비스를 코틀린으로
02 _ 코틀린 개발환경
2.1. 코틀린 개발환경 - IntelliJ
2.1.1. IntelliJ 설치
2.1.2. IntelliJ에서 코틀린 프로그램 작성
2.1.3. IntelliJ 이용 기법
2.1.4. IntelliJ에서 그레이들을 이용한 개발환경
2.1.5. IntelliJ에서 메이븐을 이용한 개발환경
2.2. 코틀린 개발환경 ? 안드로이드 스튜디오
2.2.1. 안드로이드 스튜디오 설치
2.2.2. 안드로이드 스튜디오에서 코틀린 프로그램 작성
2.2.3. AVD 설정 및 안드로이드 프로그램 실행
2.3. 코틀린 개발환경 - 이클립스
2.4. 코틀린 개발환경 ? CLI(Command Line Interface)
03 _ 코틀린 기본 작성법
3.1. 코틀린 파일 정의
3.1.1. 일반 파일과 클래스 파일
3.1.2. 파일의 구성요소
3.2. 패키지
3.2.1. 패키지 기본 개념 package
3.2.2. 가상 패키지
3.2.3. 변수/함수 임포트 import
3.2.4. 기본 패키지
3.2.5. 이름 변경해서 임포트하기 as
04 _ 변수와 함수
4.1. 변수 선언 및 초기화
4.1.1. 변수 선언법 val, var
4.1.2. 변수 초기화
4.1.3. null이 될 수 있는 변수와 null
4.1.4. 상수변수 선언 const
4.2. 함수 사용법
4.2.1. 함수 선언 fun
4.2.2. 함수 오버로딩
4.2.3. 기본 인수와 명명된 인수
4.2.4. 중위 표현식 infix
4.2.5. 가변 인수 vararg
4.2.6. 재귀함수 tailrec
Part 02 코틀린 기초 프로그래밍
05 _ 데이터 타입
5.1. 기초 데이터 타입
5.1.1. 숫자 타입 Int, Long, Short, Double, Float
5.1.2. 논리, 문자와 문자열 타입 Boolean, char, String
5.1.3. Any 타입
5.1.4. null 허용 타입
5.1.5. Any, Any? 타입
5.1.6. Unit과 Nothing
5.1.7. 타입 확인과 캐스팅 is
5.2. 컬렉션 타입
5.2.1. 배열 Array
5.2.2. List, Set, Map
5.2.3. 이터레이터 Iterator
06 _ 흐름 제어 구문과 연산자
6.1. 조건문
6.1.1. if 표현식
6.1.2. when 표현식
6.2. 반복문
6.2.1. for 반복문 in, indices
6.2.2. while 반복문
6.2.3. break와 continue 문, 그리고 라벨
6.3. 연산자
6.3.1. 대입 연산자 =
6.3.2. 산술 연산자 +, -, *, /, %
6.3.3. 전개 연산자 *
6.3.4. 복합 대입 연산자 +=, -=, *=, /=, %=
6.3.5. 증감 연산자 ++, --
6.3.6. 논리 연산자 &&, ||, !
6.3.7. 일치 연산자 ==, !=, ===, !==
6.3.8. 비교 연산자 <, >, <=, >=
6.3.9. 범위 연산자 ..
6.3.10. Null 안전 관련 연산자 ?, ?:, ?., !!
6.4. 연산자 재정의
6.4.1. 연산자 재정의 방법 operator fun
6.4.2. 연산자 함수
07 _ 클래스
7.1. 클래스 선언 및 생성
7.1.1. 클래스 선언 class
7.1.2. 객체 생성
7.2. 생성자
7.2.1. 주 생성자 constructor
7.2.2. 보조 생성자 constructor
7.2.3. this( )에 의한 생성자 연결
08 _ 프로퍼티
8.1. 코틀린에서 프로퍼티 이용
8.1.1. 프로퍼티란?
8.1.2. 사용자 정의 프로퍼티
8.1.3. 주 생성자와 프로퍼티
8.2. 프로퍼티 초기화
8.2.1. 초기화 블록에서 초기화 init
8.2.2. null 허용으로 선언
8.2.3. 늦은 초기화 lateinit
8.2.4. 초기화 미루기 by lazy
8.3. 프로퍼티 값 변경 감지
Part 03 코틀린과 객체지향 프로그래밍
09 _ 상속
9.1. 코틀린에서의 상속
9.1.1. Any 클래스
9.1.2. 상속을 통한 클래스 정의 open
9.2. 오버라이드
9.2.1. 함수 오버라이드 override
9.2.2. override 예약어
9.2.3. 프로퍼티 오버라이드
9.2.4. 상위 클래스 멤버 접근 super
9.3. 상속과 생성자
9.3.1. 상위 클래스 생성자 호출
9.3.2. 상하위 생성자의 수행 흐름
9.4. 상속과 캐스팅
9.4.1. 스마트 캐스팅
9.4.2. as를 이용한 캐스팅
9.4.3. null 허용 객체의 캐스팅 as?
9.5. 접근 제한자
9.5.1. 접근 제한자란?
9.5.2. 접근 제한자와 접근 범위
9.5.3. 프로퍼티와 생성자의 접근 제한
9.5.4. 상속 관계와 접근 제한자
10 _ 추상 클래스와 인터페이스
10.1. 추상 클래스
10.1.1. 추상 클래스 선언 abstract
10.1.2. 추상 클래스 이용
10.2. 인터페이스
10.2.1. 인터페이스 선언 및 구현 interface
10.2.2. 인터페이스와 프로퍼티
10.2.3. 오버라이드 함수 식별
11 _ 다양한 코틀린 클래스
11.1. 데이터 클래스
11.1.1. 데이터 클래스란? data
11.1.2. 데이터 클래스의 함수
11.2. Enum 클래스
11.2.1. 열거형 클래스 선언 및 이용 enum
11.2.2. 익명 클래스 이용
11.3. Sealed 클래스
11.4. Nested 클래스 inner
11.5. Object 클래스
11.5.1. object를 이용한 익명 내부 클래스 정의
11.5.2. 타입 명시로 object 이용
11.5.3. object 선언
11.5.4. companion 예약어
Part 04 코틀린과 함수형 프로그래밍
12 _ 함수형 프로그래밍과 람다
12.1. 함수형 프로그래밍이란?
12.1.1. 함수형 프로그래밍 정의
12.1.2. 함수형 프로그래밍의 원칙
12.1.3. 코틀린에서 일급 객체로서의 함수
12.2. 람다 표현식
12.2.1. 람다 표현식이란?
12.2.2. 함수 타입
12.2.3. it을 이용한 매개변수 이용
12.2.4. 멤버 참조 이용
13 _ 고차 함수와 인라인 함수
13.1. 고차 함수
13.1.1. 고차 함수란?
13.1.2. 고차 함수와 함수 타입 매개변수
13.1.3. 고차 함수와 함수 반환
13.1.4. 함수 참조와 익명 함수 이용
13.1.5. 코틀린 API의 유용한 고차 함수run( ), apply( ), let( ), with( )
13.2. 인라인 함수 inline
13.2.1. 인라인 함수란?
13.2.2. 노인라인 noinline
13.2.3. 논로컬 반환
13.2.4. 라벨로 반환
13.3. 클로저
14 _ 컬렉션 타입과 람다
14.1. 집합 연산 함수
14.1.1. forEach( ), forEachIndexed( )
14.1.2. all( ), any( )
14.1.3. count( ), find( )
14.1.4. reduce( ), reduceRight( ), fold( ), foldRight( )
14.1.5. max( ), maxBy( ), min( ), minBy( )
14.1.6. none( ), sumBy( )
14.2. 필터링 함수
14.2.1. filter( )
14.2.2. filterNot( ), filterNotNull( )
14.2.3. drop( ), dropWhile( ), dropLastWhile( )
14.2.4. slice( ), take( ), takeLast( ), takeWhile( )
14.3. 매핑 함수
14.3.1. map( ), mapIndexed( )
14.3.2. groupBy( )
14.4. 요소 함수
14.4.1. contains( )
14.4.2. elementAt( ), elementAtOrElse( ), elementAtOrNull( )
14.4.3. first( ), firstOrNull( ), last( ), lastOrNull( )
14.4.4. indexOf( ), indexOfFirst( ), indexOfLast( )
14.5. 정렬 함수
14.5.1. reversed( )
14.5.2. sorted( ), sortedBy( ), sortedDescending( ), sortedDescendingBy( )
Part 05 코틀린의 다양한 기법 활용
15 _ Null 안전성과 예외 처리
15.1. Null 안전성
15.1.1. Null 안전성이란?
15.1.2. Null 허용과 Null 불허
15.1.3. Null 확인 연산자 ?.
15.1.4. 엘비스 연산자 ?:
15.1.5. 예외 발생 연산자 !!
15.1.6. 안전한 캐스팅 as?
15.2. 예외 처리
15.2.1. try-catch-finally 구문으로 예외 처리
15.2.2. 예외 발생시키기 throw
16 _ 클래스 확장
16.1. 확장의 원리
16.1.1. 확장이란?
16.1.2. 정적 등록에 의한 실행
16.2. 프로퍼티와 컴패니언 오브젝트 확장
16.2.1. 프로퍼티 확장
16.2.2. 컴패니언 오브젝트의 확장 companion
16.3. 확장 구문의 위치에 따른 이용
16.3.1. 최상위 레벨에 작성
16.3.2. 다른 클래스 내에 작성
16.3.3. 익스텐션 리시버와 디스패치 리시버의 함수명 중복
17 _ 제네릭
17.1. 제네릭의 이해
17.1.1. 제네릭이란?
17.1.2. 제네릭 선언 및 이용
17.2. 제네릭 제약
17.2.1. 타입 제약
17.2.2. Null 불허 제약
17.3. Variance
17.3.1. Variance란?
17.3.2. covariance out
17.3.3. contravariance in
17.4. 타입 프로젝션
17.4.1. 이용 측 Variance
17.4.2. 스타(*) 프로젝션
17.5. 실행 시점의 제네릭
17.5.1. 제네릭과 as, is 이용
17.5.2. 인라인 함수와 reified
17.6. Unit, Nothing 타입
17.6.1. Unit 타입
17.6.2. Nothing 타입
18 _ 리플렉션과 어노테이션
18.1. 리플렉션
18.1.1. 리플렉션 이해
18.1.2. 클래스 레퍼런스
18.1.3. 함수 레퍼런스와 프로퍼티 레퍼런스
18.2. 어노테이션
18.2.1. 어노테이션 작성 및 이용 annotation
18.2.2. 어노테이션 설정
18.2.3. 어노테이션 적용 대상 지정
18.2.4. 자바 어노테이션 이용
19 _ 코틀린의 다양한 기법
19.1. 델리게이션
19.1.1. 델리게이션 클래스
19.1.2. 델리게이션 프로퍼티
19.2. SAM 전환
19.2.1. 자바에서 인터페이스 활용
19.2.2. 코틀린에서 SAM 활용
19.3. 타입 에일리어스 typealias
Part 06 코틀린 실전 응용 - 안드로이드 앱 개발
20 _ 안드로이드 앱 개발의 이해
20.1. 개발 디렉터리와 파일 구조
20.1.1. 앱의 디렉터리와 파일
20.1.2. R.java의 이해
20.1.3. 그레이들(gradle) 파일
20.2. Hello World 앱 코드 분석
20.2.1. AndroidManifest.xml
20.2.2. MainActivity.kt
20.2.3. activity_main.xml
21 _ 안드로이드 UI 프로그래밍
21.1. 기본적인 UI 프로그래밍 방법
21.1.1. 액티비티-뷰 구조
21.1.2. UI 프로그램 작성 방법: 코틀린 코드 VS 레이아웃 XML
21.2. 뷰의 기초 속성
21.2.1. id 속성
21.2.2. layout_width, layout_height 속성
21.2.3. visibility 속성
21.3. 조금 더 코틀린답게 - Kotlin Android Extension
22 _ 레이아웃 및 사용자 이벤트 처리
22.1. Layout 클래스
22.1.1. LinearLayout
22.1.2. RelativeLayout
22.2. 사용자 이벤트 처리
22.2.1. 이벤트 프로그램 구조
22.3. 조금 더 코틀린답게 - SAM 전환
23 _ DBMS와 RecyclerView
23.1. SQLite을 이용한 영속화
23.1.1. SQLiteDatabase 클래스
23.1.2. SQLiteOpenHelper 클래스
23.1.3. insert( ), query( ), update( ), delete( ) 함수 이용
23.2. RecyclerView
23.2.1. RecyclerView 소개
23.2.2. Adapter, ViewHolder
23.2.3. LayoutManager
23.2.4. ItemDecoration
24 _ TODO 앱 개발
24.1. TODO 앱 소개
24.1.1. 앱의 기능
24.1.2. 사용 기술
24.2. TODO 앱 개발
Part 07 코틀린 실전 응용 - 웹 애플리케이션 개발
25 _ 자바스크립트 개발을 위한 코틀린
25.1. 자바스크립트 이해
25.1.1. 자바스크립트 개발 환경에 대한 이해
25.1.2. 자바스크립트 개발 언어
25.2. 자바스크립트를 위한 코틀린 개발환경
25.2.1. IntelliJ에서 Gradle을 이용한 자바스크립트 개발환경
25.2.2. Command Line을 이용한 자바스크립트 개발
25.3. 자바스크립트를 위한 코틀린 기법
25.3.1. dynamic 타입
25.3.2. js( ) 함수 이용
25.3.3. external로 자바스트립트 API 이용
25.4. 자바스크립트에서 코틀린 소스 이용하기
25.4.1. 모듈명으로 코틀린 소스 이용
25.4.2. @JsName 어노테이션 이용
26 _ 코틀린으로 자바스크립트 웹 애플리케이션 개발
26.1. 프런트엔드 웹 애플리케이션
26.1.1. DOM Node 핸들링
26.1.2. AJAX 프로그래밍
26.2. DSL을 위한 kotlinx-html-js 라이브러리 이용
26.2.1. kotlinx-html-js 라이브러리 소개
26.2.2. kotlinx-html-js를 이용한 DOM Node 동적 생성
26.3. NodeJS로 백엔드 웹 애플리케이션 개발
26.3.1. NodeJS와 Express 모듈의 이해
26.3.2. 코틀린으로 작성하는 NodeJS 프로그램
27 _ 코틀린으로 스프링 프레임워크 개발
27.1. 스프링 부트로 개발환경 구축하기
27.2. 코틀린으로 개발하는 스프링 프로그램
27.2.1. 스프링 IOC - 의존성 주입
27.2.2. 스프링 AOP - 관점지향 프로그래밍
27.2.3. 스프링 MVC
27.3. TODO 웹 애플리케이션 개발
27.3.1. 애플리케이션 소개
27.3.2. 사용 기술
27.3.3. TODO 웹 애플리케이션 개발
찾아보기