* Contents
Part1: Introducing Kotlin
Chapter1: Kotlin: what and why ✔
Chapter2: Kotlin basics
Chapter3: Defining and calling functions
Chapter4: Classes, objects, and interfaces
Chapter5: Programming with lambdas
Chapter6: The Kotlin type system
Part2: Embracing Kotlin
Chapter7: Operator overloading and other conventions
Chapter8: Higher-order functions
Chapter9: Generics
Chapter10: Annotations and reflection
Chapter11: DSL construction
코틀린은 자바 플랫폼을 대상으로 한 신규 프로그래밍 언어이다.
코틀린은 간결하고, 안전하고, 실용적이며, 자바와 상호 호환이 가능하다.
서버 및 안드로이드 개발 외에도 많은 곳에서 사용하고 있다.
자바와 마찬가지로 코틀린은 정적 타입 언어(statically typed)이다.
즉, 컴파일 타임에 모든 표현식의 타입을 알 수 있다.
(런타임에 타입 참조를 하는 동적 타입 언어(dynamically typed)와 상반된다.)
따라서 코틀린은 컴파일 타임에 타입을 자동으로 식별하는 타입 추론(type inference)을 제공한다.
또한 코틀린은 nullable 타입을 지원한다.
컴파일 타임에 NullPointerException
을 방지해 더 안정적인 개발 환경을 제공한다.
코틀린은 함수형 프로그래밍의 특성과 객체지향 프로그래밍의 특성을 모두 지닌다.
함수형 프로그래밍의 주요 개념
1) 일급 함수(First-class functions): 함수를 값으로 취급해 변수에 저장하거나, 다른 함수의 인자값 및 리턴값으로 넘길 수 있다.
2) 불변성(Immutability): 생성 후 상태가 변하지 않는 객체를 다룰 수 있다.
3) 부수 효과의 제거(No side effects): 함수 scope 외부에 영향을 주거나 받지 않는 순수함수를 통해 항상 동일한 결과를 낼 수 있다.
함수형 프로그래밍적 특징을 통해 얻는 이점을 무엇일까?
첫째, 간결하다. (코틀린에서 일급 함수에 해당하는 람다를 통해 간결한 코드 작성이 가능하다.)
둘째, 불변성을 지니므로 멀티스레딩에 안전하다.
셋째, 부수 효과가 없으므로 테스트가 용이하다.
코틀린의 철학은 다음과 같다.