Kotlin
A concise multiplatform language developed by JetBrains
2021년 첫 주요 릴리스, Kotlin 1.5.0 출시
신규 릴리스 일정에 따른 첫 번째 주요 릴리스인 Kotlin 1.5.0을 환영해 주세요!
이번 릴리스에는 JVM 레코드, sealed 인터페이스, 인라인 클래스 등의 안정적인 언어 기능이 제공되고 새로운 디폴트 JVM IR 컴파일러가 포함되어 있습니다. Kotlin 1.4.30 및 Kotlin 1.5.0 EAP 릴리스의 테스트 버전 기능에 대해 여러분이 보내주신 의견 덕에 기능을 안정화할 수 있었습니다.
여러분의 도움에 정말 감사드립니다! 감사합니다!
이미 25,000명이 넘는 개발자가 IntelliJ IDEA에서 새로운 JVM IR 컴파일러를 사용했습니다.
사용해볼수록 그 이점은 뚜렷해집니다. 이 새로운 컴파일러는 통합된 파이프라인 및 비즈니스 로직을 Kotlin/Native 및 Kotlin/JS IR 컴파일러와 공유하므로, 사용자는 모든 플랫폼에서 대부분의 기능, 최적화, 버그 수정을 동시에 구현할 수 있습니다. 또한 모든 플랫폼에서 자동으로 작동하는 사용자 지정 처리 및 변환을 추가할 수도 있습니다.
Kotlin 1.5.0에 관해 궁금한 점이 있으신가요? 5월 25일에 열리는 Kotlin 1.5 온라인 행사에서 Roman Elizarov, Svetlana Isakova를 비롯한 Kotlin 팀원이 여러분의 궁금증을 풀어 드립니다.
이 블로그 글에서는 다음 내용의 개요를 확인할 수 있습니다.
- JVM 레코드, sealed 인터페이스, 인라인 클래스 등의 안정적인 언어 기능
- 안정적인 부호 없는(unsigned) 정수 유형,
java.nio.file.Path
에 대한 확장, String, Char 및 Duration API 개선 사항을 포함한
표준 및 테스트 라이브러리 개선 사항 - 새로운 디폴트 JVM IR 컴파일러를 포함한 Kotlin/JVM 개선 사항
- Linux 및 iOS 애플리케이션용의 더 빠른 디버그 컴파일을 포함한 Kotlin/Native 개선 사항
- 더 많은 JS 라이브러리를 새로운 Kotlin/JS IR 컴파일러로 마이그레이션하는 것을 포함한 Kotlin/JS 개선 사항
Kotlin 1.5.0으로 자동 업데이트
IntelliJ IDEA 또는 Android Studio를 사용하는 경우, 새 Kotlin 릴리스가 출시되는 즉시 자동으로 업데이트할 수 있는 옵션이 제공됩니다.
Kotlin 1.5.0을 설치하는 방법에 관해 자세히 알아보세요.
안정적인 언어 기능
Kotlin 1.5.0에는 1.4.30에서 테스트 버전으로 제공된 새로운 언어 기능의 안정적인 버전이 포함되어 있습니다.
- 최신 Java 기능인 레코드 클래스와의 상호운용성을 유지하기 위한 JVM 레코드에 대한 지원.
Kotlin 클래스를 Java 코드의 레코드로 사용하려면data
클래스로 만들고@JvmRecord
어노테이션으로 표시합니다.JVM 레코드를 사용하기 위한 요구사항에 관해 자세히 알아보세요.
- sealed 인터페이스.
sealed
제어자는 클래스에서 작동하는 방식과 동일하게 인터페이스에서 작동하며, sealed 인터페이스의 모든 구현은 컴파일 시 인식됩니다. - sealed 클래스 개선 사항. 이전에는 모든 하위 클래스가 sealed 클래스와 동일한 파일에 있어야 했습니다. 이제 컴파일 유닛 및 패키지가 동일하기만 하면 어느 파일에든 있을 수 있습니다.
- 인라인 클래스는 값만 들어있는 값 기반 클래스의 하위 집합입니다. 이 클래스는 메모리 할당 사용으로 인한 추가 오버헤드 없이 특정 유형의 값에 대한 래퍼로 사용할 수 있습니다. 선언에는
value
제어자를 사용합니다.
Kotlin 1.5.0 언어 기능 자세히 알아보기
- 언어 기능 테스트 버전에 관한 블로그 글 읽어보기
- 언어 관련 문서 읽어보기
- 언어 관련 동영상 시리즈 시청하기
표준 및 테스트 라이브러리 개선 사항
표준 라이브러리는 다음과 같은 여러 유용한 기능을 제공합니다.
- 부호 없는 정수 유형 및 그 범위, 진행, 함수를 지원하는 새로운 안정적인 API. 부호 없는 정수에 관해 자세히 알아보세요.
- 최신 논블로킹(non-blocking) Java IO를 Kotlin-idiomatic 스타일로 사용할 수 있도록 지원하는 java.nio.file.Path용 확장 함수
- 문자열과 문자의 대소문자 변경이 가능한 새로운 로케일에 구애받지 않는 API, 문자와 정수 코드 및 숫자 값 간의 변환이 가능한 새 함수 세트, 더 많은 char 함수에 대한 멀티 플랫폼 지원 등이 포함된 String 및 Char API 개선 사항
- 내부 표현에
Long
값을 사용, 기간을Long
값으로 검색할 수 있도록 새 프로퍼티를 제공하는 등의 Duration API 변경 사항
테스트 라이브러리에는 다음과 같은 중요한 개선 사항이 포함됩니다.
- 멀티플랫폼 프로젝트의 일반 소스 세트 내 단일
kotlin-test
종속성 - 단일
kotlin-test
종속성을 지정할 때 Kotlin/JVM 소스 세트의 테스트 프레임워크가 자동 선택됨 - 다양한 어설션 함수 업데이트
라이브러리 개선 사항에 관해 자세히 알아보기
- 라이브러리 개선 사항에 관한 블로그 글(예시 포함) 읽어보기
- Kotlin 1.5.0의 새로운 기능 읽어보기.
- 동영상 시청하기
Kotlin/JVM
Kotlin 1.5.0에서 제공하는 기능:
- Kotlin 1.4.0에서 발표된 새로운 JVM IR 컴파일러가 안정화되고 디폴트로 설정. 블로그 글 및 문서에서 새 컴파일러에 관해 자세히 알아보세요.
- SAM 어댑터 및 람다를 동적 호출(invokedynamic)로 컴파일하여 최신 JVM 기능의 이점을 활용. Kotlin 일반 람다의 컴파일은 실험적입니다.
- 새로운 디폴트 JVM 대상: 1.8.
1.6
대상은 사용 중단됩니다. - Java의 유형 null 값 가능성 정보를 더 효과적으로 처리.
- @JvmDefault 및 이전 Xjvm-default 모드 사용 중단.
Kotlin/Native
Kotlin 1.5.0에서 제공하는 기능:
linuxX64
및iosArm64
대상에 대한 디버그 모드에서 컴파일러 캐시 지원. 컴파일러 캐시를 활성화하면 대부분의 디버그 컴파일이 첫 번째 컴파일을 제외하고 훨씬 빠르게 완료됩니다. 테스트 프로젝트에서 측정한 결과에 따르면 속도가 약 200% 향상되었습니다.- 애플리케이션 충돌을 일으킬 수 있는 문제를 방지하기 위해 기본 제공 메모리 누수 검사기 비활성화. 필요한 경우에 메모리 누수 검사기를 활성화하는 방법을 알아보세요.
Kotlin/JS
Kotlin/JS에서는 새로운 Kotlin/JS IR 컴파일러가 베타로 향상됩니다. IR 컴파일러에는 KVision, fritz2, doodle등을 비롯해 이미 잘 알려진 프레임워크와 라이브러리가 다양하게 제공됩니다.
라이브러리 작성자의 경우 이전 버전과의 호환성을 사용하여 사용 중인 라이브러리를 마이그레이션하여 이러한 라이브러리에 추가할 수 있습니다.
또 다른 개선 사항으로는 webpack 4 대신 webpack 5를 사용하여 JS 번들을 빌드하는 것이 있습니다.
Kotlin 1.5.0 설치 방법
IntelliJ IDEA 또는 Android Studio를 이미 사용하고 있는 경우 릴리스가 출시되면 Kotlin을 1.5.0으로 자동 업데이트하도록 제안받습니다. 또한 이 지침을 따라 직접 업데이트할 수도 있습니다. Android Studio 4.2.0, Arctic Fox Canary 15 또는 그 이후 버전에서만 Kotlin 1.5.0을 지원한다는 점을 유의해주세요.
다음 IDE의 최신 버전을 언제든지 다운로드하여 광범위한 Kotlin 지원을 받을 수 있습니다.
- 다양한 플랫폼용 Kotlin 애플리케이션 개발을 도와주는 IntelliJ IDEA
- Android 및 크로스 플랫폼 모바일 애플리케이션 개발을 도와주는 Android Studio
또한 kotlinx 라이브러리를 호환되는 버전으로 업데이트하고 기존 프로젝트의 빌드 스크립트에 Kotlin 버전 1.5.0
을 지정했는지 확인하세요.
명령줄 컴파일러가 필요한 경우, Github 릴리스 페이지에서 다운로드하세요.
문제가 발생하면
Kotlin 1.5 온라인 행사
5월 25일에 열리는 Kotlin 1.5 온라인 행사에서는 Kotlin 팀이 최신 릴리스에 대한 모든 질문에 답해 드립니다. 알고 싶은 것을 무엇이든 물어볼 수 있습니다. 질문은 없지만 답변에만 관심이 있는 분들도 환영합니다. 이 행사는 1시간 반 동안 진행됩니다.
질문은 #kotlin15ask
를 사용하여 Twitter에 게시하거나 등록 양식에 추가하세요.
또한 5월 27일부터 28일까지 Reddit에서 Ask Me Anything(무엇이든 물어보세요, AMA) 세션을 진행하여 답변이 없는 질문에 답하고 새로운 질문에도 답변해 드립니다.
호환성
모든 기능 릴리스와 마찬가지로, 이전에 공개했던 변경 사항의 일부 지원 중단 주기가 Kotlin 1.5.0에서 종료됩니다. 이러한 사례는 언어 위원회에서 모두 신중하게 검토한 후 Kotlin 1.5 호환성 가이드에 표시됩니다. 또한 해당 변경 사항을 YouTrack에서 확인할 수도 있습니다.
동영상 및 읽을거리
Kotlin YouTube 시청하기:
- Kotlin 1.5.0 동영상 재생목록
- Kotlin YouTube를 구독하여 코루틴 및 및 직렬화 라이브러리의 새로운 개선 사항에 관한 동영상을 놓치지 마세요.
Kotlin 블로그 읽어보기:
- Kotlin 1.5.0 언어 기능 테스트 버전
- Kotlin 1.5.0 표준 및 테스트 라이브러리 개선 사항
- 새로운 JVM IR 백엔드
- IntelliJ IDEA의 향상된 Kotlin 지원
Kotlin 문서에서 자세히 알아보기:
외부 기여자
이 릴리스에 포함된 풀 리퀘스트를 제공해주신 모든 외부 기여자분께 감사의 마음을 전합니다.
Jinseong Jeon, Mads Ager, Ivan Gavrilovic, pyos, Steven Schäfer, Iaroslav Postovalov, scaventz, Kristoffer Andersen, Bingran, Stefan Wolf, Victor Turansky, fjjohnchen, justin.wei, Nelson Osacky, Mikhail Galanin, Michael Hoisie, Kris Hall, Kevin Bierhoff, Jiaxiang Chen, Hung Nguyen, Cedric Champeau.
YouTrack에서 가장 열성적으로 활동한 이슈 보고자
YouTrack에 이슈를 보고하여 이번 릴리스를 개선하는 데 도움을 주신 모든 커뮤니티 회원분께 감사드립니다! 그중 상위 20명의 보고자 목록을 다음과 같이 작성하여 특별히 감사의 말씀을 전합니다.
Morgan Bartholomew (118 issues); Marc Knaup (78 issues); Ryan Nett (61 issues); Louis CAD (48 issues); Daniil Stepanov (44 issues); AndroidDeveloperLB (39 issues); Victor Turansky (38 issues); Jinseong Jeon (35 issues); Zac Sweers (25 issues); Łukasz Wasylkowski (22 issues); Tianyi Guan (21 issues); Christoph Sturm (20 issues); Axel Fontaine (19 issues); Alexander Nozik (18 issues); Robert Stoll (18 issues); Björn Kautler (18 issues); Róbert Papp (14 issues); Andreas Malik (14 issues); Lorenzo Neumann (14 issues);
Iaroslav Postovalov (14 issues).
Kotlin 1.5.0을 설치하고 Kotlin 1.5 온라인 행사에 등록하세요!
이 게시물은 Ekaterina Volodko가 작성한 Kotlin 1.5.0 – the First Big Release of 2021을 번역한 글입니다.