현재 글을 쓰고 있는 2025년 지금 시점, 안드로이드 앱 개발은 코틀린(Kotlin)과 자바(Java), 두 가지 주요 프로그래밍 언어를 통해 이루어지고 있습니다. 그렇다면 어떤 프로그래밍 언어를 선택해야 할까요? 이 질문에 대한 답은 프로젝트 상황과 팀의 역량에 개인의 목적에 따라 달라질 것입니다. 어떤 프로그래밍 언어를 선택하느냐에 따른 기술적 장단점이 존재하기 때문입니다.
이번 포스팅은 (회사 및 프로젝트의 관점은 제외하고) 안드로이드 앱 개발에 이제 막 관심을 가진 개인 개발자의 관점에서 도움이 될 만한 정보를 객관적으로 정리하고, 필자의 의견을 일부 덧붙여 보았습니다. 독자 여러분께서는 이 정보를 참고하여 각자의 상황에 맞는 가장 현명한 선택을 내릴수 있다면 좋겠습니다.

안드로이드 앱 개발 기술변화
안드로이드 앱 개발의 주요한 기술적 변화를 살펴보면 다음과 같습니다. 안드로이드가 등장했을때, 앱을 개발하기 위한 공식 언어는 Java 였고, 지금도 물론 Java 로 앱을 개발할 수 있습니다. 하지만 Oracle 과의 라이선스 분쟁 이슈(링크1, 링크2), Java 의 기술적 한계를 극복하기 위해 2017년 Google 은 Kotlin 을 안드로이드에 공식 도입했습니다. 뿐만 아니라 2019년에는 안드로이드의 가장 선호하는 언어로서, Kotlin 을 지정하고 Android Developer 사이트에 Kotlin 을 Java 보다 높은 우선순위로 가이드하기 시작했습니다(아래 이미지 참고). 현재는 쉽고 빠른 안드로이드 앱 개발을 지원하는 Kotlin 기반의 Jetpack Compose 가 출시된 상황입니다.
- 2008년: Android 1.0 출시, 자바(Java)가 공식 언어로 사용됨.
- 2010년: Oracle과의 Java 라이선스 분쟁 발생. Google은 Java 외의 대체 언어를 모색하기 시작.
- 2011년: JetBrains이라는 회사에서 코틀린(Kotlin) 언어를 공개했습니다. (안드로이드 앱 개발을 타겟으로 만든건 아님)
- 2017년: Google이 Kotlin을 Android 공식 언어로 채택
- 2019년: Google은 Kotlin을 'Android First' 선호 언어로 지정
- 2020년: Kotlin 기반의 선언형 UI 프레임워크 Jetpack Compose가 출시
아래는 안드로이드 개발자 사이트에서 ViewModel 을 설명하는 부분인데, 코틀린(Kotlin) 과 자바(Java) 중에서, 코틀린(Kotlin) 코드를 먼저 보여주고 있다. 구글이 Java 보다 Kotlin 에 높은 우선순위를 부여하고 있다는 점을 알 수 있다.

