이미 소장하고 있다면 판매해 보세요.
|
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 웹 애플리케이션 개발 찾아보기 |
강성윤의 다른 상품
|
저는 이 책을 "완전체"라고 표현하고 싶습니다. 기본적인 이론에 그치지 않고 응용까지 담겨 있기 때문인데요. 기존에 자바로 개발하던 소스, 자바스크립트나 스프링 프레임워크로 개발하던 소스를 코틀린으로 어떻게 작성하는지 볼 수 있었던 게 아주 좋았습니다. 이 책을 보려는 사람은 대부분 자바 기술을 기반에 두고 개발하는 분들일 겁니다. 그래서인지 자바 개발자를 배려한 구성도 눈에 띄었습니다. 그렇지만 저는 C와 C++를 조금 다룰 수 있고 자바는 깊게 알지 못하는 상황에서 이 책으로 처음 코틀린 프로그래밍을 접했습니다. 그런데 책을 보는 데 큰 무리는 없었습니다. 제 생각으로는 기본적인 프로그래밍 경험은 있어야 이 책을 볼 수 있을 것 같습니다. 그리고 자바 프로그래밍 경험이 있다면 더 좋고, 스칼라나 스위프트처럼 최근에 나온 프로그래밍 언어의 경험이 있다면 더 쉽게 접근할 수 있지 않을까 싶습니다. 물론, 함수형 프로그래밍을 이해하고 활용하는 게 쉽지 않았지만, 책에서 여러 사례를 통해 반복해서 설명해주니 조금씩 선명해지는 느낌이 들었습니다. 아직 완벽하게 적용하기에는 어려움이 있겠지만 개괄적인 내용은 파악했으니 한 번 더 읽거나 다른 책을 참고해서 진행하던 프로젝트에 적용해보려고 합니다. 또 한 가지는 말투가 딱딱하지 않고 현장에서 강의를 듣는 듯한 느낌이어서 좋았습니다. 설명 방식이나 예제, 그림들을 보면 저자의 정성이 느껴진다고 할까? 아무튼 저는 이런 방식이 참 좋았는데요. 예를 들어 어떤 예약어나 개념을 설명할 때 그것이 나오게 된 배경을 설명해주는데, 먼저 독자가 알만한 간단한 예제로 에러가 발생하거나 불편한 코드를 보여주고 이를 코틀린 프로그래밍 기법들로 어떻게 개선하는지 보여줍니다. "이건 이거다"가 아니라 "이건 이래서 이거이므로 이렇게 쓴다"의 차이라고 할까? 이 기법이 왜 나왔는지 어떨 때 사용하는지 직접 체득하면서 배우니 확실히 받아들여지는 속도와 깊이가 다른 것 같습니다. 제가 처음 경험해본 코틀린은 JVM에서 돌아가는 건 자바와 같지만, 많은 부분에서 확실히 자바와는 다른 언어라는 생각이 들었습니다. 특히 코드의 안전성과 생산성 면에서 더 나은 선택일 수 있다고 생각했습니다. 만일 코틀린 프로그래밍을 체계적으로 정리하고 싶거나 현업에서 코틀린을 적용해보려는 계획이 있다면, 아니면 현대적 프로그래밍 기법들을 경험해보고 싶다면 이 책이 많은 도움이 될 것으로 확신합니다. 최소한 후회하지는 않을 것 같습니다. - 우연히 먼저 보게 된 「몽테크리스토」님 서평 중 ※ 실습 공유 파일 및 책 예제 - http://kkangsnote.tistory.com/ - https://github.com/kkangseongyun/kkangs_kotlin ※ 동영상 강의 https://goo.gl/y2Hqp1 |