최근에 회사와 개인 프로젝트에서 Lombok을 사용하게 되었다.
단순히 @Data 어노테이션으로 getter, setter 코드 작성하는 걸 줄여주는 것만 있는 줄 알았는데, 생각보다 유용한 기능이 더 많았다.
편리한 만큼 잘못 사용하기도 쉽기도 하니 각 어노테이션별 특징은 더 알아보고 업데이트해야될 것 같다.
Lombok이란?
여러가지 어노테이션을 제공하여 반복되는 소스코드를 컴파일 과정에서 자동으로 생성해주는 Java 라이브러리이다.
@Data
사용 방법 : https://projectlombok.org/features/Data
@Data
projectlombok.org
@NoArgsConstructor, @AllArgsConstructor
사용 방법 : https://projectlombok.org/features/constructor
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor
projectlombok.org
@Builder
사용 방법 : https://projectlombok.org/features/Builder
@Builder
projectlombok.org
@Builder 사용 예
기존에 일부 변수를 이용해 만든 생성자를 이용해 Code param = new Code(comCd, defaultYn);와 같이 작성하던 코드를 아래와 같은 방식으로 작성할 수 있다.
생성자에 들어갈 변수가 달라질 때 매번 생성자를 새로 만들어줄 필요가 없고, 순서를 혼동해서 다른 값을 매핑하는 문제를 줄일 수 있다.
Code param = Code.builder()
.comCd(comCd)
.defaultYn(defaultYn).build();
List<Code> resultList = codeService.getCodeList(param);
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class Code {
private String comGrpCd;
private String comCd;
private String cdNm;
private String cdDesc;
private String defaultYn;
private String sort;
private String delYn;
private String creDt;
private String regUser;
private String modDt;
private String modUser;
}
'개발 > Java' 카테고리의 다른 글
[Java] 람다식 (0) | 2022.09.05 |
---|---|
[Java] 추상 클래스와 추상 메서드 (0) | 2022.09.01 |
[Java] String to Array, String to Char (0) | 2022.08.23 |
[Java] 배열과 메모리 (0) | 2022.08.22 |
[Java] 자료형 (0) | 2022.08.22 |