[Spring] Lombok에 대해 알아보자

Spring 애플리케이션을 개발할 때 빠질 수 없는 lombok에 대해 알아보자!
Hi's avatar
Jun 03, 2024
[Spring] Lombok에 대해 알아보자

✅ Lombok이란?

📋
어노테이션을 통해 기본적인 동작을 하는 코드를 자동완성해주는 기능을 제공해주는 라이브러리이다.
 
예를 들면,
notion image
클래스에 @Data 어노테이션을 달면, getter, setter, toString, … 등의 메소드가 내재적으로 제공된다. 이 외에도 @AllArgsContructor 를 통해 모든 멤버변수를 포함한 생성자를 제공받을 수 있으며, @NoArgsConstructor 를 통해 기본 생성자를 제공받을 수 있다.
 
위 그림에서 구조를 살펴보면, @Data 어노테이션으로 인해 category 멤버변수를 가져오는 getCategory()라는 camel case의 getter 메소드를 제공받고 있는 모습을 확인할 수 있다.
 
Lombok을 사용하면, 반복되는 코드 작성을 줄이고 코드를 깔끔하게 작성할 수 있는 장점이 있다!
 
이 외에도 다양한 어노테이션이 존재한다.
 

✅ Lombok에서 제공하는 어노테이션

주석
목적
@Getter
모든 필드에 대한 getter 메소드를 생성
@Setter
모든 필드에 대한 setter 메소드를 생성
@ToString
'toString' 메서드를 생성
@EqualsAndHashCode
equalshashCode 메소드를 생성
@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

soultree