안드로이드

그래서 코틀린은 왜 쓰는데?

하늘을난모기 2017. 11. 8. 18:09

Why use Kotlin?


이번 구글 I/O에서 안드로이드 스튜디오 3.0부터 코틀린을 공식적으로 안드로이드 언어로 지정했다.

자바도 잘 못쓰는데 Kotlin을 써야할까?


아쉽게도... 공식적으로 지정된 만큼


써.야.한.다.


그래도 장점, 단점, 써야하는 이유라도 알아두자.


코틀린 공식 홈페이지에는 다음과 같은 4개의 이유가 나와있다.

https://kotlinlang.org/


1. Concise (간결성)

2. Safe (안정성)

3. Interoperable (상호운용가능성)

4. Tool-friendly (도구 친화성)


하나씩 자세히 (자세히 모르지만..) 알아보자.

1. Concise (간결성)

Kotlin을 쓰면 기존 Java로 짜왔던 소스에 비해서 간결해진다.

실제로 약 12370라인과 5490 메서드로 구성된 자바 소스를 코틀린으로 변경했을 때 8560라인과 4990 메서드로 줄었다고 한다.

코틀린은 점점 더 개선이 될거고, 라인 수도 점점 줄어들 수 있다.


2. Safe (안정성)

개발하다 보면 null pointer exception 더럽게 많이 본다.

코틀린은 이 null로부터 상당히 안전하다.

기본적으로 null값을 허용하지 않게 막을 수 있고, 컴파일 단계에서 null값이 허용될 것 같으면 오류를 내뽑는다.


3. Interoperable (상호운용가능성)

코틀린은 JVM위에서 돌아가는 언어다.

그러다 보니 JVM위에서 돌아가는 언어들과 호환이 된다.

특히, 자바와 100% 호환이 되기 때문에 큰 무리 없이 도입이 가능하다.

다만, 코틀린스럽게 짠 소스는 자바로 되돌리기 힘들다고 한다.

http://woowabros.github.io/experience/2017/07/18/introduction-to-kotlin-in-baeminfresh.html


4. Tool-friendly (도구 친화성)

안드로이드 개발을 해왔다면 Android Studio를 사용하고 있을 것이다. (이클립스를 사용하고 있다면 바꾸길 권장한다..)

안드로이드 스튜디오는 Jet Brain사의 IntelliJ 기반이다.

코틀린을 만든 회사도 Jet Brain이다. 그러다보니 따로 시간을 들여서 도구에 익숙해질 필요가 없다.


이 정도가 코틀린 공식 홈페이지에 나와있는 설명이다.

추가로 Java와의 차이점은

https://kotlinlang.org/docs/reference/comparison-to-java.html

여기서 알아보도록... (다 모르기 때문에..)


그렇다면, Java와 Kotlin 속도 차이는 얼마나 날까?

https://medium.com/keepsafe-engineering/kotlin-vs-java-compilation-speed-e6c174b39b5d

이 페이지를 참고했다.


클린 빌드 시에는 자바보다 코틀린이 느리다.

다만, 클린 빌드는 잘 사용하지 않기 때문에 넘어가도록 한다.


그래들 데몬을 이용해 클린 빌드 시에도 자바가 더 빠르다.

그래도 차이가 많이 줄어었고, 클린 빌드는 앞서 말했듯 많이 사용하진 않는다.


첫 번째 빌드 이후 변경 사항 없이 빌드를 하면, 코틀린과 자바 속도 차이가 크게 나지 않는다.

파일을 변경하고 빌드 시에는 오히려 코틀린이 조금 미세하게 빠르다.


최근에는 코틀린의 빌드 속도를 더 개선했다고 한다. 그렇기에 가능하다면 코틀린을 시작하자!