John's 개발자의 관심노트

Spring 롬복(Lombok) 사용해보기 본문

[개발]/Spring WEB

Spring 롬복(Lombok) 사용해보기

John-Co 2022. 11. 10. 11:41

Lombok 이란 JAVA 의 라이브러리로 반복되는 메소드들을 Annotation 하나로 자동으로 생성해주는 기능입니다. 보통 DTO 를 생성시에 Getter, Setter, toString(), 생성자 등 공통적으로 생성해주는 Method 들이 있는데 Lombok 을 통해서 간단하게 자동생성 되도록 프로그래밍을 할 수 있습니다.

 

프로그래밍을 더욱 더 간편하게 해주는 롬복(Lombok), 그 사용법에 대해 알아보도록 하겠습니다.


1. Lombok Dependency 추가

Lombok 을 사용하기위해서는 Dependency 추가를 해주어야합니다. 추가할 코드는 다음과 같습니다.

💻 line : 24

"compileOnly" 란, Compile 시에만 같이 빌드하고, 그 결과물에는 포함되지 않는 라이브러리라는 의미입니다. 추가된 lombok 라이브러리는 Compile 시에만 동작이 되어 우리가 자주 생성하는 Method 들을 자동생성해주고 실제 빌드 결과 파일에는 포함되지 않습니다.

 

💻 line : 25

"annotationProcessor" 란, Annotation 역할을 하는 라이브러리라는 의미입니다.


2. DTO 클래스 생성 (Lombok 사용 안할 경우)

롬복(Lombok) 을 사용하지 않는 경우에는 아래코드와 같이 라인이 무수히 길어집니다. 또한 해당 DTO 객체에 변수를 추가 및 삭제, 변수이름 변경등과 같은 일을 하게되면 굉장히 번거로운 일이 될 수 있습니다.

Lombo 사용 안할 경우 Source Code


3. DTO 클래스 생성 (Lombok 사용)

아래와 같이 롬복(Lombok) 을 사용하게되면, 40라인까지 길었던 코드가 14라인까지로 축소됩니다. 추가적으로 변수이름을 수정해도, 변수를 추가하거나 삭제해도 자동으로 롬복에서 처리를해주니 유지보수면에서 너무 편리한 기능임이 틀림 없다고 생각합니다. 오른쪽 이미지는 롬복 Annotation을 달아주었을 때 자동으로 생성된 클래스 멤버 요소리스트 입니다. getter, setter, toString(), constructor 등 필수적인 메소드들을 자동으로 생성해주는 것을 확인할 수 있습니다.

Lombok 을 사용한 경우의 Source Code

💻 line : 7

"@Data" 란, Getter, Setter, toString, Equals 등의 메소드를 자동으로 생성해주는 Annotation 입니다.

원하는 메소드는 따로 생성하고 싶다면, "@Getter, @Setter, @ToString" 등을 따로 넣어주시면 됩니다.

💻 line : 8

"@NoArgsConstructor" 는 전달인자가 없는 Default 생성자를 자동생성해주는 Annotation 입니다.

💻 line : 9

"@AllArgsConstructor" 는 내부 멤버변수에 모든 값들을 전달인자로 받는 생성자를 자동생성해주는 Annotation 입니다.

반응형