✅ Lombok이란?
어노테이션을 통해 기본적인 동작을 하는 코드를 자동완성해주는 기능을 제공해주는 라이브러리이다.
예를 들면,
클래스에
@Data
어노테이션을 달면, getter, setter, toString, … 등의 메소드가 내재적으로 제공된다. 이 외에도 @AllArgsContructor
를 통해 모든 멤버변수를 포함한 생성자를 제공받을 수 있으며, @NoArgsConstructor
를 통해 기본 생성자를 제공받을 수 있다.위 그림에서 구조를 살펴보면,
@Data
어노테이션으로 인해 category 멤버변수를 가져오는 getCategory()라는 camel case의 getter 메소드를 제공받고 있는 모습을 확인할 수 있다. Lombok을 사용하면, 반복되는 코드 작성을 줄이고 코드를 깔끔하게 작성할 수 있는 장점이 있다!
이 외에도 다양한 어노테이션이 존재한다.
✅ Lombok에서 제공하는 어노테이션
주석 | 목적 |
@Getter | 모든 필드에 대한 getter 메소드를 생성 |
@Setter | 모든 필드에 대한 setter 메소드를 생성 |
@ToString | 'toString' 메서드를 생성 |
@EqualsAndHashCode | equals 및 hashCode 메소드를 생성 |
@NoArgsConstructor | 인수가 없는 생성자를 생성 |
@RequiredArgsConstructor | 필수 인수(최종 필드 또는 제약 조건이 있는 필드)가 있는 생성자를 생성 |
@AllArgsConstructor | 각 필드에 대해 하나의 인수를 사용하여 생성자를 생성 |
@Data | @Getter , @Setter , @ToString , @EqualsAndHashCode 및 @RequiredArgsConstructor 의 약어 |
@Value | getter, 생성자, 적절한 equals 및 hashCode 메서드를 사용하여 변경할 수 없는 클래스를 생성 |
@Builder | 객체 생성을 위한 빌더 패턴을 구현 |
@SneakyThrows | 메서드 시그니처에서 선언하지 않고 확인된 예외가 발생하도록 허용 |
@NonNull | 메서드 실행 전에 필드가 null이 아닌지 확인하고 null인 경우 NullPointerException 을 발생 |
@Cleanup | 지정된 리소스가 자동으로 정리(닫힘)되는지 확인 |
@Synchronized | synchronized 키워드와 유사하지만 특정 함정을 방지하는 동기화된 블록을 제공 |
@With | 수정된 값으로 새 인스턴스를 생성하는 "with" 메서드를 생성 |
@Log | 로거 필드를 생성(다음의 적절한 로거 사용: @CommonsLog , @Log4j , @Log4j2 , @Slf4j , @XSlf4j , @JBossLog , @Flogger ) |
@Delegate | 다른 필드에 메서드를 위임 |
@Accessors | 필드에 대해 생성된 getter 및 setter를 구성 |
@FieldDefaults | 기본 액세스 수준을 수정하여 기본적으로 필드를 'private' 및 'final'로 변경 |
Share article