본문 바로가기
개념정복💫/스프링 Spring 정복

Lombok 주요 어노테이션 정리

by 옹쑥이 2025. 2. 21.

Lombok은 Java 개발에서 반복되는 코드를 자동으로 생성해주는 라이브러리입니다.
생성자, Getter/Setter, equals/hashCode 등 자주 쓰이는 코드를 줄여서 생산성을 높여주는 데 큰 도움이 됩니다.
Lombok에서 자주 사용하는 @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor에 대해 알아보자.


1. @NoArgsConstructor

  • 역할: 파라미터가 없는 기본 생성자를 자동으로 생성
  • 예시 코드:
import lombok.NoArgsConstructor;

@NoArgsConstructor
public class User {
    private Long id;
    private String name;
}
  • 장점:
    • JPA 엔티티처럼 프레임워크가 기본 생성자를 필요로 하는 경우 자동 생성해주어 코드가 간결해짐.

2. @RequiredArgsConstructor

  • 역할: final 혹은 @NonNull이 붙은 필드만 파라미터로 받는 생성자를 자동 생성
  • 예시 코드:
import lombok.NonNull;
import lombok.RequiredArgsConstructor;

@RequiredArgsConstructor
public class Product {
    @NonNull
    private final String productName; // 생성자 파라미터로 자동 생성
    private int stockAmount;
}
  • 장점:
    • 꼭 필요한 필드만 초기화하도록 강제할 수 있어 불변성 유지에 유리
    • 어떤 필드들이 꼭 필요한 의존성인지 한눈에 확인 가능

3. @AllArgsConstructor

  • 역할: 모든 필드를 파라미터로 받는 생성자를 자동으로 생성
  • 예시 코드:
import lombok.AllArgsConstructor;

@AllArgsConstructor
public class Order {
    private Long orderId;
    private String itemName;
    private int quantity;
}
  • 장점:
    • 테스트 시 모든 필드를 세팅할 때 매우 편리
    • DTO나 단순 데이터 객체에서 사용하기 좋음