Kotlin

[Kotlin Spring] Logger 를 간편하게

dev_roach 2021. 12. 14. 12:06
728x90

Kotlin 은 Lombok 을 적용하기 힘든 구조였어서 아래와 같이 Logger 코드를 계속 반복해서 적용해야 하는 문제점이 있습니다.

(최신 버전에서는 Lombok 이 된다고 하나.. 아직 Stable 하다는 소문은 못들어서 사용은 안하고 있긴 합니다.)

왜 안되는지 궁금하시다면 Kotlin 의 컴파일 순서 및 과정을 확인하시면 됩니다.

 

자바에서는 아래와 같이 Logger 코드를 작성하지 않고도 롬복을 이용해 Logger 를 사용할 수 있었습니다.

이것또한 바이트 코드를 보게 되면 롬복이 자동으로 생성해주는데요.

따라서 코틀린에서도 어차피 계속 작성된다면 간편하게 할 수 있는 방법을 찾아야 했습니다.

 

그래서 Intellij 의 라이브 템플릿을 이용하기로 했습니다.

사내에서도 라이브 템플릿을 이용하는 팀이 많아 좋은 방법이라 생각했고, 실제로 사용해보니 괜찮았습니다.

 

라이브 템플릿에 대한게 궁금하면 아래 링크를 참조하시면 됩니다.

https://blog.jetbrains.com/ko/2020/05/18/write-code-faster-using-live-templates-ko/

 

라이브 템플릿을 사용해서 보다 빠르게 코드를 작성하세요 | JetBrains Blog

코드 데모를 준비하거나 일상적으로 코드 작성할 때 라이브 템플릿을 활용하면 코딩 속도를 현저히 높일 수 있습니다. 몇 가지 문자를 입력하면 더 긴 코드로 확장됩니다.이 블로그에서는 라이

blog.jetbrains.com

 

일단 라이브 템플릿을 이용해 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$ 에 현재 클래스 이름이 추가되게 됩니다.

이제 실제로 사용해 봅시다.

정상적으로 출력되는걸 확인할 수 있습니다.

 

라이브 템플릿을 이용하면 반복되는 코드를 빠르게 작성할 수 있으니 잘 커스텀 하시길 바랍니다.

728x90

'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