Lombok은 Java에서 매우 많이 쓰이는 라이브러리이다. 특히 DTO를 사용한다면 용이하게 사용할 수 있는 라이브러리이다. Lombok의 기능을 하나씩 알아보자.

계층간 데이터 전달을 위해 DTO를 사용하다보면 DTO 안에 변수가 많아질수록 getter와 setter가 많이 필요하다. 변수 하나당 get,set 하나씩 설정하다보니 변수가 많아지면 보기에도 지저분하다.
하지만 Lombok을 사용한다면 class 앞에 @Getter @Setter만 붙여주면 된다. 따로 get, set을 선언할 필요도 없고 DTO 내부의 변수에 접근하려면 get변수명() 또는 set변수명()의 형태로 호출하면 된다
(주의 : 변수명 앞글자는 대문자로 바꿔줘야한다.)
예시 코드는 다음과 같다.
@Getter
@Setter
public class ChatDTO {
private String userid;
private int clgid;
private String message;
}
모든 변수를 파라미터로 받는 생성자를 자동으로 만들어준다. Lombok이 있다면 생성자 생성도 간편해진다. 더 설명할 것도 없는, 이름 그대로의 기능이다.
앞서 설명한 DTO 코드에 @AllArgsConstructor를 사용하면 다음과 같은 생성자를 만든 것과 같다.
@Getter
@Setter
@AllArgsConstructor
public class ChatDTO {
private String userid;
private int clgid;
private String message;
}
public chatDTO(Stirng userid, int clgid,String message){
this.clgid = clgid;
this.userid = userid;
this.message = message;
}
어떠한 변수도 파라미터로 받지 않는 생성자를 자동으로 만들어준다.
먼저 설명한 DTO에 @NoArgsConstructor을 사용하면 다음과 같은 생성자를 만든 것과 같다.
@Getter
@Setter
@NoArgsConstructor
public class ChatDTO {
private String userid;
private int clgid;
private String message;
}
public chatDTO(){
}
특정 변수만을 파라미터로 받는 생성자를 자동으로 만들어준다. 생성자의 파라미터로 하고 싶은 변수에 @NonNull을 붙여주거나 final로 선언하면 된다.
예시 코드는 다음과 같다.
@Getter
@Setter
@RequiredArgsConstructor
public class ChatDTO {
@NonNull
private String userid;
private final int clgid;
private String message;
}
public chatDTO(Stirng userid, int clgid){
this.clgid = clgid;
this.userid = userid;
}
선물세트 같은 어노테이션! @Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정할 수 있다.
@Data
public class User {
// ...
}
지금까지 사람들이 Lombok에서 가장 많이 사용하는 어노테이션만 뽑아서 정리해보았다.
해당 내용은 이화 DnA 소그룹 활동의 일환으로 작성된 기술블로그 포스팅으로 다음 링크에서도 확인 가능합니다. enn lab