[ETC] Kotlin vs Java

ETC

아직까지는..

회사나 개인 프로젝트에서 사용하는 언어는 Kotlin보다는 Java입니다.
하지만 요즘 주변에서 Java만큼이나 Kotlin에 대해서 정보가 많이 들어옵니다.
아직 사용해보지 않은 Kotlin에 대해서 짧게나마 알아보고자 합니다.

Kotlin

Kotlin은 JVM, Android, Browser를 위한 정적 타입의 프로그래밍 언어입니다.
정적 으로 타입이 지정된다는 것은 Java와는 다른것입니다.

특징

타입 추론

Kotlin은 타입추론이 가능합니다.
어떤 변수에 값을 지정하는 것 만으로 그 변수가 어떤 형태인지를 유추해서 지정한다는 것 입니다.

1
var name = "SAWD"

간결해진 문법

Kotlin은 이 name을 문자열로 선언합니다.
세미콜론도 필요없고 한층 더 간결해진 문법입니다.

Null 체크

Java를 사용하면서 항상 따라다니는 NullPointException에서 해방될 수 있습니다.
접근하고자 하는 변수나 클래스가 언제 null인지 알 수 있으며 컴파일러가 이것을 확인하도록 합니다.

1
2
var name: String = "SAWD"
name = null // error
1
2
var name: String? = "SAWD"
name = null // ok

스마트 캐스팅

name의 타입을 확인한 후 String으로 캐스팅합니다.

1
2
3
if (name is String) {
return name.length
}

이외에

특이한 점은 Java와 함께 사용할 수 있다는 점이며 JVM으로 실행 할 수 있는 바이트 코드로 컴파일됩니다.
또한 Android IDE를 개발한 제트브레인에서 내놓은 언어인 만큼 Android Studio에서 클릭 몇번으로 Java에서 Kotlin으로 코드 컨버트가 가능합니다.
모두가 우려하는 Java와의 호환을 제트브레인은 “100% 가능하다”라고 설명했습니다.

마치며

현재 Android에서 Java로 개발하는 것 보다 코드의 양이 줄고 널 포인트에 대한 안정성 때문에 조금씩 무게가 옮겨가는 추세인듯 합니다.
조만간 저도 개인 프로젝트에서 Java대신에 Kotlin을 학습하여 적용해 볼 예정입니다.
작은 프로젝트를 진행해보고 소감을 적어 제가 느낀점을 공유 할 예정입니다.