Kotlin 은 Lombok 을 적용하기 힘든 구조였어서 아래와 같이 Logger 코드를 계속 반복해서 적용해야 하는 문제점이 있습니다.
(최신 버전에서는 Lombok 이 된다고 하나.. 아직 Stable 하다는 소문은 못들어서 사용은 안하고 있긴 합니다.)
왜 안되는지 궁금하시다면 Kotlin 의 컴파일 순서 및 과정을 확인하시면 됩니다.
자바에서는 아래와 같이 Logger 코드를 작성하지 않고도 롬복을 이용해 Logger 를 사용할 수 있었습니다.
이것또한 바이트 코드를 보게 되면 롬복이 자동으로 생성해주는데요.
따라서 코틀린에서도 어차피 계속 작성된다면 간편하게 할 수 있는 방법을 찾아야 했습니다.
그래서 Intellij 의 라이브 템플릿을 이용하기로 했습니다.
사내에서도 라이브 템플릿을 이용하는 팀이 많아 좋은 방법이라 생각했고, 실제로 사용해보니 괜찮았습니다.
라이브 템플릿에 대한게 궁금하면 아래 링크를 참조하시면 됩니다.
https://blog.jetbrains.com/ko/2020/05/18/write-code-faster-using-live-templates-ko/
일단 라이브 템플릿을 이용해 Logger 를 설정해보도록 합시다.
위치는 아래와 같습니다
[Preferences - Editor - Live Template]
쉽게 저기 있는 예시중 하나인 main 을 사용해보도록 하겠습니다.
위와 같이 자동완성을 할 수 있도록 나옵니다.
실제로 사용하면 아래와 같은 코드가 자동으로 작성됩니다. (psvm 을 생각하시면 편합니다)
이제 위의 반복됬던 로거를 한번 Live Template 으로 만들어봅시다.
일단 아까 Live Template 메뉴로 다시 이동해봅시다.
여기서 위처럼 플러스 버튼을 눌러서 새로운 Live Template 을 추가해줍시다.
아래와 같이 작성해 줍니다.
Abbreviation 은 아까 main 과 같이 사용자가 입력하는 단어입니다.
Teamplate Text 에는 실제 축약어를 사용했을때 나오는 단어로 아래와 같이 기입합니다.
private val log = org.slf4j.LoggerFactory.getLogger($THIS$::class.java)
$THIS$ 에는 현재 클래스 이름을 입력해야 하므로 Intellij 의 변수 기능을 이용합니다.
이렇게 하면 $THIS$ 에 현재 클래스 이름이 추가되게 됩니다.
이제 실제로 사용해 봅시다.
정상적으로 출력되는걸 확인할 수 있습니다.
라이브 템플릿을 이용하면 반복되는 코드를 빠르게 작성할 수 있으니 잘 커스텀 하시길 바랍니다.
'Kotlin' 카테고리의 다른 글
Ko-Test Framework 사용해보기 (0) | 2022.01.21 |
---|---|
Kotlin 에서 Null 을 다루기 (0) | 2022.01.18 |
[Mac] Kotlin 설치 및 CLI 에서 사용하기 (0) | 2021.12.06 |
Kotlin Null 처리 (0) | 2021.11.18 |
Kotlin JPA - 상속 관계 맵핑 (0) | 2021.11.17 |