Lombok
이 글에서는 Spring 개발에서 빼놓을 수 없는 Lombok 라이브러리에 대해서 알아보겠다.
Lombok 이란?
Java 라이브러리 중 하나로 반복되는 코드를 Annotation을 사용하여 자동으로 생성해주는 라이브러리이다.
Lombok을 사용함으로써 얻을 수 있는 가장 큰 이점은 Boiler Plate 를 줄여 가독성을 높이고 유지보수 편의성을 향상시킬 수 있으며, 간단한 Annotation만으로 코드 작성을 줄일 수 있다는 점이다.
Lombok Annotation
Annotation | 대상 | 기능 |
---|---|---|
@Getter | Class, 변수 | Getter 메서드 생성 |
@Setter | Class, 변수 | Setter 메서드 생성 |
@ToString | Class | Class 필드를 기반으로 toString 메서드 생성 |
@NoArgsConstructor | Class | 기본 생성자를 생성 |
@AllArgsConstructor | Class | Class 필드를 파라미터로 받는 생성자를 생성 |
@RequiredArgsConstructor | Class | 특정 필드만을 파라미터로 받는 생성자를 생성. 생성자의 파라미터로 추가할 변수에 @NotNull 또는 final을 선언하여 의존성 주입 |
@EqualsAndHashCode | Class | equals 와 hashCode 함수 생성. callSuper(부모의 필드도 비교할지 여부) |
@Data | Class | Getter 메서드, Setter 메서드, RequiredArgsConstructor, toString, equals 모두 생성 |
@Builder | Class | 해당 Class에 Builder 패턴 적용 |
@SuperBuilder | Class | @Builder + 상속 관계까지 반영 |
프로젝트 설정
Lombok을 사용하기 위해서 IDE의 Annotation Processor 옵션을 활성화 해야 한다. IntelliJ Annotation Processor 활성화
IDE 설정이 완료됐다면, Gradle 에 의존성을 설정해준다.
dependencies {
...
//lombok
compileOnly 'org.projectlombok:lombok:1.18.22'
annotationProcessor 'org.projectlombok:lombok:1.18.22'
...
}
아래는 @Data Annotation을 적용하여 getter, getter, equals, hashCode를 정의한 모습니다. 보다시피 소스코드가 굉장히 간소화 된 것을 볼 수 있다.
@Data
public class User {
Integer userSeq;
String id;
LocalDate registTime;
LocalDate lastLoginTime;
}
댓글남기기