Kotlin을 Web으로 가져오기

5월 10, 2023
Vivek Sekhar Product Manager

This post describes early experimental work from JetBrains and Google. You can learn more in the session on WebAssembly at Google I/O 2023.

애플리케이션 개발자는 가능한 한 많은 플랫폼에서 최대한 많은 사용자와 접하고자 합니다. 지금까지 이 목표는 Android, iOS, Web에서 각각 앱을 개발한다는 의미일 뿐만 아니라 각 앱을 지원할 백엔드 서버와 인프라를 구축한다는 의미이기도 했습니다.

kotlinWeb1

여기에 들어가는 수고를 줄이고자 일부 개발자는 멀티플랫폼 언어와 프레임워크를 사용하여 앱의 비즈니스 로직과 UI를 개발합니다. 이러한 멀티플랫폼 앱을 Web으로 가져오는 것은 이전에는 공유 애플리케이션 코드를 브라우저에서 실행할 수 있는 느린 JavaScript 버전으로 "컴파일"하는 것을 의미했습니다. 대신 개발자는 종종 JavaScript로 앱을 다시 작성하거나 단순히 Web 사용자에게 기본 모바일 앱을 다운로드하도록 지시합니다.

Web 커뮤니티는 WebAssembly GC라는 새로운 기술 덕분에 최신 언어에 대한 직접 Web 지원이라는 더 나은 대안을 개발하고 있습니다. 이 새로운 Web 기능을 사용하면 지원되는 언어로 작성된 크로스 플랫폼 코드를 모든 주요 브라우저 내에서 네이티브에 가까운 성능으로 실행할 수 있습니다.

Kotlin용 Web에서 이 새로운 기능에 대한 실험적 지원을 출시하게 되어 기쁩니다. 덕분에 Android 및 Web 개발자에게 더 빠른 성능의 새로운 코드 공유 기회를 제공하게 되었습니다.

Web에서의 Kotlin 멀티플랫폼 개발

Kotlin은 상위 1,000개의 Android 앱 중 95%에서 사용되는 생산적이고 강력한 언어입니다. 개발자들은 Kotlin으로 전환한 후 생산성이 높아지고 버그가 덜 발생한다고 말합니다.

JetBrains의 Kotlin Multiplatform MobileCompose Multiplatform 프레임워크는 개발자가 Android와 iOS 앱 간에 코드를 공유하도록 도와줍니다. 이 프레임워크는 이제 WebAssembly에 대한 Kotlin 컴파일을 위한 실험적 지원을 제공합니다. 초기 실험 결과, JavaScript 대신 WebAssembly를 사용하면 Kotlin 코드가 Web에서 최대 2배 더 빠르게 실행되는 것으로 나타납니다.

kotlinWeb2

JetBrains는 K2 컴파일러 버전 1.18.20의 출시 노트설명서에서 앱으로 Kotlin/Wasm을 사용하는 방법에 대한 자세한 내용을 공유합니다.

자세한 내용의 이해

Kotlin 같은 최신 모바일 언어를 Web에 도입하려면 다국어 가비지 컬렉션 및 JavaScript 상호 운용성 같은 까다로운 기술 문제를 해결해야 했습니다. 올해 Google I/O 컨퍼런스에서 열린 새로운 WebAssembly 언어에 대한 세션에서 자세히 알아볼 수 있습니다.

W3C WebAssembly 커뮤니티 그룹의 일원으로서 Web 전반의 브라우저 벤더, 학계, 서비스 제공 업체 간의 열린 협력이 없었다면 이 작업은 불가능했을 것입니다. 앞으로 몇 주 안에 V8 블로그에서 이 혁신적인 작업에 대한 기술적 세부 사항을 공유할 예정입니다.

Looking ahead: Web and Native Development

수십 년 동안 개발자들은 Web을 일종의 "범용 런타임"으로 꿈꿔온 동시에 네이티브 플랫폼과 관련된 특정 기능이나 성능 격차를 인정했습니다. 개발자는 아주 오랫동안 Web 또는 기본 모바일 앱 사이를 오가며 작업해야 했습니다.

하지만 이런 수고를 줄일 뿐만 아니라 Web 고유의 뛰어난 능력을 활용할 수 있도록 Web 네이티브 경험을 함께 작업할 수 있게 만들고자 합니다.

개방된 웹에서는 신규 사용자가 클릭 한 번으로 앱을 찾아 웹 페이지를 공유하는 것처럼 쉽게 공유할 수 있으며, 앱 스토어의 방해도 없고, 수익 지분이 여러분의 수익성에 영향을 미치지도 않습니다.

크로스 플랫폼 개발의 생산성과 네이티브 앱의 성능, 웹의 개방성이 바로 우리가 WebAssembly를 좋아하는 이유입니다.

여러분이 다음으로 무엇을 개발할지 정말 기대됩니다!