반응형
1. Lombok이란?
코드를 간소화 시켜주는 어노테이션들을 제공하는 라이브러리로, Lombok을 적절히 잘 활용하면 개발 시간을 많이 단축시킬 수 있다.
2. 예제
해당 예제는 Spring Boot에서 Gradle 프로젝트로 작성했다.
1) 목표
아래 소스 코드는 필자가 예시로 작성한 평범한 DTO이다.
이 긴 코드를 Lombok을 이용하여 리팩토링해 볼 것이다.
package com.example.demo.entity;
public class User {
// 변수 선언
private String id;
private String password;
private String name;
private int age;
// 생성자
public User(String id, String password, String name, int age) {
this.id = id;
this.password = password;
this.name = name;
this.age = age;
}
// Getter, Setter
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// toString()
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", password='" + password + '\'' +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
2) 라이브러리 추가
Lombok을 사용하기 위해 build.gradle파일의 dependencies에 다음 두 줄을 추가해준다.
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
그러면 우측 상단에 다음 아이콘이 나오는데, 이 아이콘을 눌러 라이브러리를 로드해준다.
3) Annotation Processing 사용 설정
File -> Settings에 들어가서 Annotation Processors 메뉴로 들어간 후 "Enable annotation processing"을 체크한다.
Lombok은 어노테이션을 제공하는 라이브러리이므로 이 설정이 필요한 것이다.
4) 적용
4개의 어노테이션만으로 소스코드가 이렇게나 줄었다. Setter 메소드, Getter 메소드, 생성자, toString 메소드가 Lombok 어노테이션 한 줄로 모두 대체된 것이다.
package com.example.demo.entity;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@AllArgsConstructor // 생성자가 모든 멤버 변수를 포함하도록 설정
@ToString
public class User {
private String id;
private String password;
private String name;
private int age;
}
반응형
'Spring Series > Spring Boot' 카테고리의 다른 글
[Spring Boot] 2개의 DB를 사용하는 방법 (0) | 2022.11.12 |
---|---|
[Spring Boot] 프로젝트 AWS에 배포하기 (0) | 2022.01.26 |
[Spring Boot] Executable JAR 생성하기 (0) | 2021.08.30 |
[Spring Boot] MVC 패턴 (0) | 2021.07.15 |
[Spring Boot] Spring vs Spring Boot / 개발 환경 설정 (0) | 2021.07.14 |
댓글