안드로이드 생태계의 핫 이슈, 코틀린(Kotlin)

IT 이슈를 파헤치다|2018. 1. 19. 04:00

Key Point

  • Kotlin 소개
  • 왜 지금 Kotlin인가?
  • Kotlin이 안드로이드 생태계에 미칠 영향


Kotlin 소개

Kotlin은 지난해 5월 구글 I/O에서 안드로이드 공식 언어로 채택되면서 유명해졌습니다.

사실 안드로이드에서 Kotlin을 지원한지는 꽤 시간이 흘렀지만 이제야 핫한 언어로 자리잡게 되었습니다.

Kotlin은 벌써 발표된지 7년째 되는 언어로 Kotlin/JVM, Kotlin/JS, Kotlin/Native등 여러 환경에서 동작합니다. Kotlin을 만든 Jet Brain사는 Kotlin의 목표를 풀스택 웹 개발, Android와 iOS앱 개발 그리고 임베디드 IOT기기에도 사용할 수 있도록 하는 것으로 잡았습니다.
Jet Brains은 IntelliJ시리즈로 굉장히 유명한 IDE(통합 개발 환경) 개발사입니다. 구글에서 안드로이드 공식 개발 도구로 설정한 Android Studio도 Jet Brains사의 협력으로 만들어 졌습니다. Kotlin은 Android Studio 3.0버전부터 공식적으로 지원이 가능하게 되었습니다. Kotlin으로 개발을 하게 되면 최소한 개발 환경에 관련된 문제는 발생하기 어려울 것입니다.

Kotlin이 각광받는 이유를 보통 간결함, 코드 안정성 향상, 호환성때문이라고 합니다. 기존 Java를 활용해서 안드로이드 개발을 할 때에는 보일러 플레이트 코드(형식상 써야 하는 코드들)의 양이 굉장히 많았습니다. 이는 개발 생산성을 떨어트릴 뿐 아니라 유지 보수에 있어서도 좋은 영향을 주지 못합니다. Kotlin은 간결한 문법으로 이 문제를 해결했을 뿐만 아니라 Null Pointer를 없애 안드로이드에서 빈번하게 발생하는 Null Pointer Exception을 사라지게 만들었습니다. 이 또한 안드로이드 개발자들에게 매력적인 포인트라고 볼 수 있습니다.

확실히 Kotlin은 Java에 비해 빠르고 안정적인 안드로이드 어플리케이션을 개발하는데 유리해 보입니다.

하지만 왜 하필 지금일까요?
발표된지 6년이 지난 시점에서 Kotlin이 화제가 된 것에는 나름의 이유가 있을 것입니다.


왜 지금 Kotlin인가?

코틀린은 Android Studio를 만든 JetBrain사가 6년전에 만든 언어입니다.

코틀린이 꽤 오래전에 나온 언어임에도 최근에 와서야 이슈가 된 배경을 살펴볼 필요가 있습니다.

렘(Realm)의 보고서에 따르면 구글 I/O에서 코틀린을 안드로이드의 공식언어로 채택하면서부터 점유율이 엄청나게 늘어났습니다.

그럼 구글이 왜 만들어진지 6년이 지난 언어에 갑자기 관심을 가지게 된 것인지 살펴볼 필요가 있습니다.

구글은 오라클과 Java를 두고 기나긴 소송을 치르고 있습니다.

Java는 선마이크로 시스템에서 개발한 매우 대중적인 언어인데, 이 회사를 오라클이 인수하게 되면서 문제가 발생했습니다.

구글이 Java를 개조한 달빅VM(Dalvik)을 사용하기 때문입니다.

오라클은 Java가 공개된 언어이지만 모바일 영역에서는 저작권을 행사하고 있다고 입장을 표명했습니다.

구글이 안드로이드로 벌어들인 수익을 생각하면 오라클 입장에서는 소송을 제기할만 하다고 볼 수 있습니다.

어쨋거나 이런 부분 때문에 구글 입장에서는 곤란한 입장에 놓여있다고 볼 수 있습니다.

