20-08-31
안녕하세요 JetBrains 한국 총판 단군소프트입니다.
그럼 바로 시작할까요? 개선된 Kotlin/JS 통합 Kotlin 1.4.0-RC에서는 @JsExport 어노테이션이 디폴트 컴파일러 백엔드와 호환됩니다. 또한 npm 종속 요소 관리 및 Gradle 프로젝트의 Dukat 통합을 더 강력하고 세분화하여 제공하고 CSS 지원을 개선하였습니다. ◆ 디폴트 컴파일러 백엔드용 @JsExport 어노테이션 Kotlin 1.4 이전 릴리스에서 @JsExport 어노테이션을 도입하였습니다. 이 기능은 새 IR 컴파일러 백엔드를 사용할 경우 JavaScript 또는 TypeScript에서 지원되는 최상위 선언을 생성하는 데 사용됩니다. Kotlin 1.4-M3 버전부터는 해당 어노테이션을 최신 디폴트 컴파일러 백엔드에서도 사용할 수 있습니다. 현재 디폴트 컴파일러 백엔드를 사용할 때 @JsExport로 최상위 선언에 어노테이션을 추가하면 선언의 이름 맹글링이 비활성화됩니다.
◆ npm 종속 요소 관리 변경 사항 *종속 요소 선언에 필요한 명시적 버전 요구 사항* 버전 번호를 지정하지 않고 npm 패키지 종속 요소를 선언하면 사용하는 패키지를 안정적으로 관리하기가 어렵습니다. 하지만, 이제 Gradle DSL에서 여러 종속 요소 범위를 지원하므로 프로젝트에서 허용하려는 버전을 정확하게 찾아낼 수 있습니다. *npm 종속 요소 추가 유형* dependencies 블록 내부에 npm(...)을 사용하여 지정할 수 있는 일반적인 npm 종속 요소 외에도 사용 가능한 세 가지 이상의 종속 요소 유형이 있습니다. *npm 이행 종속성의 자동 포함 및 확인* 이전에는 작성자가 아티팩트에 package.json 파일을 수동으로 추가하지 않은 라이브러리에 의존해야 할 경우 npm 종속 요소를 수동으로 가져와야 했습니다. 예를 들어, kotlinx.serialization의 경우 패키지가 Kotlin/JS에서 작동할 수 있도록 Gradle 빌드 파일에 종속 요소로 text-encoding 및 abort-controller를 포함해야 했습니다. 하지만, 이제 Gradle 플러그인은 라이브러리에 package.json 파일을 자동으로 생성하고 해당 파일을 jar 또는 klib 아티팩트에 포함합니다. 이러한 유형의 라이브러리를 포함할 경우 자동으로 파일 구문 분석 및 필요한 종속 요소가 자동으로 포함되므로 Gradle 빌드 파일에 종속성을 수동으로 추가할 필요가 없습니다. ◆ CSS 지원 변경 사항 Kotlin 1.4-M2 버전은 cssSettings를 통해 Gradle에서 webpack의 CSS 및 스타일 로더를 바로 지원하고 있습니다. 하지만 앞으로는 1.4-M2와 달리 Gradle 플러그인에서 CSS 지원이 기본적으로 활성화되지 않습니다. 이러한 상황에서는 프로젝트의 디폴트 구성에서 충돌을 야기할 수 있는 CSS 설정을 이미 삽입한 것이 즉시 구분되지 않기 때문에 프로젝트에서 CSS 지원을 활성화하려면, webpackTask, runTask, testTask 전용 Gradle 빌드 파일에 cssSupport.enabled 플래그를 설정하세요. IntelliJ IDEA에 포함된 마법사를 사용해 새 프로젝트를 생성할 경우 생성한 build.gradle(.kts) 파일에 다음 설정이 자동으로 포함됩니다. 그리고 플러그인 DSL에 cssSupport 구성 중앙 포인트를 추가하여 작업마다 설정 조정을 해야 하는 불편함을 개선할 예정입니다. ◆ Dukat 통합 개선 Kotlin/JS Gradle 플러그인은 Dukat 통합에 보다 세분화된 제어 기능을 추가했습니다. Dukat은 TypeScript 선언 파일(.d.ts)을 Kotlin 외부 선언으로 자동 변환하는 도구입니다. 이제 두 가지 방식으로 Dukat의 선언을 생성하는 경우 및 시점을 선택할 수 있습니다. * 빌드 시점에 외부 선언 생성* npm 종속 요소 함수에서 패키지 이름 및 버전 뒤에 세 번째 매개변수인 generateExternals가 추가됩니다. *Gradle 작업을 통해 외부 선언을 수동 생성* Dukat에서 생성된 선언을 완전히 제어하려는 경우, 수동 조정을 적용하려는 경우, 자동 생성된 외부 선언 실행 시 문제가 발생한 경우에는 generateExternals Gradle 작업을 사용하여 모든 npm 종속 요소에 대한 선언 생성을 수동으로 트리거할 수도 있습니다. 이 방식을 사용하면 프로젝트 루트에서 이름이 externals로 지정된 디렉토리에 선언이 생성됩니다. *단, 소스 폴더에 외부 선언을 수동으로 제공하고 동일한 종속 요소에 대한 외부 선언을 빌드 시점에 생성하도록 활성화하면 ◆ kotlin.dom 및 kotlin.browser를 별도의 아티팩트로 마이그레이션 Kotlin/JS용 브라우저 및 DOM 바인딩의 속도를 개선하고 언어 자체의 릴리스 주기와 분리하기 위해 kotlin.dom 및 kotlin.browser 패키지에 위치한 현재의 API를 중단하였습니다. 그리고 kotlinx.dom 및 kotlinx.browser 패키지에서 이러한 .browser체 항목을 제공하고 있습니다만, 새로운 API로의 마이그레이션은 매우 직관적이며 프로젝트에 사용된 import 문을 조정하여 새 kotlinx 패키지에 지정하면 됩니다. IntelliJ IDEA에서 Alt-Enter를 눌러서 사용할 수 있는 Quick-fixes(빠른 수정) 기능이 이 마이그레이션에 도움이 될 것입니다. ◆ 테스트 버전: kotlinx-nodejs Node.js API에 대한 공식 바인딩인 kotlinx-nodejs 테스트 버전이 출시되었다는 기쁜 소식을 전해드립니다. 오랫동안 Kotlin을 통해 Node.js를 대상으로 지정할 수 있었지만, 대상의 모든 기능은 API에 타입의 안정적인 액세스를 보유할 때 사용 가능합니다. kotlinx-nodejs를 프로젝트에 추가하려면 jcenter ()가 저장소에 추가되었는지 확인하세요. Gradle 변경 사항을 로드한 후 Node.js로 제공된 API를 실험적으로 사용해볼 수 있습니다.
kotlinx-nodejs를 사용해 보고, 문제가 발견된 경우 저장소의 이슈 트래커에 보고해 주세요! ◆ kotlin2js 및 kotlin-dce-js Gradle 플러그인 사용 중단 Kotlin 1.4부터 Kotlin/JavaScript를 대상으로 하는 기존의 Gradle 플러그인(kotlin2js 및 kotlin-dce-js)은 공식적으로 사용이 중단되었으며 kotlin.js Gradle 플러그인이 대신 사용됩니다. 이미 사용이 중단된 kotlin-frontend-plugin과 더불어 해당 플러그인에서 지원하던 주요 기능은 새 플러그인으로 압축되었습니다. Kotlin 1.3.70 버전부터는 최적화된 프로그램 번들을 실행 및 생성하는 browserProductionRun 및 browserProductionWebpack 작업을 사용할 경우에도 불필요한 코드 제거(DCE) 기능이 자동으로 적용됩니다. 현재 불필요한 코드 제거는 Node.js 또는 테스트가 아닌 생성 출력 브라우저가 대상인 경우에만 지원됩니다. ◆ 삶의 질을 높이는 추가 개선 사항 및 주요 수정 사항 진화하는 Kotlin 표준 라이브러리 API Kotlin 1.4는 기능 릴리스여서 이전에 이미 소개해드린 다양한 신규 기능이 포함됩니다. 1.4 릴리스에서 기대할 수 있는 변경 사항의 간략한 설명을 확인해 보세요. ◆ 실험적 API 안정화 JetBrains 팀은 사용자가 Kotlin 라이브러리에 기대하는 기능을 최대한 빨리 제공하고자 실험적 버전을 제공하고 있습니다. 기능 릴리스에서 실험적 API는 안정 상태로 개선될 수 있습니다. 안정 상태에 이르면 예기치 않게 형식과 동작이 변경될 일은 없습니다. API가 공식적으로 안정화되면 경고나 사전 동의 없이 API를 안전하게 사용할 수 있습니다. *변경 사항은 적절한 사용 중단 주기를 따라서만 적용됩니다.
1.4 버전의 경우 Kotlin 라이브러리의 다양한 실험적 기능이 안정 상태로 변경됩니다. ◆ 사용 중단 주기 기능 릴리스에는 기존 사용 중단 주기에 대한 개선 사항도 포함됩니다. 따라서 이미 ERROR 수준으로 지정된 API 요소는 코드의 신규 사용 위치에 완전히 숨김 처리되며 이미 컴파일된 코드와 호환성을 유지하기 위해 2진 형식으로만 제공됩니다. 이와 같은 단계가 결합되어 사용 중단된 API 요소가 점진적으로 제거됩니다. 코드에서 사용 중단 수준이 WARNING인 API 요소가 사용될 경우 컴파일러는 이러한 사용에 대해 경고합니다. Kotlin 1.4.0-RC로 업데이트할 경우 일부 경고가 오류 수준으로 변경됩니다. IDE에서 표시되는 메시지를 활용하여 오류가 있는 코드 사용을 제공된 대안 요소로 대체하고 코드가 다시 컴파일되는지 확인합니다. 스크립트 작업 Kotlin 1.4 버전은 Kotlin 스크립트 작업을 더욱 안정적이고 빠르고 사용이 간편하게 개선하려고 지속적으로 노력했습니다. ◆ 아티팩트 이름 변경 아티팩트 이름의 혼란을 방지하고자 아티팩스 이름을 변경하였습니다. [변경 사항] ① kotlin-scripting-jsr223-embeddable → kotlin-scripting-jsr223로 변경 *숨김 처리되지 않은 kotlin-compiler에 종속된 아티팩트가 필요한 경우 kotlin-scripting-jsr223-unshaded와 같이 -unshaded 접미어가 포함된 아티팩트 버전을 사용하세요.
이름 변경이 직접 사용되어야 하는 스크립트 작업 아티팩트에만 영향을 미친다는 점에 유의하세요. CLion IDE 플러그인 사용 중단 주기가 시작되었습니다. 1.4 릴리스 이후 CLion IDE 플러그인 출시는 중단됩니다. 모든 주요 릴리스와 마찬가지로, 이전에 공개했던 변경 사항의 일부 지원 중단 주기가 Kotlin 1.4에서 종료됩니다. 궁금하신 점이 있으시면 언제든지 단군소프트(JetBrains@tangunsoft.com)로 문의 주세요. |