[SpringBoot] 롬복(lombok) 사용하기

smlee·2022년 7월 21일
0

SpringBoot - JDBC

목록 보기
6/8

❓ 롬복(Lombok)이란

롬복은 내부적으로 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 사용하기

1. lombok 다운로드

lombok은 project lombok에서 다운로드 받을 수 있다.

빨간 글씨로 다운로드라고 적혀 있는 걸 클릭하면 자동으로 다운로드 받아진다.

2. 의존성 추가

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>

3. lombok 사용하기

설치와 의존성 설정까지 완료했으므로 lombok을 사용하면 된다.

@Getter
@Setter
@AllArgsConstructor
public class PostUserRes {
    long    userId;
    String  jwt;
}

위와 같이 lombok에 속하는 어노테이션을 달아서 코드를 작성하면 lombok이 알아서 Getter와 Setter, 생성자를 생성해준다.

0개의 댓글