<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1387208918241112&ev=PageView&noscript=1"/>

뉴스센터 목록으로 돌아가기

안드로이드 앱개발, 왜 코틀린(KOTLIN)이 필요할까?

위시켓 | 2020.08.25.


안녕하세요. 위시켓입니다.

2017년 구글 I/O 행사 도중, 구글은 안드로이드 앱 구축을 위한 공식 프로그래밍 언어로 코틀린(Kotlin)을 발표합니다. 이 발표는 안드로이드 개발자 커뮤니티에서 매우 큰 반향을 불러일으켰는데요. 그 이유는 안드로이드 앱을 개발하는데 가장 많이 선호되는 언어가 바로 자바(Java)였기 때문입니다. 그로부터 3년이 흐른 지금, 코틀린의 인기는 계속해서 높아지고 있습니다. 그 인기를 가늠해보기 위해 구글 트렌드를 잠시 보실까요?

구글과 젯브레인즈(Jetbrains)의 든든한 지원 덕분에, 개발자들은 물론이고, 기업들에서도 코틀린을 채택하는 사례가 점점 더 많아지고 있습니다. 실제로 코틀린 공식 웹사이트에 의하면 우버(Uber), 에버노트(Evernote), 핀터레스트(Pinterest)를 비롯한 수많은 대기업들이 자신들의 안드로이드 버전 모바일 앱을 위해서 코틀린을 채택했다고 합니다. 그렇다면 코틀린이 대체 무엇인지, 여러분의 개발 프로젝트에 어떻게 적용해볼 수 있을지 궁금해지는데요. 이번 시간, 위시켓이 코틀린(Kotlin)에 대한 모든 것을 낱낱이 파헤쳐 보겠습니다.

* 잠깐, 위시켓은 2019년 시밀러웹 방문자 수 기준, 국내 1위 IT아웃소싱 플랫폼입니다. 현재 8만 이상의 개발업체, 개발 프리랜서들이 활동하고 있으며, 무료로 프로젝트 등록이 가능합니다. 프로젝트 등록 한 번으로 여러 업체들의 견적/ 예상기간/ 포트폴리오를 빠르게 비교해보세요.




코틀린(Kotlin)이 무엇일까?


코틀린은 오픈소스이며 젯브레인즈가 만든 통계적 형식의 프로그래밍 언어입니다. 이 언어의 이름은 러시아의 상트페테르부르크 근처에 있는 코틀린 섬에서 따왔는데요. 기본적으로 자바가상기계(Java Virtual Machine, JVM)에서 매끄럽게 동작하는 코드를 만들 수 있게 해줍니다.

코틀린의 문법은 안드로이드 앱을 개발하는 데 사용하는 일반적인 언어인 자바와 호환되지는 않지만, 자바 코드와 함께 쉽게 연동해서 사용할 수 있습니다. 좀 더 쉽게 설명하면, 코틀린은 자바가 원래 작동하는 것과 똑같은 방식으로 쉽게 작업할 수 있죠. 또한, 일반적으로 프로그래밍 언어에서는 변수를 선언할 때, 타입과 기본값을 설정해야 하지만, 젯브레인즈는 변수의 타입과 값을 지정하지 않은 경우에도 그것을 판단하기 위해서 코틀린이 적극적인 추론을 사용할 수  있게 했습니다. 이것이 바로 코틀린이 자바와 차별화된 부분입니다.


코틀린을 써야 하는 이유.


코틀린은 분명 안드로이드 앱개발자는 물론이고, 기업에게서도 많은 사랑을 받고 있는데요. 코틀린을 이용해서 앱을 개발할 때의 가장 큰 장점은 다음과 같습니다.

1- 자바 코드와의 상호운용성(INteroperability)


코틀린은 자바와 100% 상호 운용되는 프로그래밍 언어이며, 따라서 경험이 많은 안드로이드 앱 개발자들이라면, 자바에서 코틀린으로 변환하는 것이 식은 죽 먹기라는 것을 알 수 있습니다. 이는 코틀린이 자바라는 언어뿐만 아니라 자바의 프레임워크 및 도구들과도 거의 비슷하기 때문에 가능한 것인데요. 뿐만아니라 자바 언어를 사용해서 개발한 기존의 안드로이드 앱이 있다면, 새로운 기능이나 간단한 업데이트는 코틀린 언어를 통해 쉽게 수행할 수 있습니다.


​2- 쉬운 유지관리


현재 시중에서 이용할 수 있는 대부분의 통합개발환경(IDE)은 코틀린을 지원하고 있으며, 따라서 개발자들이 새로운 IDE를 배워야 할 필요가 없기 때문에 생산성을 최적화하는 데 있어서 아주 많은 도움이 됩니다.

3- 팀 효율성 향상


직관적이면서도 간결한 문법 덕분에, 코틀린은 팀의 효율성을 크게 향상시킬 수 있는 컴팩트하면서도 깔끔한 프로그래밍 언어입니다. 좀 더 쉽게 말하자면, 개발자들은 자바에 비해서 코틀린으로 더 많은 일들을 할 수 있으며, 더 적은 양의 코딩만으로도 안드로이드 애플리케이션을 구축해서 배포할 수 있다는 겁니다.


