Kotlin logo

Kotlin

A concise multiplatform language developed by JetBrains

품질과 성능에 초점을 맞춘 Kotlin 1.4 출시

Read this post in other languages:

이 블로그 게시물은 다음 언어로도 읽을 수 있습니다:
日本語, Français, English, Español, Português, Русский, 简体中文

오늘 Kotlin 1.4.0이 출시됩니다! 지난 몇년간 JetBrains는 Kotlin을 재미 있고 즐겁고 생산적인 프로그래밍 언어로 만들기 위해 열심히 노력해 왔습니다. 이번 Kotlin 버전에서도 이러한 목표를 계속 추구하기 위해 Kotlin과 그 도구의 성능 및 품질을 개선하는 데 많은 에너지와 노력을 기울였습니다. 또한 오랫동안 기다려온 Kotlin 인터페이스용 SAM 변환을 포함하여 몇가지 새로운 언어 기능을 지원합니다.

file

Kotlin 1.4에 도입된 변경 내용 및 개선 사항을 최대한 활용하는데 도움이 될 Kotlin 1.4 온라인 이벤트에 여러분을 초대합니다. 이 행사에서는 Kotlin 팀과 함께 질문 답변 시간을 가지는 등 4일 동안 Kotlin 관련 논의를 완전히 무료로 즐기실 수 있습니다.

커뮤니티 및 에코시스템

지난 12개월 동안 580만 명 이상의 사용자가 Kotlin 코드를 편집했으며 그 수는 계속 증가하고 있습니다.

파일

Kotlin이 이렇게 인기를 얻고 있는 것을 보니 매우 기쁩니다! 그중 특히 활성화된 사용자 수가 고무적입니다(이 측정항목에 관해서는 향후에 블로그 글에서 자세히 설명하겠습니다). 여기서 보면 그 수치가 전년도보다 1.5배 증가했습니다.

2020년도 StackOverflow 개발자 설문조사에 따르면 Kotlin은 전문 개발자에게 가장 인기 있는 프로그래밍 언어 중 13위로 올랐으며, 기쁘게도 가장 사랑받는 상위 5개 언어 중 하나라고 합니다.

수많은 회사가 Kotlin을 주요 언어로 선택했으며 모든 플랫폼에서 성공적으로 사용하고 있습니다. JetBrains는 이러한 동향을 확인하게 되어 기쁘게 생각하며 이러한 기업 중 다수가 사례 연구를 만들어 커뮤니티가 읽고 배울 수 있도록 기여해주신 것에 깊이 감사드립니다. 다음은 최근 Kotlin으로 개발한 소프트웨어 중 돋보이는 몇가지 예시입니다.

Kotlin 커뮤니티도 빠르게 성장하고 있습니다. 현재 30,000여 명의 Kotlin 개발자가 SlackReddit에서 지식을 교환하고 서로 지원하고, 90,000여 명의 사용자가 JetBrains의 공식 Twitter 계정을 팔로우하여 팁과 정보, 공지사항을 확인하고 있습니다. Kotlin 커뮤니티는 전 세계 200개가 넘는 사용자 그룹을 보유하며 나날이 번창하고 있습니다. 소식을 전하고 지식을 공유하며 동료 Kotlin 개발자를 지원해 주신 모든 분들께 감사드립니다. 여러분이 조성해주신 따뜻하고 친절한 분위기 덕에 Kotlin을 함께 탐험하는 과정은 즐거운 경험이 되었습니다. 이러한 커뮤니티의 발전은 여러분 없이는 불가능했을 것입니다.

Kotlin 1.4 온라인 행사

JetBrains는 사용자 여러분이 Kotlin 1.4를 사용하여 유익한 경험을 쌓으면서 이 언어가 향후 어떻게 발전하면 좋을지 멋진 아이디어를 떠올려주셨으면 합니다. Kotlin 1.4 온라인 행사에 여러분 모두를 초대하는 이유도 바로 이러한 취지입니다!