안드로이드 기술의 변화추이만 놓고보면, Java 는 레거시라고 부르는 Old 기술로 간주되고, Kotlin 프로그래밍 언어가 대세인 것으로 보인다. Google 에서도 Kotlin 을 'Android First' 언어로 지정했으니, 앞으로도 Kotlin 기반으로 업데이트 되는 기능/기술이 많아질 것으로 예상할 수 있다. 안드로이드 앱 개발의 생태계(Android Studio, 개발자 문서, 교육용 튜토리얼 등)가 Kotlin 중심으로 발전해 나갈것이 분명한 트렌드로 보이기 때문에 현 시점에 본격적으로 안드로이드 앱 개발에 뛰어든다면 Java 보다는 Kotlin 언어 중심으로 접근하는 것이 현명한 선택이라고 생각된다.
프로그래밍 언어 인기
매년 연말이나 연초가 되면, 프로그래밍 언어 랭킹에 대한 글들이 많이 보인다. 아마도 한해를 마무리하는 시점에서 회고를 하는 목적이거나, 한 해를 시작하면서 본인의 커리어 계획을 세울때 참고하기 위함일 것이다. 안드로이드 앱 개발을 위한 프로그래밍 언어를 선택하기 위해 각 프로그래밍 언어별 인기도를 참고해보는 것도 하나의 관점이 될 수 있다.
프로그래밍 언어 랭킹 관점에서 코틀린(Kotlin)과 자바(Java)를 비교해보자. 프로그래밍 언어 랭킹을 살펴볼 수 있는 대표 사이트 3개를 기준으로 코틀린(Kotlin)과 자바(Java) 순위를 비교해보자.
1) TIOBE
TIOBE 는 프로그래밍 언어별 관심도를 랭킹으로 보여준다. 다양한 검색 엔진에서의 검색 빈도를 기반으로 순위를 산정한다고 이해하면 되고, 좀더 구체적인 산정기준은 아래 공식문서가 있으니 참고하면 된다.
https://www.tiobe.com/tiobe-index/programminglanguages_definition/
TIOBE Index - TIOBE
Home » TIOBE Index TIOBE Programming Community Index Definition Since there are many questions about the way the TIOBE index is assembled, a special page is devoted to its definition. Basically the calculation comes down to counting hits for the search qu
www.tiobe.com
아래는 2025년 11월 29일 기준 랭킹이다. Java 는 4위, Kotlin은 20위를 차지하고 있다. 순위차이가 꽤 난다.

근데 재미있는 점은 자바(Java)와 코틀린(Kotlin)의 순위 트렌드이다. 자바(Java)는 현재 매우 분야에서 채택되어 광범위하게 사용되고 있는 Major 언어인 것은 맞지만 Rating 지표가 점점 떨어지는 우하향 추세를 보이고 있다. 하지만 코틀린(Kotlin)은 꾸준히 우상향 방향으로 Rating 지표가 상승하고 있는것을 볼 수 있다(그래봤자 0~1 사이지만..)


구글에서 Kotlin 을 공식언어로 채택하고 Kotlin First 를 선언한 시점이 2017, 2019년인데, 5년 이상이 지난 지금도 1% 수준인것은 Kotlin 이 그다지 대중적으로 선택받고 있는 것 같지는 않다. 하지만 2023년에 Rating 이 갑자기 상승했는데, 아마도 코틀린(Kotlin) 기반의 Jetpack Compose 가 많은 인기를 끌면서 Kotlin 언어에 대한 관심도 상승하는 것이 아닌가 생각된다.
2) PYPL (PopularitY of Programming Language)
PYPL은 검색 엔진 트렌드 기반 (Google Trends)으로 구글에서 각 프로그래밍 언어의 튜토리얼(Tutorial)이 얼마나 많이 검색되는지를 측정하여 순위를 선정합니다. 즉, 사람들이 현재 해당 프로그래밍 언어를 얼마나 배우고 싶어 하는지(미래의 시장 점유율 예측)를 알수 있어서, 프로그래밍 언어의 미래 트렌드를 예측하는데 도움이 됩니다. 새로운 프로그래밍 언어의 인기를 빠르게 포착하는데 활용할 수 있습니다.
https://pypl.github.io/PYPL.html
PYPL PopularitY of Programming Language index
PYPL popularity of programming language
pypl.github.io
아래는 PYPL 2025 순위인데, 자바(Java)가 2위, 코틀린(Kotlin)이 14위를 차지했습니다. 자바는 안드로이드 앱 개발 뿐만 아니라 다양한 분야의 대규모 백엔드 언어로 널리 사용되고 있습니다. 취업을 위해 프로그래밍 언어를 배운다고 가정하면, 시장에서 널리쓰이는 언어를 배우는 것이 도움이 되겠지요. 이런 관점이 반영된것이 아닐까 생각됩니다. 코틀린은 자바에 비교했을때 점유율(Share)이 미비한 수준(1.14%)입니다. 현실적으로 안드로이드 앱 개발에 대한 점유율자체가 낮거나, 기존에 개발된 앱의 유지보수를 위해서는 코틀린보다는 자바가 더 나은 선택지일 수 있습니다.

