Chapter 1. Kotlin이란 무엇인가

코틀린을 배워야하는 이유를 찾아서

글쓰기에 앞서

이번 글은 우선 작가 본인이 Kotlin(이하 코틀린)을 배우기 위하여 기록 형식으로 작성하는 글이다.

그 이유를 돌아보면 코틀린이 베타버전을 넘어 정식 릴리즈가 되었음에도 불구하고 외국의 여러 다양한 서적들과 글들에 비해 한국에서는 이 트렌드를 발 맞추지 못하고 생각만큼 다양한 글들이 없었기 때문이다.

미디엄을 통해서 이번 매거진을 작성하여 많은 사람들이 코틀린에 쉽게 입문할 수 있기를 바란다. 또한 이번 매거진은 언제든지 챕터가 수정될 수 있으며 다양한 사람들이 이후에 참여하게 되어 내용이 방대해질 수도 있다는 점을 명시한다.

안드로이드가 곧 10살이다

안드로이드가 2018년으로 기준으로 10년을 맞이하게 된다 (사진 : https://developer.android.com)

안드로이드는 2008년 1.0 버전을 출시하여 현재 리눅스 커널을 기반인 모바일 플랫폼의 운영체제와 미들웨어 및 중요 애플리케이션이 포함된 소프트웨어 집합이다. 한국은 안드로이드가 유명해진 것은 갤럭시 S가 출시된 2010년부터이다.

다른 OS와 달리 안드로이드는 다음과 같은 특징 혹은 목표들을 가지고 있다.

  • 안드로이드 OS는 공개되어 있다. (Open Source)

안드로이드는 리눅스 커널 위에서 동작하는 만큼, 리눅스 커널의 제네럴 퍼블릭 라이센스를 따르고 있다. 이는 최신 기술들을 바탕으로 안드로이드의 영역을 자유롭게 확장할 수 있다. 또한 개발자 커뮤니티들이 함께 혁신적인 모바일 어플리케이션을 구축하듯 안드로이드 플랫폼은 지속적으로 진화할 수 있다.

  • 어플리케이션은 동일하게 창조되었다.

안드로이드는 핸드폰의 핵심 어플리케이션이나 서드파티(third-party) 어플리케이션을 구분하지 않는다. 광범위하게 사용자에게 제공되는 어플리케이션과 서비스들은 스마트폰의 기능에 동일하게 접근할 수 있도록 구성되어 있다. 안드로이드 플랫폼을 사용하는 기기에서 사용자들은 취향에 따라 모든 것들을 정의할 수 있다.

  • 어플리케이션의 경계가 존재하지 않는다.

안드로이드는 새롭고 혁신적인 어플리케이션을 구축할 수 있는 경계가 존재하지 않는다. 예를 들어 개발자들은 스마트폰에 있는 개인적인 정보와 기능들을 활용하여 사용자에게 더욱 유용한 경험을 제공할 수 있다.

  • 어플리케이션을 개발하기 쉽고 빠르다.

안드로이드는 풍부한 어플리케이션을 구축하는데 사용할 수 있는 광범위한 유용한 라이브러리들을 제공한다. 예를 들어 안드로이든 기기의 위치를 알 수 있또록 지원하여 P2P 기반으로 통신할 수 있는 풍부한 Social 어플리케이션을 지원한다.

또한 시간이 지난 만큼 안드로이드의 운영 체제 버전도 나날이 갈수록 발전되었다. 안드로이드가 정식으로 세상에 출시된 1.0 버전은 단순한 UI를 가지고 있었으며 기본적인 기능들과 어플리케이션들을 가지고 있었다. 또한 안드로이드가 한글 지원이 시작된 것은 1.5버전 컵케이크부터였다. 하지만 시간이 흘러 2017년 현재 최신 안드로이드 버전인 7.0버전 누가는 300만 개의 어플리케이션이 플레이스토어에 등록이 되어 있으며, 전세계 스마트폰 OS들 중에서 압도적으로 많은 85%의 사용자들을 차지하고 있는 OS가 되었다.

그 사이에 등장한 코틀린

JetBrains에서 탄생하게 된 Kotlin (사진 : https://kotlinlang.org/)

안드로이드가 발전하면서 재밌는 점은 IDE가 바뀌었다는 것이다. 기존에 안드로이드를 개발하기 위해서는 Eclipse를 이용해야 됬지만, 2014년 구글이 안드로이드 스튜디오를 발표하면서 IDE가 옮겨지게 되었다. 그리고 이 안드로이드 스튜디오는 Intellij IDEA라는 플랫폼을 이용하여 만든 것이다. 이를 만드는 회사는 JetBrains 라는 회사로서 다양한 IDE들을 제작하는 회사이다.

그리고 JetBrains에서 IDE뿐만이 아니라 프로그래밍 언어도 제작하고 있었는데 그것이 바로 코틀린이다. 코틀린이 세상에 나오게 된 해는 2011년으로 JetBrains가 코틀린을 제작하게 된 배경은 크게 2가지이다.

1번째는 코틀린을 사용함으로서 생산성이 증가되었으면 하는 기대가 있었다. 대표적으로 Java의 Null Pointer Exception 등의 오류 처리에서 문제가 있었으며 더욱 정확하게 프로그래밍을 표현하면서도 Java와의 호환성을 해치지 않는 언어를 희망하였다.

2번째는 코틀린을 만들어 IntelliJ IDEA의 판매가 더욱 호전되기를 희망하였다. 당연하게도 자사에서 만드는 언어를 출시함으로서 자사의 플랫폼과의 궁합을 강점으로 내세워 판매량을 늘려보기를 희망하였다고 한다.

그리고 결과적으로 IntelliJ IDEA는 안드로이드 스튜디오라는 모습도 갖추게 되면서 코틀린은 성공적으로 트랜드에 올라 설 수 있었다.

왜 코틀린을 배워야 할까

앞서 코틀린의 출시에 대해 설명하면서 대표적인 장점 2가지를 언급하였다. 1번째는 Java와의 호환성이 좋으며 Java의 단점을 보완한다는 점이며 2번째는 안드로이드 스튜디오와 찰떡궁합이라는 점이다. 또한 구글은 2017년 코틀린을 정식 지원한다고 발표하면서 안드로이드를 Java 이외의 언어로 제작하는 것에서의 부담감도 사라지게 되었다. 이런 점들로 미루어 볼 때 안드로이드를 코틀린으로 만들어 보는 것을 배워보기에 부족함은 없다고 생각한다.

참조 :

[1] https://developer.android.com/about/index.html

[2] http://www.businessinsider.com/smartphone-market-share-android-ios-windows-blackberry-2016-8

[3] http://www.zdnet.co.kr/news/news_view.asp?artice_id=20170212013636

[4] http://blog.jetbrains.com/kotlin/2011/08/why-jetbrains-needs-kotlin/