Programming/Spring

📌Lombok 어노테이션 총정리: Getter부터 @Data까지 코드가 줄어든다!

추천캐릭터 2022. 11. 2. 22:41
728x90
반응형

Java에서 반복적으로 작성해야 하는 메서드들, 예를 들어 getter, setter, toString, 생성자 같은 것들로 인해 코드가 길어지는 것이 고민이신가요?

Lombok은 이러한 반복 코드를 어노테이션 한 줄로 자동 생성해주는 강력한 라이브러리입니다. 이 글에서는 Lombok의 주요 어노테이션을 한 번에 정리해드립니다.


💡 Lombok 설정 방법

// build.gradle
configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

dependencies {
    annotationProcessor 'org.projectlombok:lombok'
    compileOnly 'org.projectlombok:lombok'

    testAnnotationProcessor 'org.projectlombok:lombok'
    testCompileOnly 'org.projectlombok:lombok'
}

🧩 주요 Lombok 어노테이션 정리

🔹 @Getter, @Setter

  • 클래스나 필드에 사용 가능
  • 접근자(getter), 설정자(setter) 자동 생성
@Getter
@Setter
private String name;

🔹 @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

  • 생성자 자동 생성
    • @NoArgsConstructor → 기본 생성자
    • @AllArgsConstructor → 모든 필드 포함 생성자
    • @RequiredArgsConstructor → final 필드 + @NonNull 필드만 포함
@RequiredArgsConstructor
private final String name;

🔹 @ToString

  • toString() 메서드를 자동 생성
  • 특정 필드를 제외할 수 있음
@ToString(exclude = "password")
private String password;

🔹 @EqualsAndHashCode

  • equals() 및 hashCode() 자동 생성
  • callSuper = true 옵션으로 부모 클래스 필드 포함 여부 설정 가능

🔹 @Data

  • @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstructor 를 한 번에 적용

✅ 정리

어노테이션기능 요약
@Getter / @Setter 필드의 getter/setter 생성
@NoArgsConstructor 기본 생성자 생성
@AllArgsConstructor 전체 필드 생성자
@RequiredArgsConstructor 필수(final, @NonNull) 생성자
@ToString toString() 자동 생성
@EqualsAndHashCode equals/hashCode 자동 생성
@Data 위 5개를 모두 한 번에 생성
728x90
반응형