본문 바로가기
Kotlin/Release Notes

[Kotlin Release Notes] Kotlin Plugin 2021.1 Released: Improved IDE Performance and Better Support for Refactorings

by 노력남자 2023. 9. 10.
반응형

2021년 4월 7일

 

IntelliJ IDEA의 최신 릴리스, 버전 2021.1은 향상된 Kotlin 플러그인을 함께 제공합니다. 더 빠른 코드 완성 및 하이라이팅, IDE 지원이 개선된 변경 시그니처, 사용자 지정 getter를 평가할 때 개선된 디버깅 경험, 그리고 더 많은 기능으로 개발자 경험을 향상시키세요.

새로운 플러그인을 설치하면 다음과 같은 기능을 얻을 수 있습니다:

  • 더 빠른 코드 완성 및 하이라이팅
  • Variables 뷰에서 사용자 지정 getter 평가
  • 더 나은 IDE 지원을 갖춘 Change Signature 리팩터링
  • 유형 인수에 대한 코드 완성
  • Kotlin 코드를 위한 클래스 다이어그램
  • 다른 IDE 개선 사항

 

이 새 릴리스로 자동 업데이트

 

IntelliJ IDEA는 새 릴리스가 나오면 자동으로 업데이트할 수 있도록 옵션을 제공합니다.

아직 IntelliJ IDEA 사용자가 아니라면, 최신 버전을 다운로드하고 최신 Kotlin 플러그인이 번들로 제공될 것입니다.


빠른 코드 완성 및 하이라이팅 즐기기


코드 작성은 특히 IDE가 코드를 하이라이트하고 완성하는 데 기다려야 할 때 즐거울 수 없을 때가 있습니다. 우리의 목표는 코드 하이라이팅 및 완성을 원활하게 만드는 것입니다.

새로운 Kotlin 플러그인은 Kotlin 코드 하이라이팅 및 완성 성능을 크게 향상시켰습니다.

테스트에 기반한 결과로 하이라이팅 속도가 약 25% 향상되었으며 코드 완성은 이제 Java에 제공되는 성능 수준에 더 가까워져 약 50% 이상 빨라졌습니다.

이러한 숫자는 우리의 테스트를 기반으로 한 것이며, 실제 프로젝트에서의 개선 사항은 우리의 테스트에서 보여주는 것만큼 중요하지 않을 수 있지만 훨씬 더 나은 성능을 눈에 띄게 느낄 것입니다.


새 플러그인에서의 Kotlin 코드 하이라이팅 속도


이곳에서 복잡한 Kotlin 파일에서의 코드 하이라이팅을 확인하는 벤치마크 테스트를 기반으로 이전 Kotlin 플러그인 버전인 2020.3과 새로운 버전인 2021.1 간의 Kotlin 코드 하이라이팅 속도를 비교할 수 있습니다.


새 플러그인에서의 Kotlin 코드 완성 속도


또한 2020.3 버전과 2021.1 버전 간의 Kotlin 코드 완성 성능을 비교한 결과입니다. 복잡한 Kotlin 파일에서 코드 완성을 확인하는 벤치마크 테스트를 기반으로 한 결과입니다.

 

 

더 나은 IDE 지원을 갖춘 Change Signature 리팩터링


이전 Kotlin 플러그인 버전에서 Change Signature 리팩터링을 사용해 본 적이 있다면 문제와 제한 사항, 그리고 이러한 경우에 무엇이 잘못되었는지에 대한 시야 부족을 경험했을 것입니다.

새 Kotlin 플러그인으로 업데이트하여 Change Signature 리팩터링에 대한 40여 개 이상의 버그 수정 및 개선 사항을 활용하세요.

가장 중요한 개선 사항 중 일부는 다음과 같습니다.

  • 결과 코드가 손상될 수 있는 경우 감지
  • 언어 간 리팩터링을 포함한 상속 리팩터링 수정
  • 속성 처리에 대한 개선된 사용자 경험
  • 기본 매개 변수 값 선언 방법 추가
  • 역따옴표 처리 수정

 

Variables view에서 사용자 정의 getter를 직접 평가

 

우리의 연구에 따르면, Kotlin을 디버깅하는 경험은 개발자 경험을 향상시키기 위해 상당한 개선이 필요하며, 이미 개선 계획을 몇 가지 진행 중에 있습니다.

이 릴리스에서는 Variables 뷰에서 속성을 평가하는 데 작은 but 중요한 개선 사항을 제공합니다.

이전에 디버그 세션 중에는 사용자 정의 getter가 없는 속성 및 백킹 필드가 있는 속성만 볼 수 있었습니다. 사용자 정의 getter가 있는 속성은 JVM에서 일반 메서드로 표시되기 때문에 나타나지 않았습니다. Kotlin 플러그인의 2021.1 버전에서는 이러한 속성을 모두 볼 수 있으며 속성 이름 근처의 get()을 클릭하여 필요할 때 평가할 수 있습니다.

예를 들어 다음 코드를 디버그할 때 get() 메서드를 실행하여 versionString 값을 볼 수 있습니다:

 

class LanguageVersion(val major: Int, val minor: Int) {
    val isStable: Boolean
        get() = major <= 1 && minor <= 4
    val isExperimental: Boolean
        get() = !isStable
    val versionString: String
        get() = "$major.$minor"

    override fun toString() = versionString
}

fun main() {
    val version = LanguageVersion(1, 4)
}


디버그 창에서 속성의 값을 볼 수 있습니다:

 


이 기능을 시도하고 이 티켓이나 이 블로그 게시물에 의견을 제공해 주시면 감사하겠습니다.


타입 인자에 대한 코드 완성 사용


새로운 Kotlin 플러그인은 이제 타입 인자에 대한 코드를 자동으로 완성할 수 있습니다. 이전에는 IDE의 지원 기능을 활용하지 못하고 이 코드를 수동으로 작성해야 했습니다.

이제 코드 완성은 제네릭 함수 뒤에 함수 및 속성을 제안하고 필요한 곳에 타입 인자를 복원합니다. 목록에서 이러한 함수를 선택하면 IDE는 앞선 코드에 올바른 타입 인자를 추가합니다.

다음 예제에서 IDE는 <String>() 타입을 자동으로 추가합니다:


IDE의 제안을 적용하면 다음과 같은 코드를 얻을 수 있습니다:

fun typeArgumentsAtCodeCompletion() {
    // Function definition from stdlib:
    // public fun <T> emptyList(): List<T>
    val listA: List<String> = emptyList() // T is inferred from the context (explicit variable type)
    val listB: List<String> =
    emptyList<String>().reversed() // type argument for emptyList() is required to evaluate expression type
}


클래스 다이어그램을 사용하여 Kotlin 코드의 구조 검토


새 릴리스에서는 UML 클래스 다이어그램을 통해 Kotlin 코드의 구조를 검토할 수 있습니다. 다이어그램을 만들려면 Project View에서 Diagrams | Show Diagram... | Kotlin Classes를 선택하십시오.


기타 IDE 개선 사항 활용


Kotlin 플러그인과 IntelliJ Platform이 동일한 코드베이스로 이동하고 이제 동시에 제공되기 때문에 Kotlin 경험을 향상시키기 위해 다음과 같은 기능을 사용할 수 있습니다:

 

참고 자료

 

  • Kotlin 플러그인 2021.1에서 무엇이 새로운가
  • IntelliJ IDEA 2021.1에서 무엇이 새로운가 – 문서 및 비디오

 

원문

 

https://blog.jetbrains.com/kotlin/2021/04/kotlin-plugin-2021-1-released/

반응형

댓글