News

Kotlin 로드맵의 9가지 주요 내용

Read this post in other languages:
English, Français, Deutsch

많은 분들이 Kotlin의 미래와 앞으로의 방향을 알고 싶어합니다. 곧 출시될 새로운 컴파일러에 대해 소개하고 도구 품질과 성능, 서버 측 및 KMM 경험에 중점을 둔 이야기는 종종 해드리지만 전체적인 그림을 소개한 경우는 별로 없었습니다. 

최신 정보를 접하고 팀의 모든 계획을 알아보려면 Kotlin 공개 로드맵을 살펴보세요. 최근에 2021년 이후의 계획을 반영하여 로드맵을 업데이트했습니다! 이 업데이트는 내년에 언어, 도구 및 생태계가 어떻게 전개될지를 다루고 있습니다. 업데이트된 로드맵을 직접 둘러보거나, 이 블로그 게시물에서 9가지 주목할 주요 사항을 확인하세요.

이 글을 읽기 보다는 동영상이 편하신 분들을 위해, 이 업데이트의 5가지 흥미로운 하이라이트를 포함한 비디오를 준비했습니다.

1️⃣ 큰 진보의 발걸음을 내디딘 새로운 컴파일러

2️⃣ Sealed when

3️⃣ WebAssembly에 베팅

4️⃣ 새로운 Kotlin/Native 가비지 컬렉터, 실험 단계로 진행

5️⃣ KMM에서 iOS 관련 도구 개선

6️⃣ Kotlin Multiplatform 도구에서 Apple Silicon 대상 지원

7️⃣ IDE 성능 및 안정성을 개선하는 새로운 방법

8️⃣ 새로운 핵심 라이브러리 기능

9️⃣ 새로운 스타일의 커뮤니티 자산

1️⃣ 큰 진보의 발걸음을 내디딘 새로운 컴파일러

새로운 Kotlin 컴파일러는 새로운 아키텍처에 대한 프런트엔드와 함께 JVM 및 JS 백엔드를 다시 작성하는 거대한 프로젝트입니다. 완전히 완료되면 이 프로젝트는 상당한 성능 이점을 실현하고 컴파일러 플러그인 API를 지원하며 새로운 언어 기능을 만들 수 있는 기회를 제공하게 될 것입니다. 컴파일러의 새로운 JVM 백엔드 부분을 이제 막 출시했으며 이제 다른 부분에 초점을 맞추고 있습니다.

성능 향상을 위해서는 새로운 컴파일러 프런트엔드가 필요합니다. 한동안 이 작업에 매진해오고 있으며 알파 버전을 발표할 날이 멀지 않았습니다. 처음에는 JVM 대상만 지원하고 프로젝트의 특정 부분에서만 작동하게 될 것입니다. 새 프런트엔드가 명시적으로 지원되면 컴파일 속도가 두 배 빨라질 것입니다.

두 번째로 중점을 두고 있는 것은 새로운 Kotlin/JS 백엔드를 안정화된 상태로 만드는 것입니다. 이를 위해서는 증분 컴파일 및 소스 맵 생성을 구현해야 합니다.

2️⃣ Sealed when

코드베이스에 Kotlin의 when 구문을 완전하게 만드는 유틸리티 함수가 있나요? Jake Wharton은 @Exhaustive when 구문을 완전하게 해주는 어노테이션을 도입한 Kotlin 플러그인도 만들었습니다. 이 플러그인이 곧 더 이상 필요하지 않게 되기를 바랍니다!

YouTrack에서 230표를 획득하고, 모두가 기다려온 기능인 sealed when을 도입할 계획입니다. 특정 언어 구문은 아직 준비되지 않았지만, 컴파일러가 when 구문이 완전하지 않다는 경고를 표시하도록 하는 것이 기본적인 아이디어입니다. 이렇게 하면 자체 함수를 도입할 필요 없이 코드를 더 안전하게 만들 수 있습니다.

Kotlin은 새로운 기능을 도입하고 실험적 기능을 안정화하면서 빠르게 진보하고 있습니다.

공개된 로드맵을 확인하시고 현재 중점을 두고 있는 48가지 기능을 전체적으로 살펴보세요!

3️⃣ WebAssembly에 베팅

앞으로 WebAssembly가 리치 웹 애플리케이션을 만들기 위한 새로운 표준으로 자리잡게 될 것이며, 여기서 Kotlin이 완벽한 조화를 이루어야 한다는 것이 저희의 생각입니다.

이것이 바로 Kotlin/Wasm에 올인을 결정한 이유입니다! 이 작업을 전담하여 수행할 팀을 구성하는 작업에 이미 돌입했습니다. 성능 시험을 반복하고, WebAssembly GC 제안서 작성자와 긴밀히 협력하며, 기본 Kotlin 언어 기능, 라이브러리 및 기본 Gradle 지원을 구현하고, 실험적인 JavaScript 상호 운용성을 추가할 계획입니다. 