물론 구글에서는 자바 API를 사용하지 않고 오픈된 JDK를 사용하여 개발한 새로운 안드로이드 운영체제 안드로이드 N을 내놓으려고 하지만 이것이 답이 되기는 힘들어 보입니다.

이미 전세계 사람들이 사용하고 있는 기존 안드로이드 앱들과의 호환성 때문입니다.

이런 점에서 Kotlin은 충분히 매력적입니다.

Kotlin은 다음과 같은 특징을 가지고 있습니다.

  • JetBrain의 Kotlin은 JVM에서 돌아갑니다. 즉, 빌드를 하게 되면 JVM에서 실행할 수 있는 Bytecode를 생성합니다. 이 의미는 기존 안드로이드에서 사용하는 수 많은 Java API와 100% 호환된다는 것입니다.
  • 안드로이드 개발을 하다 보면 NullPointer Exception을 친구처럼 만나게 되는데, Kotlin에서는 이를 원천 봉쇄해 앱의 안정성을 높였습니다.
  • Kotlin은 안드로이드만을 위한 언어가 아닙니다. 서버 프로그래밍도 가능하고 Javascript과의 호환이 가능해 웹개발도 할 수 있습니다. 추후에는, Kotlin/Native로 iOS 개발도 가능하게 할 예정입니다. 뛰어난 확장성은 Kotlin의 매력 포인트라고 할 수 있습니다.
  • 개발 생산성이 뛰어납니다. 비효율적인 보일러 플레이트 코드가 많은 Java와는 다르게 이를 훨씬 깔끔하게, 간결하게 구현할 수 있습니다.

Kotlin이 안드로이드 생태계에 미칠 영향

새로운 언어를 도입한다는 것은 굉장히 고려할 부분이 많은 일입니다. 신생 언어로 제품을 개발하게 되면 해당 언어의 참고 문서나 지원이 끊기게 될 경우 매우 난감한 상황을 맞이할 수 있기 때문입니다. 심지어 유지 보수를 위한 개발자를 찾는 것도 힘들어질 수 있습니다. 서비스를 제공해야하는 기업 입장에서 이는 매우 크리티컬한 이슈가 될 수 있습니다.

안드로이드 생태계에서는 오랜 시간동안 Java가 군림해왔습니다. Java보다 더 개발 생산성이 좋고, 간결하며, 빠른 언어는 존재하지만 안드로이드 생태계에 적용될 수 있는지는 미지수입니다. 구글은 안드로이드의 차기 언어로 Go도 검토해 본 것으로 알려져있습니다. 하지만 오랜 시간동안 만들어진 다양한 API, 기존 어플리케이션과의 호환성을 고려했을 때 다른 언어를 퍼스트 클래스 랭귀지로 선정하는 것에 어려움이 존재했습니다.

Kotlin은 이 부분에서 매우 만족스러운 결과를 줄 수 있습니다. JVM위에서 동작되기 때문에 기존의 Java 코드가 모두 Kotlin으로 변환될 수 있고 정상적으로 작동할 수 있습니다. 특히, 개발사 Jet Brains은 구글이 공식 안드로이드 개발 환경으로 설정한 Android Studio 제작에 참여할 정도로 개발 언어와 개발 환경에 있어 뛰어난 수준을 지닌 회사입니다. 따라서 지원은 걱정이 없을 것으로 보입니다.

무엇보다 구글이 지난 구글 I/O에서 Kotlin을 공식 언어로 선정했다는 것이 큰 의미를 가집니다. 이후, Kotlin은 각광을 받기 시작했고 점유율이 많이 상승하게 되었습니다.

모바일 데이터베이스 개발 업체인 Realm에 따르면, 2016년 9월 안드로이드 개발환경의 5.1%만 Kotlin으로 개발되었습니다. 하지만 불과 1년만에 Kotlin은 14.3%를 기록하는 무서운 성장세를 보여주었습니다.

구글의 전폭적인 지지와 뛰어난 개발사의 안정적인 지원, 그리고 무엇보다도 Kotlin자체의 간결성과 뛰어난 개발 생산성으로 미루어 봤을 때 앞으로 Kotlin으로 안드로이드 생태계가 천천히 바뀔 것을 예상해 볼 수 있습니다.

댓글()