기술지원 문의는 로그인 후에 가능합니다.

확인

Tech Blog

단군소프트에서 제공하는 소프트웨어 활용에 도움을 줄 수 있는 정보와 소프트웨어 새소식, 교육/세미나 정보를 제공해드립니다.

태그 모음

소프트웨어 소식

2021년 첫 주요 릴리스, Kotlin 1.5.0 출시

21-05-11


안녕하세요 JetBrains 한국 총판 단군소프트입니다.


드디어 신규 릴리스 일정에 따른 첫 번째 주요 릴리스인 Kotlin 1.5.0이 출시되었습니다!!

Kotlin 1.5.0 주요 기능
- JVM 레코드
- sealed 인터페이스
- 인라인 클래스 등의 안정적인 언어 기능
- 새로운 디폴트 JVM IR 컴파일러

Kotlin 1.4.30 및 Kotlin 1.5.0 EAP 릴리스의 테스트 버전 기능에 대해 여러분이 보내주신 의견 덕에 기능을 안정화할 수 있었습니다.여러분의 도움에 정말 감사드립니다!

여러분의 도움에 보답하고자 Kotlin 1.5.0 온라인 행사를 준비했습니다!!

아래에 Kotlin 1.5.0의 변경 사항 및 온라인 행사에 대한 소개를 준비했으니,
지금 바로 자세한 내용을 확인하세요~~


안정적인 언어 기능

Kotlin 1.5.0에는 1.4.30에서 테스트 버전으로 제공된 새로운 언어 기능의 안정적인 버전이 포함되어 있습니다.

▶ 최신 Java 기능인 레코드 클래스와의 상호운용성을 유지하기 위한 JVM 레코드에 대한 지원
: Kotlin 클래스를 Java 코드의 레코드로 사용하려면 data 클래스로 만들고 @JvmRecord 어노테이션으로 표시합니다.



JVM 레코드를 사용하기 위한 요구 사항에 관해 자세히 알아보세요.

▶ sealed 인터페이스. sealed 제어자는 클래스에서 작동하는 방식과 동일하게 인터페이스에서 작동하며, sealed 인터페이스의 모든 구현은 컴파일 시 인식됩니다.



▶ sealed 클래스 개선 사항. 이전에는 모든 하위 클래스가 sealed 클래스와 동일한 파일에 있어야 했습니다. 이제 컴파일 유닛 및 패키지가 동일하기만 하면 어느 파일에든 있을 수 있습니다.​​

▶인라인 클래스는 값만 들어있는 ​값 기반 클래스의 하위 집합입니다. 이 클래스는 메모리 할당 사용으로 인한 추가 오버헤드 없이 특정 유형




표준 및 테스트 라이브러리 개선 사항
Kotlin 1.5.0-RC 블로그 글에서 진행된 설문조사에 따르면 가장 기대되는 Kotlin 1.5.0 라이브러리 개선 사항은 부호 없는 정수 유형을 위한 새로운 안정적인 API입니다.

▶ 표준 라이브러리는 다음과 같은 여러 유용한 기능을 제공합니다.
1. 부호 없는 정수 유형 및 그 범위, 진행, 함수를 지원하는 새로운 안정적인 API: 부호 없는 정수에 관해 자세히 알아보세요.
2. 최신 논블로킹(non-blocking) Java IO를 Kotlin-idiomatic 스타일로 사용할 수 있도록 지원하는 java.nio.file.Path용 확장 함수
3. 문자열과 문자의 대소문자 변경이 가능한 새로운 로케일에 구애받지 않는 API, 문자와 정수 코드 및 숫자 값 간의 변환이 가능한 새 함수 세트, 더 많은 char 함수에 대한 멀티 플랫폼 지원 등이 포함된 String 및 Char API 개선 사항
4. 내부 표현에 Long 값을 사용, 기간을 Long 값으로 검색할 수 있도록 새 프로퍼티를 제공하는 등의 Duration API 변경 사항

