Lombok

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

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

주요 Lombok Annotation

  1. @Getter, @Setter
  • 클래스의 모든 필드에 대한 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;
    }
}
  • 위 코드에서 getName(), setName(String name), getAge(), setAge(int age) 메서드가 자동으로 생성된다.
  1. @ToString
  • 객체의 toString()메서드를 자동으로 생성한다.
  • 기본적으로 클래스의 모든 필드를 포함하며 특정 필드를 제외하거나 포맷을 지정할 수 있다.
  • toString() 메서드는 객체를 String으로 변환해주는 역할을 수행한다.
  1. @EqualsAndHashCode
  • equals()와 hashCode() 메서드를 자동으로 생성한다.
  • 객체의 동일성과 해시 코드를 정의하는데 사용된다.
  1. @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor
  • @NoArgsConstructor : 기본 생성자를 생성한다.
  • @AllArgsConstructor : 모든 필드를 매개변수로 하는 생성자를 생성한다.
  • @RequiredArgsConstructor : 필수(final) 필드만을 매개변수로 하는 생성자를 자동으로 생성한다.
  1. @Date
  • @Getter, @Setter, @ToString, @EqualsAndHashCode,@RequiredArgsConstructor를 한꺼번에 적용하는 어노테이션이다.
  • 주로 테스트 용도로만 사용한다.
  1. @Builder
  • 빌터 패턴을 적용해 객체를 생성할 수 있게 합니다. 복잡한 객체 생성에 유용하며, 필드 이름을 명시적으로 지정하면서 객체를 생성할 수 있다.
@Builder
public class User {
    private String name;
    private int age;
}
User user = User.builder()
                .name("John")
                .age(30)
                .build();
  1. @Slf4j
  • 클래스에 로그를 남기기 위한 Logger 객체를 자동으로 생성한다.
@Slf4j
public class UserService {
    public void logMessage() {
        log.info("This is a log message");
    }
}

0개의 댓글