​4- 코틀린의 더욱 뛰어난 신뢰성


플러터(Flutter)와 같은 새로운 프로그래밍 언어에 비해서, 코틀린은 훨씬 더 성숙한 프로그래밍 언어입니다. 코틀린은 2011년에 처음 설립되었는데요. 신뢰성에 관해서라면, 코틀린은 2011년에 처음 설립된 이후로 최종적으로 공개 버전을 출시하기까지, 젯브레인즈에서는 수많은 알파 테스트와 베타 테스트를 실시했습니다. 그리고 젯브레인즈는 코틀린의 최신 버전이 그전에 나왔던 다른 버전들과 하위 호환될 수 있게 함으로써, 기존의 코틀린 기반 안드로이드 앱들에게도 훨씬 더 많은 안정성을 제공해 주고 있습니다.


​코틀린, 단점은 없을까?


다 그렇겠지만, 코틀린도 완벽한 프로그래밍 언어는 아닙니다. 그렇기 때문에 만약 코틀린을 이용해서 스타트업, 비즈니스, 엔터프라이즈 버전의 안드로이드 앱을 만들고자 한다면, 최종 결정을 내리기 전에 단점들을 살펴보는 것이 중요합니다.


​1- 컴파일의 기복


증분 빌드(incremental build)의 수행과 같은 많은 경우에서, 코틀린이 자바보다 빠르다는 것은 의심의 여지가 없습니다. 하지만, 안드로이드 앱을 위한 깔끔한 빌드를 생성하는 것에 있어서는 여전히 자바가 월등히 우세합니다.


2- 채용할 수 있는 인재 풀의 부족


코틀린의 인기는 특히 구글이 안드로이드 앱 개발을 위한 1등급 프로그래밍 언어로 발표한 이후로 더욱 높아졌고, 고용 시장에서 코틀린 앱 개발자의 수도 증가한 것이 사실입니다. 하지만 자바 개발자들에 비하면 고용시장에서 활용할 수 있는 코틀린 개발자의 수가 훨씬 더 적은 것도 사실이죠. 따라서 채용할 수 있는 인재 풀이 많이 부족한 실정입니다.


3- 학습 리소스의 제한


코틀린으로 전환하는 안드로이드 개발자들의 수가 매일 증가하고 있기는 하지만, 코틀린을 학습하고 마스터하기 위해 시중에서 이용할 수 있는 리소스의 수는 여전히 한계가 있습니다. 이는 기본적으로 코틀린 프로그래밍 언어를 사용해서 안드로이드 앱을 개발할 때는 어떻게 개발하고, 특정한 기능을 어떻게 만들어야 하는지에 대해서 알아보려면 더 많은 시간을 들여야 한다는 것을 의미하는데요. 그나마 다행인 것은, 수많은 안드로이드 앱 개발 기업들이 이렇게 제한된 리소스에도 불구하고 이 언어를 마스터하고 있으며, 코틀린을 이용해서 여러분의 회사를 위한 매끄러운 안드로이드 앱을 만드는 것이 더 이상 문제가 되지 않게 되었습니다.


​4- 코틀린은 아직 자바가 아니다


코틀린은 자바는 비슷한 점들이 아주 많기는 하지만, 기존의 모든 기능들이 코틀린 프로그래밍 언어에서 어떻게 작동하는지 익숙해지려면 시간이 많이 걸리며, 따라서 자바에서 코틀린으로 변환하는 것 역시도 많은 시간이 걸립니다. 즉, 여러분이 기존의 자바 기반 안드로이드 앱을 코틀린으로 변환하고자 할 경우에, 팀원들을 재교육하기 위해서 추가적인 비용이 필요하다는 것이죠.



코틀린(Kotlin)을 활용한 개발 프로젝트를 계획중이신가요?

코틀린이 구글로부터 공식지원을 받는다는 것은 그만큼 전망이 밝다는 것을 의미합니다. 하지만 그렇다고 해서 여러분이 계획중인 프로젝트를 무조건 코틀린으로 진행해야 한다는 것은 아닙니다. 기존의 안드로이드 앱을 가지고 있다면, 조심스럽게 접근하는 것이 좋습니다. 위시켓에 여러분이 고민중인 개발 프로젝트를 등록해보세요. 2만건의 프로젝트를 상담해본 IT전문매니저들이 유선으로 전화 컨설팅을 도와드립니다. 상담 시, 가장 합리적인 견적, 필요기술, 예상 기간 등 심층적으로 조언을 도와드리고 있습니다.


지금 바로 무료로 프로젝트를 등록해보세요.


> 이 글은 'Pros and Cons of Kotlin for Android App Development'을 각색하여 작성되었습니다.


 

위시켓 | 2020.08.25.

'뉴스센터'의 다른 글 보기

자마린(XAMARIN)이란? 자마린으로 만든 어플 10가지

컴퓨터가 인간의 언어를? 경이로운 자연어 처리(NLP) 활용사례

안드로이드 앱개발, 왜 코틀린(KOTLIN)이 필요할까?

어플리케이션 제작 과정, A부터 Z까지 한 눈에 살펴보기

프론트엔드 VS 백엔드, 개념과 차이점 그리고 사용되는 언어는?

뉴스센터 더 보기 >