Software Engineering/기타

Lombok(롬복) 설치 및 활용법

컴슈터 2022. 5. 6. 22:27

Lombok(롬복)이란

Lombok(롬복)은 소스가 깔끔한 것을 선호하는 사람이 좋아할 법한 라이브러리이다. getter, setter와 같이 반복되는 형태의 코드를 줄여주는 역할을 한다. 예를 들어 @Getter, @Setter와 같이 어노테이션(Annotation)으로 선언만 하면 그 기능을 함축적으로 갖고 있게 된다.

1. Lombok 라이브러리 다운받기

Lombok 사이트에 들어가서 jar 파일을 직접 설치하자. 2022년 5월 기준으로 최신 버전은 1.18.24이다.

파일의 다운로드가 완료되었으면, 이클립스 또는 STS가 설치된 경로에 lombok.jar를 붙여넣은 후 해당 파일을 실행한다.

그러면 인스톨러 창이 실행이 될 것이다. 아래와 같이 내 PC에서 IDE를 찾을 수 없다는 경고창이 나오더라도 OK를 눌러 닫으면 된다.

[Specify location...] 버튼을 클릭하여 이클립스 또는 STS가 설치된 경로에서 실행 파일을 선택한다.

그러면 아래와 같이 IDEs 목록에 선택한 실행 파일이 추가된다. 이제 Install/Update 버튼을 클릭한다.

롬북이 바로 설치된다. 설치 성공했다는 메세지가 뜬다면 [Quit Installer]를 눌러 창을 닫는다. 만약 설치 여부를 확인하고 싶다면 이클립스의 eclipse.ini 파일을 열어 -javaagent:C:\dev\eclipse\lombok.jar 와 같은 명령어가 추가되어 있으면 된다.

2. Lombok 적용하기

여기까지만 하고 롬북을 바로 사용할 수 있으면 편하겠지만, 소스 상에서 롬북이 인식을 하려면 한단계를 더 거쳐야 한다. Lombok 사이트의 Install 메뉴를 보면 Lombok을 설치할 수 있는 다양한 방법이 있다. 나는 메이븐을 이용하여 설치하려고 한다. 간단하게 의존성을 추가하자.

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.18.22</version>
	<scope>provided</scope>
</dependency>

위와 같이 작성하면 각자의 Maven repository에 롬북이 저장되었을 것이다.

3. Lombok 사용하기

이제 롬북을 사용해보자. 아래와 같이 @Getter @Setter를 입력하면 getter, setter가 자동으로 생성된다.
(롬복이 적용되지 않는다면 이클립스를 껏다 켜보자)

이번에는 @Data를 사용해보자. 해당 어노테이션은 많은 것들을 한꺼번에 설정해주는 끝판왕이라고 보면 된다. (@Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode을 한꺼번에 설정해준다)

롬북에서 사용중인 기능들은 lombok features에서 제공중이며, lombok API를 참고하여 자신이 사용하고자 하는 롬북 기능을 잘 활용하면 깔끔하게 소스가 관리될 것이다 :)

아래는 자주 쓰이는 어노테이션을 정리한 표이다.

어노테이션 설명
@Getter 클래스의 모든 필드에 대한 getter 메서드 생성
@Setter 클래스의 모든 필드에 대한 setter 메서드 생성
@ToString 클래스의 toString() 메서드 생성
@EqualsAndHashCode 클래스에 대한 equals() 및 hashCode() 메서드 생성
@NoArgsConstructor 클래스에 대한 인자가 없는 생성자 생성
@AllArgsConstructor 클래스의 각 필드에 대해 하나의 매개변수가 있는 생성자 생성
@RequiredArgsConstructor 클래스의 각 final 필드와 null이 아닌 필드에 대해 하나의 매개변수가 있는 생성자 생성
@Data 클래스의 모든 필드에 대한 getter, setter, toString(), equals(), hashCode() 메서드 생성
@Builder 클래스에 대한 빌더 패턴 생성
@Value 최종 필드, getter 메서드, toString(), equals(), hashCode() 메서드가 있는 불변 클래스 생성
@Slf4j SLF4J 로깅 프레임워크를 사용하여 클래스에 대한 로거 인스턴스 생성
@Log4j Log4j 로깅 프레임워크를 사용하여 클래스에 대한 로거 인스턴스 생성
@Log 내장 Java 로깅 프레임워크를 사용하여 클래스에 대한 로거 인스턴스 생성

References

https://adjh54.tistory.com/152