3) 스택오버플로우 개발자 서베이 2025
마지막으로 스택오버플로우 개발자 서베이 결과를 살펴보겠습니다. 여기서의 랭킹은 시스템에서 수집된 데이터가 아니라, 스택 오버플로우 웹사이트 사용자, 구독자, 그리고 개발자 커뮤니티를 통해 수행하는 대규모 온라인 설문조사 결과를 기반으로 합니다. 개발자의 '생각'이나 '의견'이 반영된 결과라고 볼 수 있습니다.
먼저 Most popular technologies 입니다. https://survey.stackoverflow.co/2025/technology#most-popular-technologies
Technology | 2025 Stack Overflow Developer Survey
After more than a decade of steady growth, Python's adoption has accelerated significantly. It saw a 7 percentage point increase from 2024 to 2025; this speaks to its ability to be the go-to language for AI, data science, and back-end development. Which pr
survey.stackoverflow.co
인기있는 프로그래밍 언어 순위에서 자바는 7위, 코틀린은 15위를 차지했습니다. 자바는 3명중에 1명, 코틀린은 10명중에 1명 정도가 선택했습니다.

다음은 Admired and Desired 입니다. https://survey.stackoverflow.co/2025/technology#2-programming-scripting-and-markup-languages
Technology | 2025 Stack Overflow Developer Survey
After more than a decade of steady growth, Python's adoption has accelerated significantly. It saw a 7 percentage point increase from 2024 to 2025; this speaks to its ability to be the go-to language for AI, data science, and back-end development. Which pr
survey.stackoverflow.co
이 데이터를 보는 방법은 다음과 같습니다.
- 1) Desired (사용해 보고 싶은 기술):
- 정의: 지난 1년 동안 해당 기술을 사용하지 않았지만, 앞으로 사용해 보고 싶다고 응답한 개발자들의 비율.
- 의미: 기술에 대한 잠재 수요(흥미)와 미래 트렌드를 의미. 사용 경험 없지만, 소문(Hype), 장점 때문에 배우고 싶은 기술
- 2) Admired (계속 사용하고 싶은 기술):
- 정의: 지난 1년 동안 해당 기술을 사용했으며, 앞으로도 계속 사용하고 싶다고 응답한 개발자들의 비율.
- 의미: 기술에 대한 높은 만족도와 실제 사용자들의 충성도를 의미. 사용해 본 개발자들에게 '사랑받는' 기술로 해석가능
사용해보고 싶은(Desired) 기술로써는 자바(15.8%)가 코틀린(12%)보다 근소하게 높은 결과를 보였습니다. 하지만, 현재 사용중인 개발자들이 앞으로도 계속 사용하는 싶은 기술(Admired)로서는 자바(41.8%)보다 코틀린(51%)이 약 10% 높게 나타났습니다. 코틀린 언어에 대한 만족도, 충성도가 자바대비 높은 것을 알수 있습니다. 코틀린이 가진 안정성과 높은 생산성 특징이 개발자들의 만족도를 이끈것이 아닌가 생각됩니다.
자바는 안드로이드 앱개발 외에도 범용적으로 많이 쓰이기 때문에, 아래 결과를 안드로이드 앱 개발 맥락으로 보기 어렵습니다. 하지만 코틀린은 주로 안드로이드 앱 개발에서 주로 사용되기 때문에, 코틀린 결과는 안드로이드 앱 개발에서의 개발자 경험으로 해석해도 되지 않을까라는 생각이 듭니다.
코틀린의 Desired 지표가 타 언어대비 그다지 높지 않습니다. 안드로이드 앱 개발자의 시장이 상대적으로 작아서 일수도 있지만, 코틀린 언어자체가 타 언어대비 큰 주목을 받지 못하고 있다고 평가할수 있습니다. 다만, 코틀린의 Admired 지표는 다른 상위권 언어와 비교했을때 유사수준이라는 점은 한번 써보면 나름 만족스러운 언어라고 해석할 수 있겠습니다.

