5.2 KiB
Lombok 어노테이션 정리 및 예제
1. Lombok이란?
Lombok은 자바에서 반복적인 코드 작성을 줄여주는 라이브러리이다.
특히, Getter, Setter, 생성자, toString, equals, hashCode 등의 메서드를 자동으로 생성해준다.
✅ Lombok을 사용하면 다음과 같은 장점이 있다.
✔ 코드가 간결해짐 (Getter, Setter, 생성자 등의 반복 코드 제거)
✔ 가독성이 향상됨 (핵심 로직만 보이므로 더 쉽게 이해 가능)
✔ 컴파일 타임에 코드가 자동 생성됨 (성능 저하 없음)
2. Lombok 주요 어노테이션 정리
📌 클래스 관련 어노테이션
| 어노테이션 | 설명 |
|---|---|
@Getter |
모든 필드의 Getter 메서드 생성 |
@Setter |
모든 필드의 Setter 메서드 생성 |
@ToString |
toString() 메서드 자동 생성 |
@EqualsAndHashCode |
equals() 및 hashCode() 자동 생성 |
@NoArgsConstructor |
기본 생성자 자동 생성 |
@AllArgsConstructor |
모든 필드를 포함한 생성자 자동 생성 |
@RequiredArgsConstructor |
final 또는 @NonNull 필드만 포함하는 생성자 생성 |
📌 필드 관련 어노테이션
| 어노테이션 | 설명 |
|---|---|
@NonNull |
필드가 null이 될 수 없도록 설정 (생성자에서 null 체크) |
@Value |
불변(immutable) 클래스를 만들 때 사용 (@Getter, @AllArgsConstructor, final 자동 적용) |
📌 빌더 패턴 관련 어노테이션
| 어노테이션 | 설명 |
|---|---|
@Builder |
빌더 패턴을 자동 생성 |
@Singular |
@Builder에서 컬렉션(List, Set 등)을 초기화할 때 사용 |
📌 로깅 관련 어노테이션
| 어노테이션 | 설명 |
|---|---|
@Slf4j |
org.slf4j.Logger를 자동 생성 |
@Log |
java.util.logging.Logger를 자동 생성 |
3. Lombok 어노테이션 예제
✔ 1) Getter, Setter 자동 생성
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class User {
private String name;
private int age;
}
🔹 사용 예시
User user = new User();
user.setName("홍길동");
user.setAge(30);
System.out.println(user.getName()); // 출력: 홍길동
✅ getName(), setName(), getAge(), setAge() 메서드가 자동 생성됨!
✔ 2) @ToString 자동 생성
import lombok.ToString;
@ToString
public class User {
private String name;
private int age;
}
🔹 사용 예시
User user = new User();
user.setName("홍길동");
user.setAge(30);
System.out.println(user); // 출력: User(name=홍길동, age=30)
✅ toString()을 직접 작성할 필요 없음!
✔ 3) @NoArgsConstructor, @AllArgsConstructor 자동 생성
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class User {
private String name;
private int age;
}
🔹 사용 예시
User user1 = new User(); // 기본 생성자 사용
User user2 = new User("홍길동", 30); // 모든 필드를 받는 생성자 사용
✅ 기본 생성자와 모든 필드를 포함한 생성자가 자동 생성됨!
✔ 4) @RequiredArgsConstructor 사용 (final 필드만 포함)
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class User {
private final String name;
private int age;
}
🔹 사용 예시
User user = new User("홍길동"); // name 필드만 포함된 생성자
✅ final 필드만 포함하는 생성자가 자동 생성됨!
✔ 5) @Builder를 이용한 빌더 패턴
import lombok.Builder;
@Builder
public class User {
private String name;
private int age;
}
🔹 사용 예시
User user = User.builder()
.name("홍길동")
.age(30)
.build();
System.out.println(user);
✅ 빌더 패턴이 자동 생성되어 User.builder().name("홍길동").age(30).build();로 객체 생성 가능!
✔ 6) @Slf4j를 이용한 로그 출력
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class LogExample {
public static void main(String[] args) {
log.info("Hello, Lombok!");
}
}
🔹 실행 결과
INFO - Hello, Lombok!
✅ Logger 객체를 직접 생성할 필요 없이 log.info("Hello, Lombok!")처럼 바로 사용 가능!
4. Lombok 정리
✔ Lombok은 자바에서 반복적인 코드 작성을 줄여주는 라이브러리
✔ Getter, Setter, 생성자, toString, equals, hashCode 등을 자동 생성
✔ 빌더 패턴 및 로깅도 쉽게 적용 가능
✔ 코드를 간결하게 만들고 가독성을 향상시킴
✅ IDE에서 Lombok을 사용하려면?
- Lombok 라이브러리를 추가 (
pom.xml또는build.gradle) - IntelliJ → Plugins에서 Lombok 플러그인 설치
- 설정에서 "Enable annotation processing" 활성화 (
Settings > Build, Execution, Deployment > Compiler > Annotation Processors)
✅ Lombok을 사용하면 코드가 간결해지고, 유지보수가 편리해짐!