이 행사는 Kotlin에 관한 지식과 이 언어와 에코시스템의 미래에 관한 정보로 가득한 4일로 구성됩니다. 여기서 JetBrains는 Kotlin 1.4의 새로운 변경 내용과 개선 사항에 대해 논의하고 이 언어에 대한 향후 계획을 공유할 예정입니다. 또한 Kotlin 팀원이 매일 Q&A 세션에서 여러분의 질문에 답변을 할 예정입니다. #kotlin14ask 해시태그로 트윗하거나 이 양식을 사용하여 미리 질문을 해 주세요.

Kotlin 1.4 온라인 행사는 10월 12일~15일에 스트리밍되며 여기에서 _무료_로 등록할 수 있습니다.

Kotlin 1.4 온라인 행사 등록하기

여러분 모두와 만나 뵐 수 있기를 기대합니다!

품질 중심

이 릴리스의 주요 초점은 IDE 성능 및 안정성 향상을 포함하여 Kotlin의 전반적인 개발 환경을 개선하는 데 맞춰졌습니다. 목표는 Kotlin 사용자의 생산성을 최대한 높이는 것으로, 사용자가 Kotlin을 더 즐겁게 사용할 수 있도록 사용자에게 가장 중요한 사항을 개선하는 데 집중했습니다.

IDE 멈춤 현상 또는 메모리 누수를 유발하는 수많은 이슈를 포함하여 60여 개의 성능 이슈를 검토하고 수정했습니다. 그 결과 Kotlin 1.4.0의 EAP 단계에서 전반적 환경이 사용하기에 훨씬 더 즐거워졌다는 긍정적인 피드백을 많이 받았습니다!

프로젝트 작업 시 큰 Kotlin 파일을 처음 열면 이제 훨씬 더 빨리 강조 표시된 내용을 볼 수 있습니다. 강조 표시 기능은 대부분의 사례에서 1.5~4배 빨라졌습니다.

또한 자동 완성 제안이 표시되는 데 걸리는 시간도 크게 개선하였습니다. 다음의 그래프는 Kotlin 사용자가 경험한 자동 완성 응답 시간의 평균치에 대한 전반적인 개요를 보여줍니다. 완성 기능의 응답시간이 500ms가 넘는 경우가 거의 절반으로 줄었습니다.

파일

코드 완성 속도 개선을 포함한 최신 변경 사항은 IntelliJ IDEA 2020.1 이상 및 Android Studio 4.1 이상 버전을 필요로 합니다.

성능 향상은 지속적으로 진행되는 프로세스로, 계속해서 멈춤 현상을 없애고 더 부드럽게 코드를 입력할 수 있도록 만드는 등 더 많은 개선 사항이 계획되어 있습니다. JetBrains는 IDE의 속도를 훨씬 높여줄 새로운 실험용 Kotlin 컴파일러 프런트엔드와의 통합을 이미 시작했습니다. 이는 플러그인의 많은 부분을 다시 작성해야 하는 대규모 작업이지만 코드 완성, 구문 강조 표시 및 컴파일러 오류 보고 등, IDE의 여러 영역에서 성능을 향상할 것입니다.

새로운 IDE 기능

JetBrains의 사명은 전문 소프트웨어 개발을 더 생산적이고 즐거운 경험으로 만드는 것이므로 당연히 Kotlin 관련 도구를 우수한 상태로 유지하고 Kotlin을 최대한 편하게 코딩할 수 있도록 만들려고 합니다.

이러한 맥락에서 코루틴 작업을 수월하게 수행할 수 있도록 돕고 특히 동시 애플리케이션의 버그를 잡아내기 위해 Coroutine Debugger(코루틴 디버거)를 도입했습니다. 이 디버거의 조기 기능 모음을 확장해 커뮤니티에 가장 필요한 기능을 제공할 예정이므로 JetBrains 채널 중 하나 또는 아래 댓글 섹션에서 여러분의 의견을 공유해주세요.

