
게시판 만들기를 하면서 인터셉터 기능을 넣어 보기로 했다.
그래서 class를 만들고 코드를 집어넣는데!
log에서 빨간줄이 떴다.
log는 프로그램의 작동상황을 알려주는 메시지로 내가 생각하기에는 기본중 기본인데
왜 따로 import를 해줘야 하는지, 그게 아니면 clas라도 만들어서
형태를 만들어야 하는지 이해가 안 갔다.
찾아보니까 Java는 기본적으로 로깅을 내장하지 않는다고 한다.
로깅에는 다양한 방식이 있기 때문에 직접 선택하게 납두었단다.
개발자마다 스타일이 있으니 그렇군.. 하고 넘어가고
그렇다면 이 에러를 어떻게 해결해야 하는지 찾아봤다.
1. @Slf4j
첫번째는 어노테이션을 사용하는 것이다. Lombok 라이브러리를 사용하고 있다면 해당 어노테이션를 이용하면 된다.
Slf4j는 로깅 인터페이스로 해당 클래스에 추가해 주면,
자동으로 private static final Logger log = LoggerFactory.getLogger(MyClass.class); 코드를 넣어준다고 한다.
2. 수동으로 log 객체 만들기
-> 누구라도 1번을 선택할 것이다. ㅋㅋ

그런데 Slf4j 어노테이션을 사용하려고 보니
import에서 2가지 옵션이 있었다.
사실 해당 log 오류가 난 것도, 내가 2번째로 import해서 난 거였다.
lombok이 개발을 편리하게 해주는 라이브러리이기 때문에
감이 있는 분들은 lombok과 관련된 import문을 이용하겠지만
나는 잘 모르겠어서 차이를 알아봤다.
| 항목 | import groovy.util.logging.Slf4j; | import lombok.extern.slf4j.Slf4j; |
| 언어 | Groovy 전용 | Java 전용 |
| 라이브러리 | Groovy 내장 | Lombok 라이브러리 |
| 작동 방식 | Groovy의 AST 변환으로 log 추가 | Lombok의 컴파일 타임 코드 생성으로 log 추가 |
| 대상 파 | .groovy 파일에서만 사용 | .java 파일에서만 사용 |
둘은 전혀 다른 환경이므로 java를 기반으로 하고 있는
내 프로젝트에서는 groovy를 선택하면 안 된다.
(groovy에 대해 처음 들어봐서 어떤 언어인지 찾아보니
java와 99% 문법 호환이 되지만,
@Slf4j의 의미/동작 방식/컴파일 시점의 차이가 있다고 한다.)

아무튼 이렇게 추가하면
log 관련 에러는 없어진다!
'부트캠프 > Spring&Springboot' 카테고리의 다른 글
| [1편] springboot 속 singleton / factory 패턴 (2) | 2025.06.07 |
|---|---|
| Spring Boot와 디자인 패턴 (0) | 2025.06.07 |
| (IntelliJ)tomcat 설정할 때 artifact가 안 보인다면 (1) | 2025.05.28 |
| spring boot에서 Tomcat 설정했는데 HTML이 안 뜨는 이유 (0) | 2025.05.27 |