[Kotlin in Action] What is Kotlin & Why Kotlin?

d4v1d·2022년 4월 11일
0

Kotlin

목록 보기
4/4

개요

[Kotlin in Action]을 읽고 배운 내용을 정리한 포스트입니다. 👻

What is Kotlin?

코틀린 맛보기

main.kt

data class Person( // Kotlin이 제공하는 data class
	val name: String,
    val age: Int? = null, // Nullable type && default value
) // Constructor, Getter, Setter, toString 등을 따로 정의하지 않아도 된다!

fun main() {
    val persons = listOf(
        Person("david"),
        Person("karl", age = 29)
    )
    
    // lambda expression && Elvis operator
    val oldest = persons.maxByOrNull { it.age ?: 0 }
    
    println("oldest: $oldest")
}

Output

oldest: Person(name=karl, age=29)

주요 특성

  • 웹 애플리케이션 백엔드, 안드로이드 기반 모바일 애플리케이션 등 자바가 실행되는 모든 곳에 활용 가능
  • 정적 타입 지정 언어 모든 프로그램의 구성 요소의 타입을 컴파일 시점에 알 수 있고, 컴파일러가 타입을 검증함 (타입 추론Type inference)
  • 함수형 프로그래밍 Immutability & no side-effect
  • Apache 2 라이선스로 제공되는 무료 오픈소스

코틀린의 활용

  • 코틀린 서버 프로그래밍 기존 자바로 개발된 프로젝트를 코틀린으로 매끄럽게 이식할 수 있음
  • 코틀린 안드로이드 프로그래밍 높은 생산성, 애플리케이션의 안정성 및 신뢰성 향상

코틀린의 철학

  • 실용성 실제 문제를 해결하려는 피드백 + 편리한 개발 환경을 위한 IDE 지원
  • 간결성 불필요하게 반복되는 코드(ex. getter, setter)들을 코틀린이 묵시적으로 제공
  • 안전성 코틀린은 런타임에 NullPointerException이 발생할 수 있는 연산을 사용하는 코드를 금지함 + ClassCastException을 방지함
  • 상호운용성 자바 표준 라이브러리 클래스에 의존하여 대부분의 자바 코드와 완벽 호환됨

도구

코틀린 빌드 과정

Gradle, Maven 등의 빌드 도구를 이용하면 코틀린과 자바가 코드베이스에 함께 들어있는 혼합 언어 프로젝트를 빌드하고 실행할 수 있습니다. 둘 모두 애플리케이션을 패키지할 때 알아서 코틀린 런타임을 포함시킵니다.

Kotlin plugins (IntelliJ IDEA, Android Studio)
IntellJ IDEA나 안드로이드 스튜디오에는 코틀린 플러그인이 기본적으로 포함되어 있어 별도로 플러그인을 설치할 필요가 없습니다.

대화형 Shell
REPL(Read-Eval-Print Loop)을 지원하므로 kotlinc 명령을 line-by-line으로 실행할 수 있습니다.

Playground
http://try.kotl.in 에 접속하면 웹상에서 코틀린 코드를 작성하고 컴파일 & 실행 결과를 쉽게 확인해볼 수 있습니다.

Java-Kotlin Converter
IntelliJ IDEA의 Code > Convert Java File to Kotlin File을 선택하면 자바 파일을 통째로 코틀린으로 변환할 수 있습니다. 컨버터가 항상 최선의 코틀린 코드를 제공하지는 않지만 잘 작동하는 코틀린 코드를 알려주므로 자바로 구현한 기능 또는 파일을 코틀린으로 쉽게 번역하여 사용할 수 있습니다.

Why Kotlin?

  • 소스코드의 간결함, 타입 추론을 통한 안정성
  • 객체지향 + 함수형 프로그래밍
  • 서버 애플리케이션 개발에 잘 활용할 수 있음!
  • 안드로이드 개발 공식 언어
  • 무료 오픈소스
  • 실용적, 안전, 간결, 상호운용성

정리

Kotlin의 특성과 장점을 정리하였습니다. Kotlin을 통한 서버 애플리케이션을 개발할 때 위 특성을 이해하고 있다면 Kotlin 스타일 코드를 작성하는 데 도움이 될 것입니다! 😻

profile
데이터 엔지니어/백엔드 개발자 d4v1d의 개발 일지🐯

0개의 댓글