일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- image resizer with go
- 코틀린 out
- Java
- output stream
- 객체지향
- resizer 구현
- 돌연변이 테스팅
- 공짜블로그
- JPA
- cli 만들기
- hugo 로 블로그
- 의존성역전원칙
- ruby
- kotlin
- standard input
- 코틀린
- 코틀린 in
- resize image with go
- Convariance
- Pitest
- InnoDB
- Mutation testing
- change refresh rate
- 개인블로그 hugo
- MySQL
- IntelliJ
- 자바
- standard output
- 코틀린 노트북
- Test
- Today
- Total
Rlog
[Kotlin Spring] Logger 를 간편하게 본문
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 |