코틀린과 자바의 특징비교
코틀린과 자바의 프로그래밍 언어관점의 기술적 특징을 비교해보겠습니다. 코틀린이 자바보다 상대적으로 늦게 나왔기 때문에, 자바의 단점을 개선하기 위한 노력으로 기술적 장점이 더 많을것이라 예상할 수 있습니다. 하지만 자바는 먼저 출시된 언어이기 때문에, 광범위한 개발자 층과 라이브러리 생태계를 구축했다는 점에서는 이점이 있겠습니다.
아래 표를 보면, 1)Null 안정성, 2)문법의 간결성, 3)비동기 처리 및 4)함수형 프로그래밍 패러다임 지원 측면에서 모두 코틀린 언어가 더 나은특징을 가지고 있다는 것을 알수 있습니다. 다만 코틀린은 안드로이드 앱 도메인에 한정적으로 사용되고 있고, 다양한 서버/엔터프라이즈 급 서비스 환경에서 자바를 대체하지는 못하고 있는 현실입니다. 또한 코틀린은 자바와의 완벽한 상호 운용성을 보장하는데, 이러한 장점이 오히려 코틀린으로의 급격한 전환을 하지 않아도 되는 이유가 되는것 같습니다. 레거시를 유지하고, 일부 개선이 필요한 부분만 점진적으로 전환하는 것이 유지보수 비용측면에서 유리하기 때문입니다.
| Null Safety | 내장 지원 (Non-null by default) 컴파일 시점에 NullPointerException을 방지(안정성 높음) |
내장 지원 없음 런타임 (NPE) 발생 위험 높고, 방어 코드가 필수 |
| 간결성 (Verbosity) | 문법이 매우 간결함. Data Class, Type Inference, Extension Function 등으로 보일러플레이트 코드가 최소화(높은 생산성) |
문법이 상대적으로 장황함. getter/setter, 생성자 등 반복적인 코드가 많아 코드량이 길어지고 가독성이 낮음. |
| 비동기 처리 | 코루틴 (Coroutines) 지원. 비동기 코드를 동기 코드처럼 간결하게 작성 가능 |
Thread 및 Callback 기반. 별도의 복잡한 라이브러리 사용 필요 (RxJava나 CompletableFuture 등) |
| 함수형 특징 | 함수형 패러다임 기능을 풍부하게 지원 람다, 고차 함수 등 함수형 프로그래밍 적극 활용 |
부분적으로 지원. Java 8 이후 람다, Stream API가 도입되었으나 Kotlin만큼 유연하지 않음 |
| 운영체제 지원 | Android 공식 언어, JVM 기반 Kotlin Multiplatform 로 iOS, Web 확장가능 |
JVM 기반 안드로이드 및 서버/엔터프라이즈 환경에서 사용가능 |
| 학습 난이도 | 새로운 개념(코루틴, 확장 함수)을 익혀야 함. 초심자에게는 오히려 Java보다 더 직관적일 수 있음. |
오랜 역사를 통해 학습 자료가 방대함. 기본 문법 직관적이나, 방대한 레거시 API 이해필요. |
| 레거시 호환성 | Java와의 완벽한 상호 운용성 기존 Java 프로젝트에 Kotlin 점진적 도입 가능 |
Kotlin의 최신 문법(예: Coroutines)을 Java에서 사용할 때 복잡성이 증가할 수 있음. |
자바의 경우, 학습을 위한 자료가 매우 방대하여 참고할수 있는 정보가 매우 많습니다. 이는 자바에 대한 진입장벽을 낮춰줍니다. 코틀린은 상대적으로 자바대비 새로운 프로그래밍 문법이나 개념을 가지고 있고, 학습자료도 부족합니다. 이는 학습에 대한 비용이 상대적으로 높을 수 있음을 시사합니다.
학습자료에 대한 데이터양은 상대적일 뿐이고, 코틀린에 대한 학습자료의 절대적인 양이 부족하다는 의미는 아닙니다. 교보문고에서 코틀린, 자바로 검색(1년이내 발행)했을때의 검색결과를 보면 자바 14건, 코틀린 9건으로 큰 차이가 없긴 합니다.

안드로이드 앱 개발로 영역을 좁혀보면, 구글에서 코틀린에 대한 튜토리얼을 잘 만들어놓았기 때문에, 오히려 코틀린에 대한 학습데이터가 더 잘 갖춰져 있는 환경으로 볼 수 있습니다.
https://developer.android.com/kotlin?hl=ko
Kotlin과 Android | Android Developers
Kotlin은 최신 Android 개발을 위해 Android에서 권장되는 프로그래밍 언어입니다.
developer.android.com

