반응형
개요 (업데이트: 2025-11)
Eclipse/STS 또는 IntelliJ에서 log cannot be resolved, Cannot find symbol: log 같은 오류가 발생할 때 대부분은 Lombok 또는 SLF4J 설정이 IDE/빌드에 제대로 반영되지 않아 생깁니다. 이 글에서는 원인과 해결 절차를 Eclipse·STS·IntelliJ 및 Maven/Gradle 관점에서 단계별로 정리했습니다. 전자정부프레임워크(egovframe) 기반 프로젝트에서도 동일하게 적용됩니다.

1) 에러가 발생하는 이유
- Lombok 미설치 또는 구버전으로 인해
@Slf4j등의 어노테이션이 처리되지 않음 - IDE에 lombok.jar 미연결 (Eclipse는 별도 설치/연결이 필요)
- Annotation Processing 비활성화 (IntelliJ 자주 발생)
- JDK–Lombok 버전 호환 문제(예: 고버전 JDK + 너무 낮은 Lombok)
- 로깅 프레임워크 혼용(예: SLF4J vs Log4j2) 또는 의존성 누락
2) 빠른 점검 체크리스트
- 빌드 파일에 Lombok 의존성이 있는가? (
pom.xml/build.gradle) - IDE에서 어노테이션 처리가 활성화되어 있는가?
- 클린 빌드 후 캐시(Gradle/Maven) 재생성, IDE 재시작을 했는가?
- JDK 버전과 Lombok 버전이 호환되는가? (공식 변경 로그 확인)
3) Maven/Gradle 의존성 설정
Maven
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.x</version> <!-- 사용 중 JDK와 호환되는 최신 안정 버전 권장 -->
<scope>provided</scope>
</dependency>
Gradle (Kotlin DSL)
dependencies {
compileOnly("org.projectlombok:lombok:1.18.x")
annotationProcessor("org.projectlombok:lombok:1.18.x")
testCompileOnly("org.projectlombok:lombok:1.18.x")
testAnnotationProcessor("org.projectlombok:lombok:1.18.x")
}
의존성 추가 후 mvn clean package 또는 gradle clean build 로 재빌드하세요.
4) Eclipse·STS에서 Lombok 연결 (가장 흔한 원인)
- Maven Dependencies 또는 Gradle External Libraries에서
lombok-1.18.x.jar파일을 찾습니다. - 해당 JAR을 더블클릭(또는 java -jar lombok-1.18.x.jar)해 설치기를 실행합니다.
- 설치기에서 IDE 목록(Eclipse/STS)이 표시되면 Specify location으로
eclipse.ini경로를 지정하고 Install/Update를 클릭합니다. - 설치 완료 후 Eclipse/STS 재시작 → 프로젝트 Clean → 빌드가 정상 동작하는지 확인합니다.
- 필요시 Project > Maven > Update Project 또는 Gradle > Refresh 실행
5) IntelliJ IDEA 설정
- Settings > Build, Execution, Deployment > Compiler > Annotation Processors에서 Enable annotation processing 체크
- File > Invalidate Caches…로 캐시 무효화 후 재시작
- Maven/Gradle 재동기화(코끼리/새로고침 버튼)
6) SLF4J 사용 예시 (검증 코드)
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class LogHealthCheck {
public void ping() {
log.info("lombok + slf4j 정상 동작 확인");
}
}
빌드/실행 시 위 코드가 정상 로그를 출력하면 설정이 올바르게 반영된 것입니다.
7) 전자정부프레임워크(egovframe) 주의사항
- Eclipse 기반 배포판을 그대로 쓰는 경우가 많아 lombok 설치기로
eclipse.ini에 자바에이전트 경로가 추가되어야 합니다. - 프로젝트 특성상 JDK가 고정된 경우가 많으니, 해당 JDK에 맞는 Lombok 1.18.x 호환 버전을 사용하세요.
8) 그래도 안 될 때(트러블슈팅)
- JDK 경로가 IDE/빌드툴에서 동일한지 확인(JDK 전환 시 흔한 이슈)
- .classpath / .project / .idea 메타파일 충돌 확인 후 다시 임포트
- 멀티 모듈이라면 각 모듈에 lombok 의존성/annotationProcessor 선언
- Lombok 변경 로그에서 호환 이슈 확인
9) 자주 묻는 질문(FAQ)
Q1. Cannot find symbol: log 도 같은 문제인가요?
대부분 Lombok 어노테이션 처리 실패로 발생합니다. 위 절차대로 Lombok 설치/연결과 Annotation Processing을 확인하세요.
Q2. @Slf4j 대신 직접 Logger를 만들면 되나요?
가능합니다. 다만 Lombok을 제대로 설정해 사용하는 편이 코드 간결성과 유지보수에 유리합니다.
Q3. 버전을 몇으로 써야 하나요?
사용 중인 JDK에 호환되는 1.18.x의 최신 안정 버전을 권장합니다. 변경 전에는 반드시 릴리스 노트를 확인하세요.
반응형
'IT·디지털 > IT 개발자 팁' 카테고리의 다른 글
| 리눅스에서 JDK(Java) 버전 변경하는 방법: alternatives 명령어 완벽 정리 (1) | 2024.02.01 |
|---|---|
| 이클립스(Eclipse) 필수 단축키 모음(윈도우즈 및 맥Mac) (0) | 2023.01.04 |
| AWS CloudWatch Synthetics로 URL·API 자동 모니터링 및 장애 감지하는 방법 (0) | 2021.06.30 |
| [APM] 스카우터(scouter) 특정 파일 시스템 사용량 모니터링 제외 설정 (0) | 2021.06.09 |
| Spring에서 CharacterEncodingFilter로 UTF-8 적용하기 (web.xml & Java 설정 & Spring Boot) (0) | 2016.04.29 |