1 minute read


새로 개발공부를 시작하며 무엇을 공부할까 고민하던 차에 그동안 스크립트 기반의 하이브리드 앱만 만들어왔던지라 100% 네이티브 앱을 만들어보고자 AOS 공부를 하기로 마음먹었다.
AOS 개발 언어는 JAVA와 Kotlin 두 가지가 있었지만 이왕 하는거 처음부터 맨땅 헤딩하는 느낌으로 시작해보자는 생각으로 Kotlin에 대해 공부하려 한다. 따라서 Kotlin에 대해 공부하기 전에 Kotlin은 어떤 장점이 있고, 왜 공부해야 하는지에 대해 알아보았다.


Kotlin이란 무엇인가?



Kotiln은 2011년도에 ‘JetBrains’라는 회사에서 공개한 안드로이드 개발을 위해 만든 프로그래밍 언어다.
JVM기반의 언어이며 JAVA와 유사하지만 문법이 더 간결하고 여러가지 기능을 추가하였다. 기존 JAVA언어를 보완 및 대체하기 위해 만들어졌는데 덕분에 JAVA와 상호 운용이 100% 지원되며 기존에 자바로 개발하던 프로그램은 모두 코틀린으로 개발할 수 있다.


Kotlin의 장점?

1. 구글에서 지정한 공식 언어이다.

무슨 말이 더 필요할까? 구글에서 공식 채택했다는 것 하나로도 공부할 가치가 충분하다고 생각한다.
모바일 시장은 AOS와 IOS가 서로 양분하고 있다고 봐도 될 정도다. 세계 모바일 시장의 절반을 차지하고 있는 AOS의 대표 구글에서 Kotlin을 선택했다는 것은 지금 당장 공부를 시작해서 현업에 뛰어들어도 향후 몇 십년간은 밥줄 걱정하지 않고 살아갈 수 있다는 소리다. 물론 그만큼 트렌트에 뒤쳐지지 않아야겠지만 말이다.
또한 안드로이드 스튜디오 3.0에서 Kotlin 플러그인을 바로 다운로드해서 사용할 수 있게 된 것도 큰 장점이라고 생각한다.

2. 문법이 간결하고 사용하기 편하다.

Kotlin은 JAVA에 비해 굉장히 간결한 문법을 제공한다. 타입체크, 자동 형변환 등이 가능하다. in과 Range문이 있고, switch/case가 whend->으로 대체되었다.
문법이 간결해서 복잡한 구문 없이 직관적으로 코드를 작성할 수 있기 때문에, 입문자 입장에선 더 쉽게 개발을 시작할 수 있을 것 같다.
JAVA에 비해 역사가 굉장히 짧지만 앞서 말한것 처럼 기존의 JAVA 언어를 보완하고 대체하기 위해 탄생한 문법인 만큼 사용성이 훨씬 뛰어나다고 말할수 있다.

3. JAVA와 100% 호환이 가능하다.

JAVA와 완전 호환이 가능하다는 것은 정말 큰 장점이다. JAVA는 깊은 역사만큼 수많은 오픈 라이브러리가 존재하는데 이것들도 전부 사용이 가능하다는 소리다.
또한 한 프로젝트 안에 자바파일과 코틀린파일이 함께 들어있더라도 전혀 문제될 것이 없다. 덕분에 기존 JAVA기반의 프로젝트들도 다시 개발할 필요없이 Kotlin파일만 추가해서 유지보수가 가능하다.

4. Null Safe 언어다.

JAVA로 개발을 하면 NPE(NullPointException) 대비를 위해 null 값을 고려해야 한다. 하지만 Kotlin은 Nullable과 Non-nullable 개념을 갖고 있기 때문에, null이 발생하지 않도록 해준다. 단, JAVA 라이브러리를 사용한다면 NPE가 발생할 수도 있다.


위의 장점 말고도 다른 장점들이 더 있겠지만 포스팅할 만한 뚜렷한 기능들을 더 알게 된다면 그때 추가하는 걸로 하기로 하자.
단점도 존재한다. 대표적으로 JAVA보다 빌드 속도가 느리다는 건데, 컴파일 시, JAVA로 변환하고 바이트 코드로 변환하기 때문이라고 한다. 어쨌든 앞으로 공부하면서 하나씩 알아가봐야겠다.