또한 새롭고 유연한 Kotlin Project Wizard(Kotlin 프로젝트 마법사)도 도입했습니다. 이 새로운 마법사 도구는 다양한 유형의 Kotlin 프로젝트를 생성하고 구성할 수 있는 단일 장소를 제공하므로 멀티플랫폼 프로젝트와 같은 더 복잡한 구조의 프로젝트도 쉽게 시작할 수 있습니다.

Kotlin 1.4.0에는 40여 개의 새로운 빠른 수정, 인텐션 및 검사가 추가되었으며, 코드를 수정할 때 Alt+Enter를 누르면 특정 컨텍스트에서 사용할 수 있는 항목을 확인할 수 있으므로 정확히 필요한 순간에 해당 항목을 이용할 수 있습니다.

새로운 컴파일러

JetBrains는 지금까지 꽤 오랫동안 Kotlin을 성능 및 확장성 측면에서 더욱 발전시킬 새로운 Kotlin 컴파일러를 개발해 왔습니다. 새로운 컴파일러의 주요 목표는 속도를 대폭 개선하고, Kotlin이 지원하는 모든 플랫폼을 통합하며, 컴파일러 확장 기능의 API를 제공하는 것입니다. 가능한 한 빨리 사용자가 사용할 수 있도록 새로운 부분을 단계적으로 도입하고 있습니다. Kotlin 1.4.0에서는 이 지속적인 작업의 일부를 출시합니다.

  • 강력해진 새로운 유형 추론 알고리즘이 기본적으로 활성화됩니다. 이 알고리즘은 더 많은 사용 사례에서 유형을 자동으로 추론하고, 복잡한 시나리오에서도 스마트한 형 변환을 지원하고, 위임된 프로퍼티에 대한 추론을 개선하는 등 다양한 기능을 수행합니다.
  • 새로운 JVM 및 JS 백엔드Alpha(알파) 모드에서 사용할 수 있습니다. 이 기능은 안정화가 완료되면 새로운 디폴트 값이 될 예정입니다.

현재 JetBrains는 컴파일러 파이프라인에서 최고의 성능 향상을 제공할 새로운 프런트엔드를 구현하기 위해 열심히 작업하고 있습니다. 이 프런트엔드는 코드를 분석하고, 이름을 파악하고, 유형 검사를 수행하는 등의 기능을 수행하는 컴파일러의 일부로, 이는 IDE 성능에도 영향을 미칩니다. 이 도구의 테스트 버전은 향후 릴리스에서 제공될 예정이므로 계속 소식을 확인해 주세요!

언어 기능

Kotlin 1.4는 다음과 같이 다양한 새로운 기능을 포함합니다.

라이브러리 개선 사항

표준 라이브러리에서 JetBrains가 일반적으로 중시하는 부분은 서로 다른 플랫폼과 작업 자체 모두에서 일관성을 향상하는 것입니다. 이 릴리스의 Kotlin 표준 라이브러리에는 새로운 컬렉션 연산자, 위임된 프로퍼티 개선 사항, 이중 대기열 구현 ArrayDeque기타 다양한 기능을 제공합니다.

Android 및 iOS 또는 JVM 및 JS 등 다양한 플랫폼에서 공유되는 ‘공통’ 코드로 된 표준 라이브러리를 사용할 수 있습니다. 공통 라이브러리는 점차 확대하여 누락된 기능을 추가하고 이동할 예정입니다.

또한 단일 플랫폼을 대상으로 하든, 멀티플랫폼 프로젝트에서 작업하든, Gradle Kotlin 프로젝트의 stdlib에서 종속 요소를 더 이상 선언할 필요가 없습니다. 이 종속 요소는 Kotlin 1.4.0부터 기본적으로 추가되어 있습니다.

Kotlin 에코시스템의 다른 부분에서는 다음과 같이 작업 중입니다.

Kotlin/JVM

여러분의 일반 프로젝트에 새로운 Alpha Kotlin/JVM backend를 사용해보고 저희에게 의견을 공유해주세요! 컴파일러 파이프라인이 통합됨에 따라 이러한 노력은 Jetpack Compose와 같은 컴파일러 확장 기능을 Kotlin 커뮤니티에 더 빨리 제공하는 데 도움이 될 것입니다.