4️⃣ 새로운 Kotlin/Native 가비지 컬렉터, 실험 단계로 진행

간단한 가비지 컬렉터를 만드는 데 필요한 대부분의 구성 요소를 이미 프로토타이핑 했습니다. 다음 단계는 멀티스레딩 가능한 가비지 컬렉터 구현을 작성하는 것입니다. 첫 번째 버전은 속도가 느려 프로덕션에는 대응하지 못할 것입니다. 그러나 피드백을 받기 위해 올해 말에 첫 버전을 공개할 계획입니다. 자세한 내용을 알고 싶다면 Roman Elizarov가 얼마 전에 게시한 글을 읽어보세요. 가비지 컬렉터의 현황과 향후 계획에 대해 훨씬 더 자세한 내용이 나와 있습니다. 

Kotlin/Native로 작업할 때마다 오랜 친구인 InvalidMutabilityException을 더 이상 보지 못하게 될 테니 곧 작별 인사를 할 준비를 해 주세요.

5️⃣ KMM에서 iOS 관련 도구 개선

KMM은 크로스 플랫폼 기술이므로 저희는 개발자들이 iOS 관련 도구를 즐겁게 사용하기를 바라고 있습니다! Kotlin/Native 메모리 모델 재작업 외에도 해야 할 일이 많이 남아 있습니다. 지금은 Cocoapods 통합 UX를 개선하고 디폴트 스크립트에서 packForXcode Gradle 빌드 작업을 숨겨 프로젝트 설정과 첫 경험을 단순화하는 데 중점을 두고 있습니다.

프로 팁: 로드맵의 48개 모든 기능을 편리하게 볼 수 있도록 특별한 YouTrack 보드를 준비했습니다. 직접 사용해 보세요!

6️⃣ Kotlin Multiplatform 도구에서 Apple Silicon 대상 지원

Apple Silicon 채택이 계속 증가하고 있습니다. Kotlin/Native 컴파일러는 이미 이 플랫폼에서 작동하며 이에 대한 바이너리를 생성할 수 있습니다. 프로젝트에서 Apple Silicon 지원을 충분히 즐길 수 있도록 Kotlin Multiplatform Gradle 플러그인과 모든 Kotlinx 라이브러리에서 이를 지원할 예정입니다.

7️⃣ IDE 성능과 안정성을 개선하는 새로운 방법

저희는 빠르고 원활한 IDE 지원에 항상 우선적인 중점을 두고 있습니다. 응답 속도를 높이기 위한 장기적인 해답은 새로운 컴파일러이지만, 현재 도구를 계속 지원하고 성능을 개선할 새로운 방법을 찾고 있습니다.

IntelliJ IDEA 및 Android Studio용 Kotlin 플러그인은 내부적으로 30개 이상의 다양한 색인을 사용합니다. 색인 시스템을 리팩터링하여 코드 분석 속도와 안정성을 개선할 수 있는 다양한 방법을 확인했습니다. 그 외에도 IDE 탐색 및 사용 위치 찾기 속도를 크게 높일 계획입니다.

프로 팁: 로드맵은 6개월마다 크게 업데이트되며 각 기능 출시 후에 일부 변경이 생길 수 있습니다. 특정 티켓을 팔로우하려면 간단히 투표하세요. 그러면 상태가 업데이트될 때마다 알림을 받을 수 있습니다.

Follow a YT ticket

8️⃣ 새로운 핵심 라이브러리 기능

코루틴 및 직렬화와 같은 표준 및 kotlinx 라이브러리를 지속적으로 개선하고 있습니다. 다음과 같은 개선 사항도 포함되어 있습니다.

9️⃣ 새로운 스타일의 커뮤니티 자산

새로운 Kotlin 로고를 보셨나요? 이것은 색상, 타이포그래피 및 정체성을 업데이트한 새로운 시각적 스타일 프로젝트의 일부입니다. 이제 이 새로운 스타일을 사용하여 Kotlin 사용자 그룹에 제공된 자산을 업데이트할 계획입니다.

사용자 그룹의 오거나이저분 중에, 없어서 아쉬운 자산 또는 작업을 더 쉽게 만들어줄 수 있는 방법 등에 관한 의견이 있으신 분들은 티켓에 그 의견을 제공해 주시면 정말 감사하겠습니다!


저희는 사용자 여러분들이 Kotlin의 미래를 함께 해주시기를 바라고 있습니다. 여러분의 피드백과 아이디어가 우리의 미래 비전을 만들어갑니다. 저희는 계속해서 블로그YouTube 채널에서 앞으로의 계획을 소개할 예정입니다. 두 채널을 모두 구독하고 계속 지켜보면서 여러분의 생각과 경험을 공유해주세요.

프로 팁: 주요 로드맵 하이라이트에 대한 동영상을 놓치지 않으려면 YouTube 채널을 구독해 주세요.

자세히 알아보기

이 게시물은 Egor Tolstoy가 작성한 Nine Highlights from the Kotlin Roadmap을 번역한 글입니다.

Discover more