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 경험을 향상시키기 위해 다음과 같은 기능을 사용할 수 있습니다:
- IntelliJ IDEA 2020.3 릴리스에서 Gradle 실행을 통해 발표된 기본 메모리 프로파일러 사용
- coroutine에서 부적절한 스레드 블로킹 호출에 대한 경고 받기
- 삼중 따옴표를 사용하고 문자열을 연결할 때 언어 주입 문제 피하기
참고 자료
- Kotlin 플러그인 2021.1에서 무엇이 새로운가
- IntelliJ IDEA 2021.1에서 무엇이 새로운가 – 문서 및 비디오
원문
https://blog.jetbrains.com/kotlin/2021/04/kotlin-plugin-2021-1-released/
댓글