본문 바로가기
Kotlin/Evolution and Roadmap

[Kotlin 번역] Stability of Kotlin components

by 노력남자 2024. 11. 20.
반응형

코틀린 언어와 도구 세트는 JVM, JS, Native 대상 컴파일러, 표준 라이브러리, 다양한 부가 도구 등 여러 구성 요소로 나뉩니다. 이러한 구성 요소 중 많은 부분은 안정 버전(Stable)으로 공식 출시되었으며, 이는 편리한 업데이트(Comfortable Updates)와 현대적인 언어 유지(Keeping the Language Modern) 원칙을 따르며 하위 호환성을 유지하는 방식으로 발전해왔음을 의미합니다.

 

피드백 루프(Feedback Loop) 원칙에 따라, 커뮤니티가 조기에 체험해볼 수 있도록 많은 것들이 초기 단계에서부터 공개됩니다. 따라서 일부 구성 요소는 아직 안정 버전으로 출시되지 않았습니다. 이들 중 일부는 매우 초기 단계에 있으며, 일부는 더 성숙한 상태입니다. 각 구성 요소의 발전 속도와 사용자가 채택할 때 감수해야 할 위험 수준에 따라, 이를 실험적(Experimental), 알파(Alpha), 또는 베타(Beta)로 표시합니다.

 

안정성 수준 설명

 

다음은 안정성 수준과 그 의미를 간단히 정리한 가이드입니다:

 

Experimental: “간단한 프로젝트에서만 사용해보세요”

 

우리는 단순히 아이디어를 실험하고, 일부 사용자가 이를 시도해보고 피드백을 주길 기대합니다.

만약 제대로 작동하지 않는다면, 언제든지 이를 폐기할 수 있습니다.

 

Alpha: “스스로의 책임 하에 사용하세요. 마이그레이션 문제가 발생할 수 있습니다”

 

이 아이디어를 제품화하려고 하지만, 아직 최종 형태에 도달하지 않았습니다.

 

Beta: “사용할 수 있습니다. 마이그레이션 문제를 최소화하려고 노력하겠습니다”

 

거의 완성된 상태이며, 사용자 피드백이 특히 중요한 시점입니다.

여전히 100% 완성되지 않았으므로 변경 가능성이 있습니다(여러분의 피드백에 따른 변경도 포함됩니다).

최상의 업데이트 경험을 위해, 사전에 표시되는 사용 중단(deprecation) 경고를 주의 깊게 확인하세요.

 

Experimental, Alpha, Beta는 사전 안정(pre-stable) 단계로 통칭됩니다.

 

Stable: “가장 보수적인 시나리오에서도 사용하세요”

 

완성되었습니다. 엄격한 하위 호환성 규칙에 따라 이를 발전시켜 나갈 것입니다.

 

참고:

 

안정성 수준은 해당 구성 요소가 언제 Stable로 출시될지를 의미하지 않습니다.

또한, 출시 전까지 구성 요소가 얼마나 변경될지를 나타내지도 않습니다.

안정성 수준은 구성 요소의 변경 속도와 사용자가 감수해야 할 업데이트 관련 위험 정도를 나타낼 뿐입니다.

 

코틀린 구성 요소의 GitHub 배지

 

코틀린 GitHub 조직에는 다양한 코틀린 관련 프로젝트가 호스팅되어 있습니다. 일부는 전담 개발팀이 작업하고, 다른 일부는 사이드 프로젝트로 운영됩니다.

 

각 코틀린 프로젝트에는 두 가지 GitHub 배지가 있으며, 이는 해당 프로젝트의 안정성지원 상태를 나타냅니다:

 

안정성 상태

 

안정성 상태는 각 프로젝트의 변화 속도와 사용자가 이를 채택할 때 감수해야 할 위험을 보여줍니다.

안정성 상태는 코틀린 언어 기능 및 구성 요소의 안정성 수준과 완전히 동일합니다:

 

Experimental 안정성 상태는 Experimental 안정성 수준을 나타냅니다.

 

Alpha 안정성 상태는 Alpha 안정성 수준을 나타냅니다.

 

 

Beta 안정성 상태는 Beta 안정성 수준을 나타냅니다.

 

 

Stable 안정성 상태는 Stable 안정성 수준을 나타냅니다.

 

 

 

지원 상태

 

지원 상태는 해당 프로젝트를 유지 관리하고 사용자의 문제를 해결하는 데 얼마나 전념하는지를 보여줍니다.

지원 수준은 모든 JetBrains 제품에 대해 통일된 방식으로 적용됩니다.

자세한 내용은 JetBrains 오픈 소스 문서를 참조하세요.

 

하위 구성 요소의 안정성

 

안정적인 구성 요소에도 실험적인 하위 구성 요소가 포함될 수 있습니다. 예를 들어:

 

안정적인 컴파일러에 실험적인 기능이 포함될 수 있습니다.

안정적인 API에 실험적인 클래스나 함수가 포함될 수 있습니다.

안정적인 명령줄 도구에 실험적인 옵션이 포함될 수 있습니다.

 

우리는 어떤 하위 구성 요소가 Stable 상태가 아닌지 명확히 문서화하기 위해 노력합니다. 또한, 가능한 경우 사용자에게 경고를 제공하고, 해당 기능이 안정적으로 출시되지 않았음을 알리기 위해 명시적으로 사용을 선택(opt-in)하도록 요구하여 실수로 이러한 기능을 사용하는 것을 방지하려고 최선을 다합니다.

 

코틀린 구성 요소의 현재 안정성

 

Kotlin compiler

 

Component Status Status since version Comments
Kotlin/JVM Stable 1.0.0  
Kotlin/Native Stable 1.9.0  
Kotlin/JS Stable 1.3.0  
Kotlin/Wasm Alpha 1.9.20  
Analysis API Stable    

 

Core compiler plugins

 

Component Status Status since version Comments
All-open Stable 1.3.0  
No-arg Stable 1.3.0  
SAM-with-receiver Stable 1.3.0  
kapt Stable 1.3.0  
Lombok Experimental 1.5.20  
Power-assert Experimental 2.0.0  

 

Kotlin libraries


Component Status Status since version Comments
kotlin-stdlib (JVM) Stable 1.0.0  
kotlinx-coroutines Stable 1.3.0  
kotlinx-serialization Stable 1.0.0  
kotlin-reflect (JVM) Beta 1.0.0  
kotlinx-datetime Alpha 0.2.0  
kotlinx-io Alpha 0.2.0  

 

Kotlin Multiplatform

 

Component Status Status since version Comments
Kotlin Multiplatform Stable 1.9.20  
Kotlin Multiplatform plugin for Android Studio Beta 0.8.0 Versioned separately from the language
 
Kotlin/Native
 
 
Component Status Status since version Comments
Kotlin/Native Runtime Stable 1.9.20  
Kotlin/Native interop with C and Objective-C Beta 1.3.0  
klib binaries Stable 1.9.20 Not including cinterop klibs, see below
cinterop klib binaries Beta 1.3.0  
CocoaPods integration Stable 1.9.20  

 

Language tools


Component Status Status since version Comments
Scripting syntax and semantics Alpha 1.2.0  
Scripting embedding and extension API Beta 1.5.0  
Scripting IDE support Beta   Available since IntelliJ IDEA 2023.1 and later
CLI scripting Alpha 1.2.0  

 

언어 기능 및 설계 제안

 

언어 기능과 새로운 설계 제안에 대해서는 코틀린 언어 기능 및 제안을 참조하세요.

 

원문

 

https://kotlinlang.org/docs/components-stability.html#language-tools

반응형

댓글