기술지원 문의는 로그인 후에 가능합니다.
확인23-02-28
안녕하세요. JetBrains 한국 총판 단군소프트입니다. 오늘의 소식, K2 컴파일러가 Kotlin 2.0에서 안정화됩니다.
계속 읽으면서 Kotlin 2.0 릴리스에 대한 로드맵과 작업의 동기 및 기대 사항에 대해 자세히 알아보세요.
기존처럼 Kotlin 1.9로 버전이 지정된 릴리스가 하나 더 출시되며, 안정화가 가까워짐에 따라 K2 컴파일러 프런트엔드를 개발하면서 나온 업데이트도 여기에 포함됩니다. Kotlin 1.10은 없고, Kotlin 1.9 이후의 주요 버전은 Kotlin 2.0이 될 것입니다. Kotlin 2.0을 사용해야 하는 이유 프런트엔드는 컴파일러의 주요 부분이며 K2 컴파일러 프런트엔드는 이전 프런트엔드를 단순히 리팩터링한 것이 아니라 새로운 아키텍처 기반으로 처음부터 완전히 재작성한 것입니다. 그 차이점에 관한 기술적 세부 정보는 여러 블로그, 동영상 및 컨퍼런스 토크에서 발표되었습니다. 더 자세한 정보를 원한다면 K2 컴파일러로 가는 길부터 살펴보시면 좋습니다. 간략히 설명하면, 새로운 아키텍처는 설계상 속도와 확장성을 개선하고, 이전 컴파일러의 프런트엔드에 있던 기술적 부채를 해결하고, 다양한 위치에서 버그 및 코너 케이스를 수정하고, 향후 언어 확장을 위한 길을 마련합니다. 프로그래밍 언어의 경우, 대개 주요 기능 또는 큰 변경 사항이 있을 때 더 높은 숫자의 주요 버전이 나옵니다. 그러나 소프트웨어 프로그램의 경우, 기능 세트가 거의 동일하게 유지되더라도 주요 재작업을 나타내기 위해 무엇이든 실질적으로 재작성될 때마다 주요 버전이 나올 수 있습니다. Kotlin은 사실 언어지만 이 소프트웨어의 관행을 따르기로 했습니다. 무엇보다도 Kotlin 컴파일러는 규모가 큰 소프트웨어입니다. Kotlin 언어 버전은 컴파일러 버전에 따라 결정됩니다. 언어에 대한 참조로 Kotlin 사양을 제공하지만, 이것이 Kotlin을 정의하는 것은 아닙니다. 기존 코드에 문제가 생기나요? Kotlin은 언어 버전이 업데이트될 때마다 변경됩니다. 새로운 언어 기능을 제공함과 동시에 오래된 버그도 수정됩니다. JetBrains는 호환성 문제를 일으키는 변경의 수와 영향을 최소화하기 위해 항상 노력하며 Kotlin 언어의 진화 과정을 따릅니다. Kotlin 2.0 역시 그러한 맥락에서 벗어나지 않습니다. Kotlin 2.0에 새로운 기능을 도입하는 것은 피하도록 주의하고 있습니다. Kotlin 컴파일러 프런트엔드를 재작성하는 일은 그 자체로 큰 변화이며 많은 개선을 도입합니다. 한 가지 예로, 새로운 데이터 흐름 분석 알고리즘은 이전보다 정확해지고 개선된 스마트 형 변환을 제공합니다(관련 문제는 구체적인 사례를 통해 확인하세요). 이렇게 하면 이전 프런트엔드 기반의 Kotlin 1.9에서 컴파일되지 않는 빨간색 코드가 Kotlin 2.0에서 컴파일되는 녹색 코드로 전환되며, 이는 기술적으로 새로운 Kotlin 언어 기능의 본질적 의미를 보여줍니다. 그러나 이는 새로운 컴파일러 아키텍처의 부수 효과일 뿐입니다.
Kotlin 2.0에 대한 IDE 지원은 어떻게 되나요? Kotlin IDE 플러그인은 IntelliJ IDEA 및 Android Studio 업데이트에 번들로 제공됩니다. 여기에는 코드의 의미 분석을 위한 Kotlin 컴파일러 프런트엔드의 사본이 포함되지만, 실제로 코드를 컴파일하는 데 사용되는 Kotlin 컴파일러 버전은 아닙니다. 컴파일러의 실제 버전은 사용자의 빌드 파일의 설정에 따라 결정됩니다. 따라서 Kotlin 언어 버전 2.0에서 코드를 컴파일링하면 새로운 컴파일러 프런트엔드를 사용하게 되며, 새로운 컴파일러 아키텍처의 성능 이점을 모두 얻을 수 있습니다. 단, 그래도 IDE는 여전히 이전 프런트엔드를 사용하여 코드를 검사할 수 있습니다. JetBrains는 새로운 컴파일러 프런트엔드의 성능 이점을 IDE에 제공하기 위해 K2 컴파일러 프런트엔드를 기반으로 빌드된 완전히 새로운 버전의 Kotlin IDE 플러그인을 작성하고 있습니다. 그리고 현재는 새로운 IDE 플러그인의 공개 테스트 버전을 작업하고 있습니다. 업데이트 내용은 이슈에서 확인할 수 있습니다. Kotlin 2.0부터 무엇을 기대할 수 있나요? Kotlin 2.0 컴파일러 프런트엔드의 새로운 아키텍처 덕에 다양하고 멋진 새로운 기능이 깔끔하게 구현됩니다. 이러한 기능 중 KT-10468 컨텍스트 리시버와 같은 일부 기능은 이미 기존 컴파일러 프런트엔드에서 테스트 버전으로 사용할 수 있지만, Kotlin 2.0에서 기본적으로 활성화되지 않고, 테스트 버전 단계로 남습니다. 새로운 기능의 안정화는 파이프라인에 있는 다른 새로운 기능의 구현과 함께 향후 Kotlin 2.x 릴리스에서 구현됩니다. 언제나 그랬듯이 계획 중인 정규 업데이트에 관한 정보는 Kotlin 로드맵을 통해 공유될 예정입니다. Kotlin 3.0은 언제 출시되나요? 아직 모릅니다. 현재는 향후 언어에 대한 여러 가지 큰 변경 사항, 특히 최근 Kotlin 기능 조사에서 가장 많이 요청된 사항에 대해 잠정적으로 논의하고 있습니다. 분명히 이러한 변경 사항 중 일부는 다음 주요 Kotlin 버전을 결정할 만큼 매우 중요할 수 있습니다. 여러분의 의견을 들려주세요 새로운 컴파일러 프런트엔드를 사용해보고 의견을 들려주세요! Kotlin 1.8.20부터 일반 Kotlin 언어 버전 플래그를 통해 Kotlin 2.0 언어 버전의 테스트 버전을 활성화할 수 있습니다.
자세히 알아보기 |