안드로이드 앱 만들기, 코틀린(Kotlin) vs.자바(Java) 무엇으로 시작할까?

SHARE

Last updated on 5월 7th, 2021 at 06:59 오후

코틀린(Kotlin)이란?

코틀린이란

코틀린은 ‘젯브레인스(JetBrains)’라는 회사에서 만든 안드로이드 개발을 위한 프로그래밍 언어로, 2016년도에 정식 발표되었습니다. 코틀린은 기존에 안드로이드 어플리케이션 개발에 활용되는 자바(Java) 언어를 보완하고 대체하기 위해 탄생했는데요. 때문에 기존에 자바 언어로 동작하던 환경에서 코틀린 언어도 100% 호환되는 것이 특징입니다. 이는 기존에 자바로 개발하던 프로그램은 모두 코틀린으로도 개발할 수 있다는 의미입니다.

kotlin google i/o

그리고 2017년 열린 구글 I/O라는 컨퍼런스에서 코틀린은 공식 지원 언어로 채택되었습니다. 공식 지원 언어로 채택이 되었다는 건 과연 어떤 의미일까요? 구글이 코틀린을 공식 지원 언어로 채택하면서, 코틀린 플러그인을 안드로이드 스튜디오(Android Studio) 3.0에서 바로 다운로드하여 이용할 수 있게 되었다는 의미입니다. 이외에도 안드로이드 공식 문서의 예제 코드도 코틀린으로 제공되는 것을 확인할 수 있습니다.

2019년, 구글은 코틀린을 안드로이드 1st 언어로 선정하였습니다. 공식적으로 안드로이드 개발을 위한 메인 언어로 코틀린을 지정한 것입니다.

인텔리제이(IntelliJ)와 안드로이드 스튜디오는 뭐지?

코틀린 안드로이드 스튜디오 인텔리제이

‘인텔리제이’는 자바 기반의 통합 개발 환경으로 코틀린을 공개한 젯브레인스에서 만들었습니다. 2013년 구글 신제품 발표회에서 처음 공개된 안드로이드 스튜디오는 안드로이드 전용 어플리케이션을 제작하기 위해 필요한 공식 통합 개발 환경으로, 기존에 젯브레인스에서 내놓은 인텔리제이를 기반으로 합니다. 자바와 코틀린, C++ 언어를 사용할 수 있습니다.

 

코틀린, 왜 추천하냐구요?

1. 문법이 간결하며 사용성이 좋다.

코틀린-안드로이드개발

1995년에 세상에 나온 자바에 비해 코틀린은 그 역사가 굉장히 짧은 편입니다. 성능이나 안정성 측면에서는 역사가 긴 자바의 장점이 독보적이지만, 코틀린은 기존 언어가 지닌 단점이나 한계를 보완하여 탄생했기 때문에 개발자 입장에서는 훨씬 사용성이 좋다고 할 수 있습니다. 코틀린은 문법이 간결하여 복잡한 구문 없이 비교적 직관적으로 코드를 작성할 수 있죠. 또한 표현력이 좋아 입문자 입장에서는 자바보다는 훨씬 빠르게 안드로이드 개발을 시작할 수 있다는 것이 장점입니다.

2. Null Safe 언어이다.

코틀린

자바로 개발을 하면서 가장 많이 마주치는 문제는 바로 NPE(NullPointException)입니다. 코틀린은 Nullable과 Non-nullable 이라는 개념을 가지고 있어, null이 발생하지 않도록 만들어 줍니다. 그래서 자바 라이브러리와 함께 사용하지 않는 한, 코틀린으로만 개발할 때는 NPE와 같은 예외 문제가 발생하지 않는다는 것이 장점입니다.

3. 기존 라이브러리와의 상호운용성이 좋다.

코틀린 vs. 자바

