본문 바로가기

DevOps.

자바 vs 코틀린, 안드로이드 앱 개발에 가장 적합한 언어는?

728x90

 

모바일 애플리케이션 등장 초기부터 앱 개발에 가장 널리 사용된 언어 중 하나는 자바였다. 그동안 많은 개발자가 자바를 이용해 안드로이드 앱을 개발해왔다. 그러나 2019년 5월, 구글이 안드로이드 앱 개발을 위해 자체 개발한 프로그래밍 언어 코틀린(Kotlin)을 공개했다. 그렇다면, 안드로이드 앱 개발 시 자바와 코틀린 중 어떤 언어를 사용하는 것이 좋을까?

 

해외 프로그래밍 전문 온라인 포럼 MUO가 분석한 안드로이드 앱 개발 목표별 적합한 언어 비교 결과를 아래와 같이 설명한다.

자바 vs 코틀린, 무엇이 다를까?

우선, 자바는 가장 오래된 객체 지향 언어 중 하나이다. 주로 개방형 휴대폰 동맹(Open Handset Alliance)이 자바로 안드로이드OS 사용자 인터페이스를 구성한다. 대다수 서버와 기기, 운영체제가 자바를 지원한다. 게다가 자바 프로그래밍 코드를 바이트코드로 압축할 때, 자바 가상머신(JVM)으로 실행된다. 자바의 일부 구문은 C++, C 등과 비슷하지만, 종합적인 하위 수준 프로그래밍 요소를 제공할 수는 없다. 현재 스포티파이와 캐쉬 앱(Cash App), 시그널(Signal) 등 인기 앱 제작에 사용된다.

 

코틀린은 트렌딩 오픈소스 언어이다. 기본적으로 통합 개발 환경을 지원하며, 자바 가상머신을 위한 정적 언어이기도 하다. 코틀린은 자바보다 더 단순하면서 깔끔하고, 압축 속도가 빠른 기능과 객체 지향 언어를 혼합했다. 그러나 바이트코드로 코드를 압축한 뒤 자바 가상머신에서 실행할 수 있어, 대다수 기기와 플랫폼에서 작동할 수 있다. 현재, 트렐로(Trello), 트위터, 넷플릭스 등 테크 업계의 유명 대기업이 코틀린을 활용한다.

기능 확장

기능 확장을 하고자 한다면, 코틀린을 사용하는 것이 좋다. 코틀린을 사용하면, 함수 이름에 글래스 명칭의 접두사를 추가하면서 기존 수준에서 기능을 손쉽게 확장할 수 있다. 자바는 확장 함수를 지원하지 않는다. 기존 클래스에서 기능을 확장할 수 있으나 처리 시간이 오래 걸리므로 부적절하다.

코드양&코딩 속도

유사한 프로그램이라면, 자바의 코드양보다 코틀린의 코드 양이 훨씬 더 적다. 코틀린은 코드 오류를 최소화하여 개발자의 노력을 단순화한다. 실제로 실무에서도 간결성 때문에 자바보다 코틀린을 주로 채택한다.

 

하지만, 자바와 코틀린 모두 코딩 속도 자체는 비슷하다. 코틀린은 코드 작성자가 더 적은 코드를 입력하도록 한다. 그러나 작업 솔루션에 도달하려면 코틀린을 작업하는 데 더 오랜 시간이 걸린다. 반대로 자바는 많은 코드를 입력해야 하지만, 코틀린보다는 더 빠르고 쉽게 솔루션을 찾을 수 있다.

프로그래밍 성능

코틀린은 개발자의 수월한 작업에 도움을 줄 추가 기능을 제공한다. 주로 멀티 스레드 앱 생성에는 코틀린을 선호한다. 그러나 코틀린을 기반으로 압축할 때, 자바보다 속도가 느리다는 문제가 발생한다. 그러나 두 언어 간 압축 시간 차이는 그리 크지 않은 편이다. 프로그래밍 언어가 자바 가상머신에서 실행되기 전, 바이트코드로 변환된다. 전반적인 성능 측면에서 자바와 코틀린 모두 유사하다.

동시 실행 지원

안드로이드에서는 오래 실행되는 작업이 주요 스레드를 막을 수 있다. 이 때문에 앱이 중단되거나 제대로 응답하지 않는 문제가 발생할 수도 있다. 이 문제를 극복하고자 개발자가 동시 실행 패턴을 설계했다.

 

코틀린은 동시 실행을 이용해 코드 실행을 일시 중지하고 나중에 다시 시작한다. 여러 개의 스레드를 작성하지 않고 한 스레드에서 여러 가지 작업을 실행하도록 하며, 앱 코드 자체를 더 간결하게 작성한다.

 

반면, 자바는 동시 실행을 지원하지 않는다. 안드로이드 앱에서 긴 작업을 처리할 때, 자바를 사용하면, 여러 스레드를 만들 수 있다. 그러나 프로그래밍 코드베이스가 더 많아지면서 코드 오류가 발생할 확률이 높아진다.

코틀린이 무조건 정답은 아니다

구글 플레이 스토어 측면에서 코틀린은 안드로이드 앱 개발의 공식 언어이다. 대다수 안드로이드 개발자는 플레이 스토어 앱 승인을 위해 코틀린을 선호한다. 그러나 여전히 안드로이드를 비롯한 여러 플랫폼에서 일반 목적으로 작업할 때는 자바가 더 적합하다. 결과적으로 개발자의 만족도와 후원사의 마케팅 전략에 따라 안드로이드 앱 개발 프로젝트 개발 언어를 선택하게 될 것이다.

 

출처

자바 vs 코틀린, 안드로이드 앱 개발에 가장 적합한 언어는?

 

728x90
반응형
LIST