롬복은 내부적으로 DTO와 같은 모델에서 변수를 지정
하면 자바 클래스로 만들 때 Getter
, Setter
, toString
등의 메소드를 자동으로 만들어주는 기능이다.
롬복은 Getter, Setter, toString 등의 메소드들을 자동으로 생성해주는 어노테이션이므로 클래스 내부의 변수 수정이 잦은 경우 편리하다.
반면, 변수 설계를 완벽히 한 상태에서 개발을 진행하는 경우나, Getter, Setter 내부에서 로직을 변경
해야하는 경우 lombok의 사용이 오히려 불편할 수 있다.
public class SampleDto {
private double saleRate;
public void setSaleRate(double saleRate){
if(saleRate<=0.0){
this.saleRate = 0.0;
}
else {
this.saleRate = saleRate;
}
return;
}
}
예시로 위의 코드를 한번 보자. 할인률을 나타내는 변수인 saleRate
에는 0 이상의 값이 들어와야한다. 따라서 입력 오류로 saleRate에 0 미만인 수가 들어오면 0을 넣어주어야한다. 따라서 Setter 함수
내부에서 로직 변경
을 하여 예외 처리를 해준 경우가 위의 코드이다.
만약, lombok을 사용하여 @Setter
어노테이션을 사용했을 경우, 위와 같은 예외처리를 하지 못했을 것이다. 따라서 예외 처리 등 Getter나 Setter에서 로직 변경이 필요한 경우에는 lombok 어노테이션을 사용하는 것은 오히려 불편할 수 있다.
lombok은 project lombok에서 다운로드 받을 수 있다.
빨간 글씨로 다운로드라고 적혀 있는 걸 클릭하면 자동으로 다운로드 받아진다.
Lombok을 사용하기 위해서는 lombok 라이브러리를 사용하기 위하여 의존성을 추가
하고, 컴파일 시 새로운 플러그인 에러 이슈 때문에 build.gradle
이나 maven
에 다음과 같은 설정을 해주어야 한다.
(1) build.gradle
설정
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
dependencies {
implementation ('org.projectlombok:lombok')
compileOnly ('org.projectlombok:lombok:1.18.16')
annotationProcessor ('org.projectlombok:lombok:1.18.16')
}
(2) maven
설정
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
설치와 의존성 설정까지 완료했으므로 lombok을 사용하면 된다.
@Getter
@Setter
@AllArgsConstructor
public class PostUserRes {
long userId;
String jwt;
}
위와 같이 lombok에 속하는 어노테이션을 달아서 코드를 작성하면 lombok
이 알아서 Getter와 Setter, 생성자를 생성해준다.