Android는 새 언어가 필요할까? Kotlin

구글과 오라클의 Java 소송전이 길어지면서 사람들은 Android 가 Java를 버릴지도 모른다는 생각에서 대안언어가 무엇이 있는지 관심을 가지기 시작했다. Google이 만든 언어인 Go 를 꼽는 사람도 있었고, 구글 내에서의 Go를 안드로이드에 쓰겠다는 일부 움직임도 있었지만, Java로 되어있는 엄청난 양의 API와의 호환성 때문에 불가능 하다고 이야기 하고 있다.

코틀린 (Kotlin)은 Scala등과 같이 자바가상머신(JVM) 언어에서 돌아가는 Jetbrains에서 만든 개발언어 이다. 다시말하자면, Kotlin을 컴파일 하면 JVM에서 돌아가는 bytecode를 생성해준다. Jetbrain은 요즘 개발자 사이에서 커다란 인기를 끌고있는 IntelliJ 시리즈 (Java, Python, Ruby, C, Javascript 등등 언어별 각각의 최적의 IDE를 제공)로 유명한 회사이고 최근에는 Android Studio 가 Jebrains의 IDE 플랫폼으로 제작되어 더욱 많이 알려졌다. 따라서 일단 Kotlin을 쓸때 IDE 걱정은 할필요 없다는 것이 첫번째 장점이다.

이런 개발 뉴스를 더 만나보세요

왜 Kotlin 인가?

Kotlin이 Android에서 Java의 대안언어로 각광받는 이유 중에 하나는 Java와 100% 호환이 된다는 점이다. 따라서 현재의 Android API들을 그대로 사용할 수 있고, 모든 Java 프레임웍 들을 사용 할 수 있다. 또한 Ant나 Maven, Gradle과 같은 빌드 시스템을 사용할 수 있다. 이로서 Java에서 Kotlin으로 넘어가는 가장 큰 장벽을 넘었다고 할 수 있다. 또한 Java 코드를 Kotlin코드로 변환하는 도구를 제공하고 있다.

Kotlin 에서 장점으로 내세우는 것 중에 하나는 Null pointer exception 에서 자유롭다는 점이다. Kotlin의 type 시스템은 Java의 가장 흔한 에러인 Null exception 에서 구해준다. 또한 자바의 boilerplate 코드들을 줄여 주고 간결한 코드를 작성할 수 있는 문법을 제공한다. getter/setter의 번거로움을 줄여주고 함수를 class 밖에서 선언할 수도 있는 등 편리성과 자유도를 준다. Functional programming 지원은 물론이고 새로 만들어진 언어이니 만큼 Java 에서 불편하게 사용했던 점들이 많이 개선되었다. 개발 도구로는 Commandline 컴파일러는 물론이고, IntelliJ또는 Eclipse 에 Kotlin 플로그인을 설치해서 사용할 수도 있다.

그리고..

Kotlin은 안드로이드 전용 언어는 아니다. 서버용 프로그램을 개발할 수도 있으며, Javascript로도 컴파일 되어 브라우져 상에서 실행할 수 있다. Kotlin 파일의 확장자는 .kt 이다. 한국 개발자들은 파일을 저장할때마다 여러가지 감정을 느낄 수 있다.

당장 JAVA에서 넘어가야 할까?

프로그래밍 환경이라는 것은 매우 민감하다. “Java와 100% 호환” 된다는 말이 오늘 안드로이드를 쓰는 개발자가 당장 내일부터 Kotlin 문법만 배우면 복잡한 의존성과 빌드 환경이 완벽하게 돌아간다는 뜻은 아니다. 실제로 annotation processing 을 지원한지 얼마 되지 않아 아직 제약사항이 남아있으며 proguard 에서도 예외 처리를 해주어야 하는 등 실 개발에서 아직 손이 가는 것은 사실이다. 하나의 언어가 탄생하는 과정은 그 언어를 둘러싼 생태계가 성숙해 가는 과정이다. 이는 관련 도구, 라이브러리, 문서, stackoverflow 질문들이 성숙해야 하고 관련 논쟁들 충분히 이루어져야 한다는 것이다. Kotlin은 빠르게 위 단계들을 거치고 있는 언어이다.

또한 Kotlin 은 아직 beta 버전이다. 2015년 7월 현재 0.12 버전이고 2015년 말에는 v1.0을 릴리즈 하는 것을 목표로 하고 있다. Kotlin 이 처음 발표된 것은 2011년이고 따라서 어느정도 이상의 성숙도를 가지고 있지만 v1.0까지는 언어와 stdlib 안정석이 계속 개선될 것이기 때문에 아직 커다란 프로젝트에 적용하기는 조심스럽기도 하다.

Kotlin은 순풍을 타고 있다

Apple이 Swift 를 통해서 더 개발자에게 친근한 문법의 언어를 제공하면서 계속 커뮤니티를 발전시키고 있고, Google 도 Android를 장기적으로 바라본다면 내심 더 쉬운 문법과 장점 많은 언어의 도입을 통해서 많은 개발자들이 Android 개발을 더 빠르고 쉽게 할 수 있도록 하고싶을 것이다. 물론 JAVA의 특허 문제도 해결하고 말이다. Apple이 Swift를 통해 iOS 개발자들에게 더 익숙한 문법과 새로운 기능을 제공하려 노력하는 것 처럼, Android 생태계에서는 Kotlin이 더 빠르고 쉽고 안정적인 개발을 도와주는 역할을 할 수 있으리라 기대해본다. 빠르게 성장하는 언어를 사용해 보는 것은 재미있는 일이다. Kotlin을 당장 브라우져 상에서 실행해 볼 수 있다.

컨텐츠에 대하여

이 컨텐츠는 저자의 허가 하에 이곳에서 공유합니다.


Realm Korea

Realm Korea Team

4 design patterns for a RESTless mobile integration »

close