▶테스트 라이브러리​에는 다음과 같은 중요한 개선 사항이 포함됩니다.
1. 멀티플랫폼 프로젝트의 일반 소스 세트 내 단일 kotlin-test 종속성
2. 단일 kotlin-test 종속성을 지정할 때 Kotlin/JVM 소스 세트의 테스트 프레임워크가 자동 선택됨
3. 다양한 어설션 함수 업데이트

라이브러리 개선 사항에 관한 추가 설명은 아래의 링크에서 확인하세요.
-라이브러리 개선 사항에 관한 블로그 글(예시 포함) 읽어보기
-Kotlin 1.5.0의 새로운 기능 읽어보기.
-동영상 시청하기



Kotlin/JVM

▶ Kotlin 1.5.0에서 제공하는 기능:
1. Kotlin 1.4.0에서 발표된 새로운 JVM IR 컴파일러가 안정화되고 디폴트로 설정
블로그 글문서에서 새 컴파일러에 관해 자세히 알아보세요.
2. SAM 어댑터 및 람다를 동적 호출(invokedynamic)로 컴파일하여 최신 JVM 기능의 이점을 활용.
→ Kotlin 일반 람다의 컴파일은 실험적입니다.
3. 새로운 디폴트 JVM 대상: 1.8. 1.6 대상은 사용 중단됩니다.
4. Java의 유형 null 값 가능성 정보를 더 효과적으로 처리
5. @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를 사용하고 있는 경우 릴리스가 출시되면 자동 업데이트를 할 수 있습니다.
- 수동 업데이트 : 이 지침을 따라 직접 업데이트할 수 있습니다. 단, Android Studio 4.2.0, Arctic Fox Canary 15 또는 그 이후 버전에서만 Kotlin 1.5.0을 지원한다는 점을 유의해 주세요.


추가로 다음 IDE의 최신 버전을 언제든지 다운로드하여 광범위한 Kotlin 지원을 받을 수 있습니다.
1. 다양한 플랫폼용 Kotlin 애플리케이션 개발을 도와주는 IntelliJ IDEA
2. Android 및 크로스 플랫폼 모바일 애플리케이션 개발을 도와주는 Android Studio


또한 kotlinx 라이브러리를 호환되는 버전으로 업데이트하고 기존 프로젝트의 빌드 스크립트에 Kotlin 버전 1.5.0을 지정했는지 확인하세요. 명령줄 컴파일러가 필요한 경우, Github 릴리스 페이지에서 다운로드하세요.

문제가 발생하면?
1. Slack(초대 받기)에서 도움말을 찾아보세요.
2. JetBrains 이슈 트래커인 YouTrack에 보고해 주세요.


"Kotlin 1.5 온라인 행사"

Kotlin 1.5.0에 관해 궁금한 점이 있으신가요? 5월 25일​에 열리는 Kotlin 1.5 온라인 행사에서는 Kotlin 팀이 최신 릴리스에 대한 모든 질문에 답해 드립니다. 알고 싶은 것을 무엇이든 물어볼 수 있습니다. 질문은 없지만 답변에만 관심이 있는 분들도 환영합니다!!

[행사 내용]
-행사 일시: 2021년 5월 24일(월) 오후 4시 ~ 5시 30분 (CEST, 유럽 서머 타임)
-행사 방식: 온라인 행사
-질문 참여 방법: #kotlin15ask를 사용하여 Twitter에 게시 또는 등록 양식에 추가



모든 기능 릴리스와 마찬가지로, 이전에 공개했던 변경 사항의 일부 지원 중단 주기가 Kotlin 1.5.0에서 종료됩니다. 이러한 사례는 언어 위원회에서 모두 신중하게 검토한 후 Kotlin 1.5 호환성 가이드에 표시됩니다. 또한 해당 변경사항을 YouTrack에서 확인할 수 있습니다.

지금 바로 Kotlin 1.5.0을 설치하고 Kotlin 1.5 온라인 행사에 등록하세요!


이 게시물은 Ekaterina Volodko가 작성한 Kotlin 1.5.0 – the First Big Release of 2021을 번역한 글입니다.

태그