안드로이드 앱 개발 트렌드
최신 안드로이드 앱 개발에 대해 구글에서는 젯팩 컴포즈를 권장하고 있습니다. 과거에 레이아웃 및 리소스를 xml 파일로 정의하고 자바로 사용자와의 상호작용 이벤트를 구현하는 방식이 아니라, 코틀린 코드만을 사용하여(레이아웃용 xml 사용안함) UI 컴포넌트 배치 및 이벤트 처리가 가능합니다. 이러한 최신 흐름을 따라가려면, 코틀린을 사용해야만 합니다.
위에서도 중간중간 언급했듯이, 이는 신규 앱 개발을 하는 경우에 해당합니다. 기존에 자바로 개발된 앱의 유지보수 관점에서는 완전한 코틀린으로의 마이그레이션 비용 또는 코틀린+자바를 함께 사용하는 경우의 개발 복잡성 증가라는 현실적인 이유로 인해 코틀린을 선택하기 어려울 수 있습니다.
저의 경우 최근에 안드로이드 앱 개발에 관심을 가지고 공부중이라, 저는 코틀린과 젯팩 컴포즈를 보고 있고, 공부한 내용을 블로그에 기록하고 있습니다. 앞으로도 코틀린과 젯팩 컴포즈 관련 내용을 지속적으로 포스팅할 예정이니, 관심있는 분들은 함께 정보와 의견 공유하면 좋겠습니다.
https://sparkthenmove.tistory.com/15
안드로이드 젯팩 컴포즈 스터디 시작.
내가 알고 있는 안드로이드 앱 개발방법은 layout.xml 에 layout 을 정의하고, View컴포넌트의 배치 및 속성을 설정한 후, 액티비티 클래스에서 리소스(layout 및 View컴포넌트)에 해당하는 인스턴스를 생
sparkthenmove.tistory.com
https://sparkthenmove.tistory.com/16
안드로이드 젯팩 컴포즈 (ch18~21) - 컴포저블 개념, 상태 및 재구성
이전 포스팅에서는 젯팩 컴포즈 스터디를 시작하게 된 동기를 작성했다.지금부터는 본격적으로 젯팩 컴포즈에 대해 스터디를 해보자. 이번 포스팅에서 다룰 챕터는 다음과 같다.Ch18 컴포즈 개
sparkthenmove.tistory.com
https://sparkthenmove.tistory.com/17
안드로이드 젯팩 컴포즈 (ch22~25) - Slot API, 모디파이어(Modifier), Row/Column 레이아웃
젯팩 컴포즈 스터디를 이어가본다. 아래는 지난 젯팩 컴포즈 포스팅에서 다뤘던 내용과 이번에 다룰 내용 Chapter 정보이다.지난 스터디에서는 젯팩 컴포즈의 가장 기본적인 빌딩블럭인 '컴포저
sparkthenmove.tistory.com
마무리 하며
본 포스팅이 안드로이드 앱 개발을 시작하려는 분들에게 작게나마 도움이 되면 좋겠습니다. 코틀린과 자바 모두 각각의 장단점을 가지고 있으니, 현재 본인의 목적과 상황을 고려하여 최선의 선택을 하면 됩니다. 최대한 객관적인 데이터 기준으로 작성하려고 노력하였으나, 필자의 개인적인 의견이 반영된 부분이 있습니다. 저와 생각이 다르거나 더 나은 관점의 의견이 있다면 언제든지 댓글로 남겨주세요.

Spark Then Move !!
'안드로이드 앱' 카테고리의 다른 글
| 젯팩 컴포즈에서 XYZScope 의미와 동작원리 (RowScope, ColumnScope, BoxScope) (0) | 2025.11.28 |
|---|---|
| 안드로이드 젯팩 컴포즈 (ch26~28) - Box레이아웃, 커스텀 레이아웃 (0) | 2025.11.28 |
| 안드로이드 젯팩 컴포즈 (ch22~25) - Slot API, 모디파이어(Modifier), Row/Column 레이아웃 (0) | 2025.11.26 |
| 안드로이드 젯팩 컴포즈 (ch18~21) - 컴포저블 개념, 상태 및 재구성 (0) | 2025.11.26 |
| 안드로이드 젯팩 컴포즈 스터디 시작. (0) | 2025.11.23 |