Kotlin in Action - Chapter 1) Kotlin: what and why

7hong13·2023년 6월 17일
0

Kotlin in Action

목록 보기
1/3
post-thumbnail
* 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 외부에 영향을 주거나 받지 않는 순수함수를 통해 항상 동일한 결과를 낼 수 있다.

함수형 프로그래밍적 특징을 통해 얻는 이점을 무엇일까?

첫째, 간결하다. (코틀린에서 일급 함수에 해당하는 람다를 통해 간결한 코드 작성이 가능하다.)
둘째, 불변성을 지니므로 멀티스레딩에 안전하다.
셋째, 부수 효과가 없으므로 테스트가 용이하다.

코틀린의 철학

코틀린의 철학은 다음과 같다.

  • 실용성
    : 개발자들이 기존에 겪던 문제들을 쉽게 해결할 수 있도록 언어 및 IDE 차원에서 지원한다.
  • 간결함
    : 간단하고 읽기 쉬운 코드를 지향한다.
  • 안전성
    : nullability 개념 도입을 통해 컴파일 타임에 여러 에러를 방지한다.
  • 상호 호환성
    : 기존 자바 프로젝트 및 라이브러리와 제한 없이 호환 가능하다.
profile
안드로이드/코틀린

0개의 댓글