본문 바로가기
프로그래밍 놀이터/Kotlin, Coroutine

[android] Kotlin (코틀린) 이 뭐야?

by 돼지왕 왕돼지 2017. 7. 25.
반응형

 [android] Kotlin (코틀린) 이 뭐야?


참조 : https://realm.io/kr/news/android-kotlin/


android kotlin, annotation processing, boilerplate, bytecode, Classpath, getter, Go, google, intelli j, ios swift, Java, java + kotlin, java kotlin conversion tool, java 소송, jetbrains, jvm, jvm 기반 언어, Kotlin, kotlin basic, kotlin tutorial, kt, NullPointerException, oracle, plugin, plugin 설정, preference, proguard, Setter, Swift, what is kotlin, [android] Kotlin (코틀린) 이 뭐야?, 모듈 추가, 자유성, 제약사항, 코틀린 확장자, 편리성



-

kotlin 이 등장하기 시작한 것은, Oracle 과 Google 의 Java 에 대한 소송으로부터 야기된다.

언젠가 Google 이 패소하거나, 소송에 지쳐 Java 를 버릴 수 있다는 판단 하에 사람들은 대안이 될 수 있는 언어를 찾는다.

구글의 새로운 언어인 Go 가 그 위치를 차지한다는 이야기가 있었지만, 기존 android 가 Java 와 JVM 기반이기 때문에 이는 신빙성이 낮고..

JVM 기반에서 작동할 수 있는 Kotlin 이 유력한 대안으로 이야기되고 있다가.. 이제 정식으로 공식 언어가 되었다!!



-

Kotlin 은 Jetbrains( Intelli J 만든 회사 ) 에서 만든 JVM 에서 도는 개발언어이다.

즉 Kotlin 을 compile 하면 JVM 에서 돌 수 있는 bytecode 가 생성된다는 것이다.

다시 말해 Kotlin 은 Java 와 100% 호환이 되며, Java -> Kotlin conversion 도구들도 제공되고 있다.



-

언어 자체는 Swift 와 아주 흡사하다.

Swift 가 가장 영향을 많이 받은 언어로 꼽힐 정도이다.

즉 Kotlin 이 android 기본 언어가 되었고 & iOS 개발이 Swift 기반이 확고해지고 있기 때문에 두 가지 platform 에 대한 코딩이 훨씬 쉬워졌다고 볼 수 있다.



-

Kotlin 의 큰 장점 중 하나는 Null Pointer Exception 에서 자유롭다는 점이다.

또한 자바의 boilerplate 코드들을 줄여 간결히 코드를 작성할 수 있다고도 한다.

getter/setter 의 번거로움도 줄여주고, 함수를 class 밖에서 선언할 수도 있는 편리성과 자유성도 준다.



-

자바를 100% 지원한다는 것이 모든 것이 100% 잘 작동한다는 이야기는 아니다.

이론적으로 호환이 된다는 것이다.

실제 annotation processing 등에는 제약사항도 있고, proguard 에서도 예외 처리를 해주어야 하는 등 아직 손이 많이 간다고 한다.

( 최신 버전에서는 어떻게 개선되었는지 모르겠당, 이는 알아서 잘 찾아보세용! )



-

실제 안드로이드 프로젝트에서 Java 와 Kotlin 소스를 섞어서 사용할 수 있다.

이를 위해 Preferences, Plugin 을 통해 Kotlin 이 설치되어야 하며, 빌드스크립트에 classpath, plugin 설정, 모듈 추가 등의 작업이 필요하다.

자세한 설정은 아래 링크 참조

http://kunny.github.io/lecture/kotlin/2016/03/08/android_with_kotlin_part_1/


Kotlin 에서 자연스럽게 Java 클래스나 메소드를 호출할 수 있다.

( 공식 언어로 채택되면서 더 쉽게 세팅할 수 있게 변하지 않았을까 혹은 변하지 않을까 생각한다. )



-

코틀린의 확장자는 kt 이다.




반응형

댓글