Lombok Annotation

하마·2025년 3월 19일

Spring

목록 보기
8/22

보일러 플레이트 코드를 줄여주는 라이브러리로 자동으로 보일러 플레이트 코드를 생성하여 코드의 가독성과 유지보수성을 높여준다.
Lombok은 어노테이션 기반으로 동작하며, 주로 컴파일 시점에 소스 코드를 변환하여 필요한 메서드를 자동으로 생성한다.

보일러 플레이트 코드(Boilerplate code)란?
getter/setter 메서드, 생성자, toString 메서드 등과 같이 반복적으로 작성되는 코드를 뜻한다.

주요 Lombok Annotation

@Getter, @Setter

@Getter
@Setter
public class User {
    private String name;
    private int age;
  
  /** 아래 코드를 @Getter, @Setter 어노테이션이 생성해준다.
    public String getName() {
	    return name;
    }

    public void setName(String name) {
	    this.name = name;
    }
    
    public int getAge() {
	    return age;
    }

    public void setAge(int age) {
	    this.age = age;
    }
    **/
}

@ToString

@ToString
public class User {
    private String name;
    private int age;
}

@EqualsAndHashCode

@EqualsAndHashCode
public class User {
    private String name;
    private int age;
}

@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

@NoArgsConstructor
@AllArgsConstructor
public class User {
    private String name;
    private int age;
}
  • @NoArgsConstructor : 기본 생성자를 생성한다.
  • @AllArgsConstructor : 모든 필드를 매개변수로 하는 생성자를 생성한다.
  • @RequiredArgsConstructor : 필수 final 필드만을 매개변수로 하는 생성자를 생성한다.

@Data

@Data
public class User {
    private String name;
    private int age;
}
  • @Getter , @Setter , @ToString , @EqualsAndHashCode , @RequiredArgsContructor 를 한 번에 적용하는 어노테이션
  • 주로 테스트 용도로 사용됨

@Builder

@Builder
public class User {
    private String name;
    private int age;
}
User user = User.builder()
                .name("John")
                .age(30)
                .build();
  • 복잡한 객체 생성에 유용
  • 필드 잉름을 명시적으로 지정하면서 객체를 생성할 수 있음

@Slf4j

@Slf4j
public class UserService {
    public void logMessage() {
        log.info("This is a log message");
    }
}
  • 대충 슬프포제이라고 읽음
  • 클래스에 로그를 남기기 위한 Logger 객체를 생성한다.

참고자료


Spring 입문 - 2주차

  • Annotation

0개의 댓글