오늘은 자바 개발에서 사용되는 라이브러리인 롬복(Lombok)에 대해 알아보고 설치해보자
롬복(Lombok)이란?
롬복은 인도네시아의 섬중 하나로 인도네시아어로 고추라는 뜻을 의미하고있다. 그래서 아이콘이 저렇다.
자바(Java)에서 롬복은 주로 보일러플레이트 코드( 자주 반복되는 코드를 의미 )를 줄이기 위해 사용된다.
롬복을 사용하면 자바 객체의 getter / setter, 생성자, toString(), equals, hashCode() 메소드 등을 자동으로 생성이 가능하다.
이를 통해 코드의 가독성을 높일 수 있고 유지보수를 용이하게 할 수 있다는 장점이 있다.
주요 기능 및 어노테이션
롬복은 여러 유용한 어노테이션을 제공하며, 다음과 같은 주요 기능들이 있다.
1. @Getter와 @Setter
·필드에 대해 자동으로 getter 와 setter 메소드를 생성
@Getter @Setter
private String name;
2. @ToString
· toString() 메소드를 자동으로 생성
@ToString
public class Person {
private String name;
private int age;
}
3. @EqualsAndHashCode
· equals(), hashCode() 메소드를 자동으로 생성
@EqualsAndHashCode
public class Person {
private String name;
private int age;
}
4. @NoArgsConstrictor, @AllArgsConstructor, @RequiredArgsConstructor
· 파라미터가 없는 기본 생성자 -- @NoArgsConstrictor
· 모든 필드를 파라미터로 가지는 생성자 -- @AllArgsConstructor
· final 필드나 @NonNull 어노테이션이 붙은 필드를 파리미터로 가지는 생성자를 생성 -- @RequiredArgsConstrucor
@NoArgsConstructor
@AllArgsConstructor
public class Person {
private String name;
private int age;
}
5. @Data
· @Getter, @Setter, @ToString, @EqualsAndHashCode, @RequiredArgsConstrucor 를 모두 포함하는 종합적인 어노테이션
@Data
public class Person {
private String name;
private int age;
}
6. @Builder
· 빌더 패턴을 자동으로 생성
@Builder
public class Person {
private String name;
private int age;
}
위와 같이 롬복을 사용하였을 때 장점
- 코드 간결성 : 보일러플레이트 코드를 줄여서 클래스가 더욱 간결해짐
- 가독성 향상 : 어노테이션을 사용하여 중요한 비즈니스 로직에 집중 가능
- 유지보수 용이 : 롬복을 사용하면 코드 변경시 수정해야 할 부분이 줄어들어 유지보수에 용이
단점
- 컴파일 의존성 : 롬복은 컴파일 타임에 어노테이션을 처리하기 때문에 IDE설정이나 컴파일 환경에 따라 문제가 발생 할 수있음
- 런타임 의존성 없음 : 롬복은 컴파일 타임에만 사용되므로, 런타임에는 전혀 영향을 미치지 않음
Lombok 설치하기
https://projectlombok.org/download
프로젝트 롬복 사이트에 들어가서 롬복 jar 파일을 다운로드 해준다.
다운로드한 lombok.jar 파일을 롬복을 사용할 이클립스 폴더 안에 넣어준다.
명령 프롬프트를 관리자 관한으로 실행 한다.
cd 명령어를 이용하여 JDK bin 폴더로 이동한다.
cd : C:\Program Files\Java\jdk-11\bin ( JDK 경로는 사용자마다 다를 수 있음 ! )
java -jar 롬복을 넣어둔 이클립스 폴더경로\lombok.jar 를 하여 롬복 파일을 실행
(나는 처음에 오류가 났었는데 경로에 한글이 있어서 난것같아 없애주니 해결되었다.)
java -jar C:\Users\user\Desktop\JSPeclipse\lombok.jar ( 이클립스 경로는 사용자마다 다름 )
그러면 다음 과 같이 창이 띄워짐 Spectify location클릭
이클립스 폴더를 찾아서 select해주기
다음 창이 뜨면 설치가 성공한것이다
Maven에서는 pom.xml 파일에 다음과 같이 의존성을주입해주면 바로 사용가능하다.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.24</version>
<scope>provided</scope>
</dependency>
롬복을 IDE에 적용하는 방법은 위 방법들 말고도 더 있다.
Lombok 사용해보기
이클립스를 실행하고 롬복을 사용해보자
다음과 같이 PersonDTO.java 파일이 있다.
public class PersonDTO {
private int id;
private String name;
private String department;
public PersonDTO(int id, String name, String department) {
super();
this.id = id;
this.name = name;
this.department = department;
}
public PersonDTO() {
super();
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
@Override
public String toString() {
return "PersonDTO [id=" + id + ", name=" + name + ", department=" + department + "]";
}
}
멤버변수가 3개인데도 불구하고 코드가 50줄 정도 된다. Lombok을 사용해서 코드를 간결하게 줄여보자
import lombok.Data;
@Data
public class PersonDTO {
private int id;
private String name;
private String department;
}
위와 같이 코드가 10줄도 안되게 줄어든것을 확인 할 수있다.
또한 @Data 어노테이션 하나 작성했을 뿐인데 롬복이 getter / setter와 생성자, toString 등의
메소드들을 자동으로 생성 해 준 것을 확인 할 수 있었다.
하지만 메소드가 생성이 됐지만 실행에 오류가 나서 다음과 같이 설정해 주었더니 해결되었다.
프로젝트 우클릭 - Build Path - Configure Build Path
이 작업을 하여 빨간줄도 없어지고 실행했을때 오류없이 잘 작동되었다.
이와 같이 롬복은 코드의 가독성을 높여주고 유지보수를 용이하게 해줄수 있어
자바 개발자들 사이에서 인기가 많다.