
Lombok `@Slf4j` 사용 시 `org.slf4j does not exist` 해결
1) 문제 상황
- IntelliJ + Gradle(java 플러그인) 프로젝트에서 Lombok @Slf4j 사용
- 컴파일/실행 시 아래 오류 발생
2) 에러 로그
- Could not find org.projectlombok:lombok:.
- package org.slf4j does not exist
3) 원인
- Lombok 의존성 버전 누락
- Gradle 문자열 좌표는 group:name:version 형태여야 함
- 버전이 비어 있으면 Gradle이 아티팩트를 못 찾음
- @Slf4j는 SLF4J 타입(org.slf4j.Logger)을 참조
- Lombok은 log 필드를 “생성”해 줄 뿐이고,
- 그 필드가 사용하는 SLF4J 라이브러리는 별도로 필요함
- 순수 Java 프로젝트(plugins { id 'java' })는 SLF4J가 기본 포함이 아님
- (Spring Boot면 기본 로깅 의존성이 들어오는 경우가 많음)
4) 해결 방법
- Lombok에 버전 명시
- SLF4J 의존성 추가(API + 런타임 구현체)
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.42'
annotationProcessor 'org.projectlombok:lombok:1.18.42'
testCompileOnly 'org.projectlombok:lombok:1.18.42'
testAnnotationProcessor 'org.projectlombok:lombok:1.18.42'
implementation 'org.slf4j:slf4j-api:2.0.17'
runtimeOnly 'org.slf4j:slf4j-simple:2.0.17'
}
- IntelliJ 설정: Annotation Processing 활성화(이미 켜둠)
5) 결과
- `@Slf4j`에서 `log.info(...)` 정상 인식
- 빌드/실행 성공, 로그 출력 확인
6) 재발 방지 체크리스트
- Gradle 의존성 좌표에 버전이 빠지지 않았나?
- Lombok 어노테이션이 참조하는 외부 라이브러리(SLF4J 등)가 포함돼 있나?
- IntelliJ Annotation Processing 켜져 있나?
- Gradle Sync / Rebuild 수행했나?
아오 이거 해결하는데 시간 다 썼네
'IL > TIL' 카테고리의 다른 글
| 20260210 [TIL] (0) | 2026.02.10 |
|---|---|
| [TIL] Hibernate Dialect(MySQL8Dialect) 오류 스키마 DDL 경고 (0) | 2026.02.08 |
| 20260126 [TIL] - 자료구조 및 알고리즘 INTRO (0) | 2026.01.26 |
| 20260113 [TIL] 10 - Flowchart (0) | 2026.01.13 |
| [TIL] - Java 계산기 과제 (0) | 2026.01.12 |