Kotlin이란 무엇인가
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에 도움을 줌