Kotlin/JVM과 관련한 언어 기능:

Kotlin/JS

Kotlin 1.4.0에는 다른 기능 중에서도 특히 새로운 Gradle DSL 및 새로운 Kotlin/JS 컴파일러 백엔드의 Alpha 버전이 함께 제공됩니다.

  • 새로운 Gradle DSL은 DSL에서 CSS 및 스타일 로더를 구성하기 위한 지원을 추가하고, npm 종속 요소 관리와 관련된 다양한 개선 사항을 포함하며, Dukat 통합 기능에 대한 제어를 개선합니다.
  • 새로운 Kotlin/JS 컴파일러 백엔드에서는 Kotlin/JS의 미래를 맛볼 수 있습니다. 이러한 변화에는 Kotlin 코드에서 TypeScript 정의 자동 생성, 바이너리 및 번들 경량화, JavaScript에 Kotlin 기능을 노출하는 최신 방법 등의 최적화 및 기능이 포함됩니다.

Kotlin/Native

Kotlin/Native는 다음과 같은 새로운 기능과 개선 사항을 다양하게 제공합니다.

현재 Kotlin/Native의 자동 메모리 관리 구현에는 동시성에 대한 제한이 있으므로 이에 대한 대체물을 만들기 위해 작업 중입니다.

주요 초점은 Kotlin/Native가 Kotlin Multiplatform Mobile에서 원활하게 작동하도록 만드는 것이고, 그외에도 다양한 개선 사항을 준비하고 있습니다.

Kotlin 멀티플랫폼

Kotlin을 훌륭한 멀티플랫폼 솔루션으로 만드는 것은 최우선 과제 중 하나입니다. JetBrains는 KotlinConf에서 몇가지 중요한 개선 사항을 약속했으며 다음의 항목을 제공하게 되었음을 알려드립니다.

iOS 기기 및 시뮬레이터에서 Kotlin 코드를 실행, 테스트, 디버그하기 위한 Android Studio 플러그인을 개발 중입니다. 첫 번째 공개 테스트 버전이 곧 출시될 예정이니 계속 지켜봐 주시기 바랍니다.

Android와 iOS 간에 코드가 공유되는 모바일 사용 사례를 구체적으로 타겟팅하기 위해 Kotlin Multiplatform Mobile(KMM) 기술을 사용하는 방법을 설명하는 자료를 Kotlin 커뮤니티 회원들의 도움을 받아 대량으로 곧 출시할 계획입니다.

현재는 모바일 대상에 초점을 두고 있지만 Kotlin Multiplatform용 Web 대상의 경우 이미 JetBrains가 JetBrains Space를 빌드하고 출시하는 데 적극적으로 사용하고 있습니다. Web은 계속해서 Kotlin의 중요한 전략적 투자 대상이 될 것입니다.

자세한 내용

새로운 기능에 관한 자세한 설명은 Kotlin 1.4의 새로운 기능 페이지 및 문서에서 확인할 수 있으며 Kotlin 1.4로의 마이그레이션 방법도 자세히 알아볼 수 있습니다.

모든 주요 릴리스와 마찬가지로, 이전에 공개했던 변경 사항의 일부 지원 중단 주기가 Kotlin 1.4에서 종료됩니다. 이러한 사례는 언어 위원회에서 모두 신중하게 검토한 후

Kotlin 1.4 호환성 가이드에 표시합니다.

Kotlin을 개선할 수 있도록 도와주세요

IntelliJ IDEA 및 Android Studio에 있는 Kotlin 플러그인은 사용자가 Kotlin의 기능을 사용하는 방식에 관해 익명화된 통계 정보를 수집합니다. 이 통계 수집을 여러분이 부디 수락해 주셨으면 좋겠습니다!

