스프링 프레임워크 책을 읽다가 프로젝트 롬복(Project Lombok)에 대해서 알게 되었다.
프로젝트 롬복(Project Lombok)
프로젝트 롬복(Project Lombok)은 자바로 작성된 소스코드를 좀 더 간결하게 만들어 주기 위해 만들어진 프로젝트다. 최신 자바 버전에서는 점점 나아지고 있지만 자바의 가장 큰 문제점은 소스코드에 군더더기가 너무 많다는 점이다.
Student 클래스를 자바로 작성해보자.
public class Student {
private final int id;
private final String name;
private final int age;
private final String department;
public Student(int id, String name, int age, String department) {
this.id = id;
this.name = name;
this.age = age;
this.department = department;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getDepartment() {
return department;
}
}
Student 클래스의 멤버 변수들이 하나씩 추가될 때마다, getter/setter 메소드들이 추가되고, 생성자(Constructor)에도 멤버 변수들을 추가해야 한다. 단순히 멤버 변수의 값을 설정하고, 읽어오는 동작들을 위해서 너무 많은 코드들이 추가된다.
물론 IDE에서 자동으로 getter/setter 메소드들을 생성해주는 기능이 있어서 매번 코드를 입력하지는 않겠지만 너무 많은 양의 코드때문에 가독성이 떨어지고 정작 중요한 비즈니스 로직이 한눈에 잘 안들어온다는 문제가 있다.
이런 자바의 단점을 해소하기 위해서 프로젝트 롬복(Project Lombok)이 생겼다. 롬복 어노테이션을 이용해서 Student 클래스를 다시 정의해보자.
import lombok.Data;
@Data
public class Student {
private final int id;
private final String name;
private final int age;
private final String department;
}
클래스 정의 코드 위에 '@Data' 어노테이션을 추가했을 뿐 별다른 메소드와 생성자 정의가 없다. 하지만 프로젝트의 다른 곳에서 Student 코드를 사용할 때 getter 메소드와 생성자를 사용할 수 있다. 개발자가 명시적으로 추가한 메소드가 아니지만 Lombok 어노테이션에 맞게 자동으로 추가된 메소드를 사용할 수 있게 되었다.
Project Lombok Maven Dependency
프로젝트 롬복을 사용하기 위해서 다음과 같은 메이븐 Dependency를 추가해야한다.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!--버전은 상황에 맞게-->
<version>1.16.10</version>
</dependency>
Lombok 어노테이션들
프로젝트 롬복(Project Lombok)은 '@Data' 어노테이션 이외에도 다양한 어노테이션들을 지원한다. 하나하나를 나열하기보다는 링크를 따라가서 확인하면 된다.
링크 : https://projectlombok.org/features/all
IntelliJ IDEA에서 Lombok Plugin 설치
IntelliJ에서 Lombok을 사용하기 위해서는 플러그인을 설치해야 한다.
플러그인을 설치하지 않으면 Lombok 어노테이션을 알아먹지 못한다.
MacOS 사용자의 경우 [Preference]를 들어간다. (윈도우 사용자의 경우 File - Setting)
"Plugins"를 선택한다.
"Marketplace" 탭을 선택하고, "Lombok"을 검색하면 플러그인을 설치할 수 있는 창이 나온다. Install 버튼을 눌러서 플러그인 설치를 시작한다.
설치가 끝나면 Restart IDE 버튼을 눌러서 IntelliJ를 재시작한다.
정상적으로 동작한다.
댓글