안드로이드 개발에서의 코틀린

업데이트:

  • 연구주제 : 안드로이드 개발에서의 코틀린
  • 연구목적 : 코틀린과 자바의 차이 이해
  • 연구일시 : 2020년 01월 14일 09:00~17:00
  • 연구자 : 이재환 ljh951103@naver.com
  • 연구장비 : HP EliteDesk 800 G4 TWR, Kotlin, Android studio
  • 관련연구 : Java, IOS, Android, Swift

 

서론

Kotlin?

image

Kotlin은 안드로이드 앱 개발에 주로 사용되는 프로그래밍 언어이다. 2017년 구글이 소개한 Kotlin의 사용자 수가 지속적으로 증가하고 있다는 지표가 소개되엇다. 이러한 추세의 배경에는 구글이 있다.

Kotlin은 JVM에서 동작하는 프로그래밍 언어로서, 2011년 9월, JetBrain 사가 공개.  
*Google I/O 2017*에서 안드로이드 공식언어로 선택되었다.   
*Google I/O 2019*에서 코틀린이 안드로이드 메인 개발언어로 지정되었다.

image

이렇듯 이제는 Kotlin이 Android 개발환경에서 Java보다 더욱 선호하는 언어가 되고있다. 현재 Kotlin 모바일 앱 커뮤니티는 계속 성장하고 있고 개발자와 기업 소프트웨어 개발자 커뮤니티 내에서 Kotlin 언어에 대한 수요가 증가하고있다.

이러한 상황에서 당신이 앱을 당장 개발해야 한다면 어떤 언어를 사용하여 개발할 것인가?
지금까지 자바로 개발을 하다가 이제부터 바로 Kotlin을 사용해야할지, 자바를 계속 사용할지에 대한 큰 딜레마가 존재한다고 생각한다.

그렇다면 우리는 굳이 왜 Kotlin을 써야할까?
Kotlin 언어가 어떠한 장점을 가지고 있기에 구글이 지속적으로 추천하고 있는 것일까?
비용적인 측면도 있겠지만, 개발 언어로써 어떤 장점이 있는지 살펴보자.

 

본론

왜?

코틀린은 자바 코드와 완벽 호환을 보장한다. 즉, 코틀린을 사용하기 위해 굳이 기존의 자바코드를 수정할 필요가 없다는 것이다.

물론, java 파일 안에 코틀린 문법을 적용하는 일은 불가능하지만 자바로 작성된 클래스 안에서 코틀린으로 작성된 object의 기능을 어떠한 수정 없이 사용이 가능하다는 것이다.
그 이유는 코틀린의 컴파일 과정을 살펴보면 알 수 있다.

image

“Kotlin in Action” 서적에서는 다음과 같이 설명하고 있다.

코틀린 컴파일러는 자바컴파일러가 자바 소스코드를 컴파일할 때와 마찬가지로 코틀린 소스코드를 분석해서 .class 파일을 만들어낸다.  
만들어진 .class 파일은 개발 중인 앱 유형에 맞는 표준 패키징 과정을 거쳐 실행될 수 있다.  
코틀린 컴파일러로 컴파일한 코드는 코틀린 런타임 라이브러리에 의존한다.  
런타임 라이브러리에는 코틀린 자체 표준 라이브러리 클래스와 코틀린에서 자바 API 의 기능을 확장한 내용들이 들어있다.  
코틀린으로 컴파일한 앱을 배포할 때는 런타임 라이브러리도 함께 배포해야 한다.

즉, 다른 컴파일러를 사용하여 실행 시점에 런타임 라이브러리를 통해 실행이 될 수 있다.

 

그래서?

어찌됐건 익숙한 자바로 잘 돌아가는데 왜 코틀린을 적극적으로 사용하는가?
구글이 코틀린을 사용하는 진짜 이유는

자바는 옛날 언어고 코틀린은 최신 언어이기 때문이다.

 

자바

자바는 옛날 언어이지만 지금껏 널리 쓰이고있다. 호환성의 문제를 라이브러리의 개발로써 해결하며 발전해왔기 때문이다. 하지만 덩치가 커질대로 커졌기 때문에 최근 개발 트렌드에 맞게 밑단부터 수정하기가 어렵다.

코틀린

하지만 코틀린은 설계 시점부터 개발자의 요구사항을 충족시키며 새로 짜여졌다. 뿐만아니라 같은 로직을 구현해도 보다 직관적이고 간결하게 구현이 가능하다.

이 밖에도 코틀린을 사용하면 간결하며 안정성이 있고 다재다능하며 호환성이 좋다. 또한 코드의 양을 비약적으로 줄여주고 Null Pointer 예외에 대한 팅김 현상도 많이 줄어들게 된다.

 

간단한 비교

Class 표현법

image

 

VO 표현법

image

간단히 살펴보아도 자바에 비하여 코틀린에서는 크게 의미없는 코드를 작성할 필요가 사라져, 코드 양이 비약적으로 줄어 간결해진 것을 알 수 있다.

 

결론

빠르게 변화하는 IT 업계에서 그 속의 트렌드 또한 빠르게 변화한다. 변화에 적응하지 못하고 기존의 의견과 정보만을 수렴한다면 도태될 수 밖에 없다.
현재 안드로이드 개발 언어의 트렌드는 코틀린이다. 그렇기에 안드로이드 개발자들의 입장에서 최근 트렌드에 맞는 코틀린은 반드시 익혀야 할 언어이다.

 

향후과제

코틀린과 자바의 예제 코드를 이용하여 코틀린의 특징과 자바와의 차이점을 자세히 살펴보자!

 

참고자료

https://blog.voidmainvoid.net/198
https://kotlinlang.org/

 

Writer: Jae-Hwan Lee

댓글남기기