Lombok 이란?
Lombok 이란?
Lombok(롬복)은 Java 라이브러리로 반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리이다. 보통 Model 클래스나 Entity 같은 도메인 클래스 등에는 수많은 멤버 변수가 있고 이에 대응되는 getter, setter 그리고 toString 메서드 그리고 때에 따라서는 멤버변수에 따른 여러 개의 생성자를 만들어주게 되는데, 거의 대부분 이클립스와 같은 IDE의 힘만으로 생성한다고 하지만 이 역시도 번거로운 작업이 될 수 있습니다. 뿐만 아니라 코드 자체가 반복되는 메서드로 인해 매우 복잡해지게 됩니다.
Lombor은 여러가지 어노테이션을 제공하고 이를 기반으로 코드를 컴파일과정에서 생성해 주는 방식으로 동작하는 라이브러리입니다. 즉 코딩 과정에서는 롬복과 관련된 어노테이션만 보이고 getter와 setter 메서드 등은 보이지 않지만 실제로 컴파일된 결과물(.class)에는 코드가 생성되어 있다는 뜻입니다.
Lombok 사용 코드와 일반 Java 코드 차이
예를 들어 Member라는 모델 클래스가 있다면 다음과 같이 코드를 작성하게 됩니다.
그러나 위의 코드를 Lombok을 이용한다면 아래와 같이 바뀔 수 있습니다.
추가로, 보통의 프로젝트에서는 Log4j
나 Slf4j
같은 Loggin 프레임워크
를 사용하는데, 항상 다음과 같이 비즈니스 로직과는 별개로 불필요한 코드가 작성되게 됩니다.
public class CategoryServiceImpl{
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger
(CategoryServiceImpl.class)
// ... 생략
}
그러나 롬복에서는 다음과 같이 사용이 가능합니다. 아래와 같이 @Slf4j
와 같은 Logger 어노테이션을 붙여주면 log
라는 변수로 로깅을 사용할 수 있습니다.
public class CategoryServiceImpl{
// ... 생략
}
Lombok 적용 방법
롬복은 @Getter
, Setter
등 어노테이션을 사용하는데, 이러한 API를 사용하기 위해서 롬복 라이브러리(.jar)
파일을 추가해 주어야 합니다. .jar
파일을 직접 내려받아 class path 상에 추가해도 되지만 메이븐 프로젝트의 경우 pom.xml
에 아래와 같이 의존성을 추가해 주면 됩니다.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
프로젝트에 롬복 라이브러리 의존성을 추가했다면 이제 @Getter
나 @Setter
등의 API를 사용할 수 있는데 이상태로는 API를 사용할 수 있게 된 것일 뿐 실제로 코드가 생성되어지거나 하지는 않는데, 이클립스나 IntelliJ같은 IDE의 경우 우리가 개발시에 코드를 수정할 때마다 실시간으로 컴파일을 진행하는데, 롬복을 인식하고 코드를 자동으로 생성해주지 않기 때문입니다.
따라서 추가적인 작업을 해주어야 하는데, 이 작업 역시 lombok.jar를 통해 수행이 가능합니다.
> cd C:\Users\[자신의 win 사용자 계정]\.m2\repository\org\projectlombok\lombok\1.18.30
> java -jar lombok-1.18.30.jar
명령어가 정상적으로 실행됐으면 Specify location..
를 클릭하고 해당 IDE 설치 경로로 설정하면 끝
- @Data 어노테이션은
@Getter
,@Setter
,@ToString
,@EqualsAndHashCode
,@RequiredArgsConstructor
를 합쳐 놓은 종합 선물 세트 - @RequiredArgsConstructor 어노테이션은
private
이 붙은 녀석들만 Getter, Setter 생성
댓글남기기