원문은 여기서 확인 가능하며 블로그 번역 리뷰에는 노현석(Android GDE)님이 참여해주셨습니다.
게시자: David Winer, 제품 관리자
이 블로그 게시물은 #11WeeksOfAndroid 주간 시리즈 중 일부입니다. 우리는 개발자가 어떤 중요한 정보도 놓치지 않도록 매주 Android의 주요 영역을 다루고 있습니다. 이번 주에는 언어에 관해 집중 조명했으며, 알아두셔야 할 내용을 아래에 간단히 정리했습니다.
최신 Android 개발은 뛰어난 언어 지원으로 시작됩니다. Kotlin, 자바 프로그래밍 언어, C++가 함께 개발자들이 앱 개발에 매일 사용하는 Android의 API와 도구를 위한 기반을 형성하고 있습니다. 이번 주에는 Android의 세 핵심 언어의 최신 뉴스를 모두 살펴봤습니다. Kotlin 코루틴부터 Android 11의 새로운 자바 API와 네이티브 개발을 위해 더 나은 도구까지, 많은 것들이 최신 릴리스에 포함되어 있습니다.
Kotlin과 코루틴
Kotlin은 Android의 독보적인 첨단 API의 핵심입니다. 전 세계 Android 개발자들로부터 Kotlin의 뛰어난 표현력, 더욱 수준 높은 앱 작성에 도움이 되는 측면, 기존 자바 코드 베이스에서 손쉽게 시작할 수 있는 점 등에 매료되어 Kotlin이 정말 마음에 든다는 얘기를 많이 듣고 있습니다. 현재 Play Store에 게시된 상위 1000개 앱 중 70% 이상이 Kotlin을 사용하며, SlashDataTM 는 올해 초에 Kotlin이 지난 2년간 비율로만 보면 가장 빠르게 성장하는 언어 커뮤니티였다고 발표한 바 있습니다. 우리는 Android 11 베타를 선보이면서, Android에서 이루어지는 비동기 작업에 코루틴을 공식적으로 권장함으로써 Kotlin을 더욱 폭넓게 받아들이기로 했습니다.
코루틴을 사용하면 비동기 코드를 쉽게 작성하고 읽고 이해할 수 있습니다. 코루틴 라이브러리는 안정적인 데다, Room, LiveData, WorkManager를 비롯해 개발자들이 사용하고 있는 Jetpack 라이브러리 중 다수와 이미 심층적으로 통합되어 있습니다. 코루틴을 처음 접하는 분이라면, Android ❤️ 코루틴: Kotlin에서 비동기 작업을 관리하는 방법, 최신 코루틴 학습 경로, 새로운 코루틴 개발자 가이드를 확인해 보세요.
Kotlin 시작하기
Android Jetpack의 Kotlin-first 라이브러리부터 Android Studio에 있는 도구와의 긴밀한 통합까지, Android는 Kotlin과 깊숙이 결합되고 있어 지금이야말로 Kotlin를 본격적으로 시작할 최적기입니다. 하지만 우리는 많은 개발자로부터 각자의 개발팀에 Kotlin을 채택하자고 설득하는 게 만만찮은 일이라는 얘기를 듣습니다. Kotlin은 자바 프로그래밍 언어와 100% 상호 운용 가능하지만, 팀원들은 걱정스러운 부분이 있을 수 있습니다. 예컨대, '새로운 언어를 배우는 데 시간을 들일 만한 가치가 있을까?', '우선순위가 높은 다른 제품과 기술을 두고서 Kotlin에 얼마나 우선순위를 부여할 수 있을까?'와 같은 의문이 들 수 있을 것입니다.
우리는 이번 주에 Google Home 팀을 통해 이런 질문에 답하는 데 도움이 될 만한 새로운 사례 연구를 공개했습니다. Google Home 팀은 1년간에 걸쳐 모든 새로운 기능 개발을 Kotlin으로 옮겼는데, 동 기간 중에 null 포인터 예외가 33% 감소한 것을 확인했습니다. 이 점은 Duolingo에서 Zomato와 Cash App까지, 전 세계 곳곳의 Android 팀으로부터 들은 얘기와 일맥상통합니다. Kotlin은 크고 작은 다양한 팀을 위해 생산성과 더 높은 앱 품질이라는 두 가지 형태로 모두 가치를 제공하고 있습니다. Kotlin에 대한 모든 최신 사례 연구와 데이터에 대해서는 새로운 Kotlin 사례 연구 페이지를 확인해 보세요.
우리는 초보자를 위해 Kotlin으로 배워보는 Android 기초라는 새로운 교육 과정을 시작한다고 발표했습니다. 이제 막 프로그래밍 방법을 배우고 계신 분의 경우, Android 기초 교육 과정을 통해 함수, 변수 등의 필수적인 프로그래밍 개념을 익힌 후 Kotlin으로 간단한 'Hello World' 프로그램을 코딩하는 것부터 시작해 전체 Android 앱 모음을 빌드하는 단계까지 나아가게 됩니다.
자바 프로그래밍 언어와 C++
우리는 3년 전에 Kotlin을 공식적으로 지원하겠다고 발표할 때 수많은 자바 및 C++ Android 개발자가 있다는 점을 잊지 않았습니다. Android 11 릴리스에서는 이 두 가지 언어에 대한 지원을 모두 계속 개선하는 방향을 추구했습니다. Android 11 베타를 발표하면서, 우리는 OpenJDK 9, 10, 11에서 다수의 새로운 API와 함께 자바 라이브러리 지원을 업그레이드했습니다. 또한 Android Studio 4.0에서 자바 라이브러리 디슈가링을 선보였는데, 이를 통해 구형 Android 기기에서도 이런 새로운 Java API 중 다수를 손쉽게 사용할 수 있습니다. 우리는 그동안 구형 기기에서 java.time 지원을 요청해오신 개발자들의 목소리를 분명히 귀담아듣고 있었으며, 마침내 그에 대한 응답을 내놓게 되었습니다. 이런 새로운 API를 사용하는 방법에 관한 모든 최신 정보는 최신 Java API 지원에 관한 Murat Yener의 강연을 확인해 보세요. 우리는 Android 11을 내놓으면서 I/O 프리페치로 훨씬 더 빠르게 앱을 시작할 수 있도록 Android 런타임도 업데이트했습니다.
C++ 개발자 경험도 계속 점점 나아지고 있습니다. Android 11에는 네이티브 툴체인 전반에 걸친 업데이트가 포함되었으며, Android Studio 4.0에서 PGO(Profile-Guided Optimization)와 네이티브 종속성 관리 개선 사항을 위한 더 나은 도구가 이에 포함됩니다.
지속적으로 향상되는 툴체인
마지막으로, 우리는 Android Studio에서 D8 및 R8 컴파일러의 개선에 계속 주력하겠습니다. Android Studio에는 앱의 메모리 공간을 작게 유지해 사용자들 사이에서 설치 횟수 증가와 유지 비율 향상으로 이어지는 R8 shrinker에 대한 지원 기능이 내장되어 있습니다. 최근에는 R8과 함께 Kotlin 리플렉션을 사용하는 Kotlin 라이브러리 및 앱을 축소하기 위한 지원 기능도 추가했습니다. 자세한 내용은 Mads Ager 및 Morten Krogh-Jespersen의 최신 Medium 게시물을 확인해 보세요.
참고 자료
#11WeeksOfAndroid 동영상 콘텐츠의 전체 재생 목록은 여기서 찾아보실 수 있습니다. 각 주에 다룬 내용에 관해 더 자세히 알아보려면 여기를 참고하세요. 우리는 매주 새로운 분야를 계속 집중 조명할 것이므로, 계속 지켜봐 주시고 Twitter와 YouTube에서 팔로우하세요. 여러분과 이러한 경험을 함께 나눌 수 있도록 해주셔서 감사합니다!