Binary World

Kotlin이란 무엇인가 본문

개발자의 길/Kotlin

Kotlin이란 무엇인가

모쿠 2019. 5. 27. 14:05

1. 코틀린(Kotiln)?

IntelliJ IDEA의 개발사 JetBrains에서 2011년에 공개한 프로그래밍 언어.

JVM(Java Virtual Mechine) 기반의 언어이며, Java와의 상호 운용이 100% 가능.

안드로이드, 스프링 프레임워크, 톰캣, JavaScript, Java EE, HTML5, iOS, 라즈베리 파이 등을 개발할 때 사용 가능.

2017년 구글이 안드로이드 공식 언어로 채택함으로써 관심이 증가하게 되었음.

 

2. 왜 코틀린을 사용하는가?

- 간결함 : 상용구 코드의 양을 대폭적으로 줄여줌

getters, setters, equals(), hashCode(), toString(), copy() 함수들을 포함한 POJO(Plain Old Java Object)를 한 줄에 생성:

data class Customer(val name: String, val email: String, val company: String)

람다식을 사용하여 목록 필터링:

val positiveNumbers = list.filter { it > 0 }

싱글톤 객채를 생성:

object ThisIsASingleton { val companyName: String = "JetBrains" }

 

- 안전함 : 'null pointer exceptions'와 같은 전체 클래스의 에러를 방지

NullPointerExceptions 제거하여, 실수를 방지

var output: String
output = null   // Compilation error

null 입력 가능 타입에서 실수로 실행되는 것을 방지

val name: String? = null    // Nullable type
println(name.length())      // Compilation error

타입이 올바른지 확인하면, 컴파일러가 자동 캐스팅을 실행

fun calculateTotal(obj: Any) {
    if (obj is Invoice)
        obj.calculateTotal()
}

- 상호 운용성 : JVM, Android, Browser 등을 위한 라이브러리에 강점이 존재

JVM에 존재하는 라이브러리를 사용하면, 100% 호환 가능:

import io.reactivex.Flowable
import io.reactivex.schedulers.Schedulers

Flowable
    .fromCallable {
        Thread.sleep(1000) //  imitate expensive computation
        "Done"
    }
    .subscribeOn(Schedulers.io())
    .observeOn(Schedulers.single())
    .subscribe(::println, Throwable::printStackTrace)


JVM 또는 JavaScript을 대상으로 가능. 코틀린으로 작성하고 게재할 곳을 결정 가능

import kotlin.browser.window

fun onLoad() {
    window.document.body!!.innerHTML += "<br/>Hello, Kotlin!"
}

- 도구 친화적 : JAVA IDE 또는 Build를 Command Line에서 선택 가능

JetBrain에서 언어의 Tooling에 도움을 줌 

 

'개발자의 길 > Kotlin' 카테고리의 다른 글

제어 흐름(Control Flow)  (0) 2019.05.28
패키지와 임포트(Packages and Imports)  (0) 2019.05.28
기본 타입(Basic Type)  (0) 2019.05.28
기본 구문(Basic Syntax)  (0) 2019.05.28
코틀린 개발환경 구축 및 출력  (0) 2019.05.27
Comments