코틀린은 기존의 자바를 보완하고 대체하기 위해 탄생했기 때문에, 자바와 100% 호환됩니다. 한 프로젝트 안에 자바 파일과 코틀린 파일이 함께 들어 있더라도 작동에 전혀 문제가 없다는 뜻입니다. 자바 기반의 라이브러리도 모두 문제 없이 사용할 수 있습니다. 또한 자바로 만들어진 프로젝트도 처음부터 코틀린으로 다시 개발할 필요 없이, 이후 생성되는 파일만 전부 코틀린으로 작성해도 전체 프로젝트가 정상적으로 작동하여 효율적으로 개발할 수 있습니다.

앱 개발 입문자를 위한 추천 글 : 스물 아홉, 난생 처음 ‘앱 개발’을 배우다!

코틀린, 단점도 있나요?

1. 속도가 느리다.
안드로이드 어플리케이션을 위한 빌드를 생성한다면, 여전히 자바의 성능이 더 좋습니다. 컴파일 시, 자바로 변환하고 나서 바이트 코드로 변환하기 때문에 컴파일 속도가 상대적으로 느린 편입니다.

2. 자바와 비교하면 학습 생태계가 작은 편이다.
코틀린이 안드로이드 1st 언어로 지정되었다고 해도, 1995년에 나온 자바에 비해서는 역사가 매우 짧기 때문에 코틀린의 생태계 또한 작을 수밖에 없습니다. 개발 생태계가 작다는 것은, 커뮤니티나 오픈 소스를 통해 개발자 개인이 지원 받을 수 있는 기회도 더 적다는 의미입니다. 이는 아무래도 시간이 해결해 줄 문제겠죠?

3. 자바 기존 라이브러리의 활용이 어려울 수 있다.
자바와 100% 호환된다면서 이게 무슨 말이냐구요? 자바로 개발한 프로젝트를 코틀린으로 이어서 작성하더라도, 자바 문법에 익숙하지 않다면 자바 기반의 기존 라이브러리를 완전히 이해하지 못하고 사용할 수 있습니다. 아직까지는 코틀린 기반의 전용 라이브러리보다는 자바 기반이 훨씬 많기 때문에, 코틀린으로 안드로이드 개발을 시작하더라도 프로젝트 개발이 심화될수록 자바에 대한 이해가 필수적으로 요구될 수 있겠죠.

앱 개발 관련 글 추천 : 앱 개발을 1도 모르는 초보를 위한 길라잡이

코틀린의 점유율은 어느 정도일까?

코틀린이 등장하기 전에는 안드로이드 앱은 모두 자바로 개발해왔습니다. 그런데 코틀린이 정식으로 공개되면서, 점차 코틀린을 활용한 안드로이드 개발이 늘어나는 추세입니다.

kotlin-tiobe
출처 : www.tiobe.com/tiobe-index/

티오베(TIOBE)에서 제공한 2021년 프로그래밍 언어 순위와 전망을 살펴보면, 코틀린은 36위입니다. 프로그래밍 언어의 선택지와 기능이 다양하다 보니 상대적으로 낮은 순위에 미쳤습니다. 안드로이드 개발을 위한 공식 언어로 지정된 것이 최근이고, 구글의 전격 지원을 받는 이상 앞으로 더 성장할 가능성이 높은 언어라고 할 수 있겠네요. 특히 안드로이드 앱을 만든다면 코틀린을 빼놓기는 점점 어려워질 거예요.


안드로이드 앱 만들기 프로그래밍 언어부터 각종 개발 환경까지, 모르는 것 투성이라구요? 혹은 안드로이드 앱 개발자로 나만의 결과물을 체계적으로 완성해보고 싶은데 혼자서는 막막하신가요? 그렇다면 패스트캠퍼스에서 30가지 프로젝트로 배우는 Android 앱 개발 (with Kotlin) 온라인 수업을 만나보세요! 기업 채용공고에서 요구하는 안드로이드 앱 개발자가 갖춰야 할 필수 기술을 커리큘럼으로 녹여냈습니다. 입문자부터 개발자 취준생까지, 난이도별로 다양한 앱을 직접 완성해볼 수 있도록 도와드릴게요.

 

지금 커리큘럼을 확인해 보세요!
30개 프로젝트로 배우는 안드로이드 앱 개발 (with 코틀린) ▼
안드로이드 앱 개발 수업 바로가기

 

Facebook Comments