이 익명의 데이터는 사용자를 정확하게 이해하고 유용한 기능과 이슈를 일으키는 요소, 초점을 두어야 할 방향이 무엇인지 파악하는 데 크게 도움이 됩니다. 통계를 활성화하려면 _Preferences(환경 설정)_로 이동하여 Appearance & Behaviour(꾸미기 및 동작) | System Settings(시스템 설정) | Data Sharing(데이터 공유)을 열어 Send usage statistics(사용 현황 통계 보내기) 체크박스를 선택해 주세요.

Kotlin 1.3부터 가장 열성적으로 활동한 이슈 보고자

YouTrack에 이슈를 보고하여 이번 릴리스를 개선하는 데 도움을 주신 모든 커뮤니티 회원분들께 감사드립니다! 그중 상위 20명의 보고자 목록을 다음과 같이 공유하며, 특별히 감사의 말씀을 전합니다.

Igor Wojda(이슈 145건), Louis CAD(이슈 87건), Marc Knaup(이슈 86건), AndroidDeveloperLB(이슈 83건), Robert Stoll(이슈 68건), Morgan Bartholomew(이슈 62건), Victor Turansky(이슈 54건), Guan Tianyi(이슈 51건), Scott Pierce(이슈 38건), Andreas Malik(이슈 37건), Steven Schäfer(이슈 37건), Björn Kautler(이슈 36건), Róbert Papp(이슈 34건), Toshiaki Kameyama(이슈 30건), Nicholas Bilyk(이슈 29건), Michael Bailey(이슈 26건), Jake Wharton(이슈 25건), Lamberto Basti(이슈 24건), Serge Pro(이슈 23건), Egor Andreevici(이슈 21건)

지금 Kotlin 1.4를 사용해 보세요

언제나처럼 play.kotl.in에서 Kotlin을 온라인으로 사용해볼 수 있습니다.

Gradle 및 Maven에서는 1.4.0을 컴파일러 버전으로 사용하세요. 이에 관해서는 GradleMaven에 대한 문서를 참조하세요.

IntelliJ IDEA와 Android Studio에서는 Kotlin 플러그인을 1.4.0 버전으로 업데이트 하라는 메세지를 자동으로 표시합니다. 또한 Preferences(환경 설정) | Plugins(플러그인)를 열어 Kotlin 플러그인을 수동으로 업데이트할 수도 있습니다.

명령줄 컴파일러는 Github 릴리스 페이지에서 다운로드할 수 있습니다.

또한 이번 릴리스와 함께 게시된 다음 버전의 라이브러리를 사용할 수 있습니다.

kotlin-wrappers (kotlin-react 등)의 라이브러리 버전은 해당 저장소에서 찾을 수 있습니다.

코드 강조 표시 및 속도 향상을 포함한 IDE 성능 개선은 IntelliJ IDEA 2020.1 이상 및 Android Studio 4.1 이상 버전을 필요로 합니다.

새 릴리스에서 이슈가 발생한 경우 언제든지 Slack(여기에서 초대 받기)에서 도움을 요청하거나 YouTrack에 이슈를 보고해 주세요.

감사합니다!

Kotlin EAP 및 실험적 기능을 사용해보고 피드백을 주신 모든 분들께 진심으로 감사드립니다. JetBrains는 여러분과 함께 Kotlin 언어를 개발하고 있으며, 여러분의 소중한 의견에 따라 수많은 설계를 결정하고 있습니다. 커뮤니티와의 피드백 주기를 이렇게 빠르고 효과적으로 유지하는 일은 Kotlin을 최고의 언어로 만드는 데 매우 중요합니다!

이 릴리스에 포함된 풀리퀘스트를 제공해 주신 모든 외부 기여자분들에게도 감사의 마음을 전합니다. 이 릴리스를 완성하는 데 여러분의 도움이 컸습니다!

Kotlin을 사용하여 수많은 멋진 작품을 만들고 계신 모든 커뮤니티 사용자 분들께 깊이 감사드립니다. Kotlin 1.4은 모두를 위한 하나의 언어입니다!

이 게시물은 Svetlana Isakova가 작성한Kotlin 1.4 Released with a Focus on Quality and Performance를 번역한 글입니다.

image description

Discover more