본문 바로가기
개발관련/Spring

java 개발을 더 간편하게 / lombok

by joa-yo 2020. 7. 8.
반응형

 

 

 

spring boot나 spring framework를 사용해봤다면 어느정도 어노테이션에 익숙해졌을 것이다. lombok은 어노테이션을 사용하여 코드를 간결화 해주는 라이브러리다. VO나 DTO에는 꼭 필요한 getter와 setter, 그리고 생성자, toString 메소드 등등을 간편하게 설정할 수 있다. 이외에도 부가적인 기능이 있는데 하나씩 확인해보자.

 

 

 


 

 

 

1. Project lombok이란 무엇인가?

공식 홈페이지에서는 롬북을 아래와 같이 설명하고 있다.

 

 

(번역)
프로젝트 롬북은 편집기에 자동적으로 연결되고 당신의 Java를 빠르게 만들어주는 Java라이브러리입니다. getter, setter, equals와 같은 메소드를 사용하지 마세요, 클래스에 완전한 기능을 갖춘 빌더가 있는 하나의 어노테이션, log변수를 자동화하여는 등등의 기능이 있습니다. 

출처 : 프로젝트 롬북 https://projectlombok.org/

 

다시 말해서, 롬북은 자바 라이브러리이며 어노테이션을 사용하여 자동화해준다는 의미로 해석할 수 있겠죠? lombok에 있는 기능들을 살펴봅시다.

 

 

 

 

 

 

 

 

 

2. Project lombok 살펴보기

lombok의 java doc문서를 보면, 모든 파일들이 Annotation으로 구성되어 있습니다. (https://projectlombok.org/api/overview-tree.html) lombok은 java doc보다는 공식 홈페이지(https://projectlombok.org/features/all)를 권유하고 있습니다.

 

그중에서 가장 많이 사용하는 몇가지만 소개해드리겠습니다.

 

 

[자주 사용하는 어노테이션]

어노테이션 원본 설명 설명
Getter Put on any field to make lombok build a standard getter. 클래스의 모든 필드들에 getter를 생성해준다.
Setter Put on any field to make lombok build a standard setter. 클래스의 모든 필드들에 setter를 생성해준다.
Data Generates getters for all fields, a useful toString method, and hashCode and equals implementations that check all non-transient fields. 클래스에서 지속적으로 사용하는 아래의 항목들을 생성해준다.

- Getter, Setter
- toString
- HashCode
- equals
- 생성자

 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode
를 모두 함께 적은 것과 동일함.
AllArgsConstructor Generates an all-args constructor. 모든 필드를 포함하고 있는 생성자를 만들어준다.
Slf4j Causes lombok to generate a logger field. log 필드를 생성해준다.
Log4j Causes lombok to generate a logger field. log 필드를 생성해준다.

클래스에 위와같은 어노테이션을 추가해주면 java파일을 컴파일 하면 생성되는 class파일에는 메소드가 생성이 된다. 어떤식으로 생성되는지 한 번 확인해보자.

 

 

 

 

 

 

 

 

 

3. lombok 활용

활용 방법은 매우 간단하다. 내가 사용하고 싶은 어노테이션을 클래스, 멤버변수에 함께 적어주면 된다. 아래의 예시들을 보자.

 

@Getter

멤버변수 foo에 @Getter어노테이션을 붙여주면, 작성하지 않아도 getFoo()메소드가 작성된다.

 

 

1. 어노테이션 적용

public class Demo {
	private @Getter int foo;
}

 

2. 어노테이션 미적용

public class Demo {
	private int foo;
    
    public int getFoo() {
         return this.foo;
     }
}

다른 어노테이션들도 위와 같이 메소드나 멤버변수가 추가된다. 

 

 

@Slf4j

멤머변수로 slf4j logger를 등록해주며, 변수명은 log로 등록된다.

 @Slf4j
 public class LogExample {
 }
 public class LogExample {
     private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LogExample.class);
 }

 

 

@Builder

Builder의 형태를 갖춘 클래스로 만들어준다. 생성자로 멤버변수 등록이 어려울 때 사용하면 좋은 방법으로, 멤버변수를 간편하게 등록할 수 있는 형태로 만들어준다.

 @Builder
 class Example<T> {
        private T foo;
        private final String bar;
 }
class Example<T> {
        private T foo;
        private final String bar;
        
        private Example(T foo, String bar) {
                this.foo = foo;
                this.bar = bar;
        }
        
        public static <T> ExampleBuilder<T> builder() {
                return new ExampleBuilder<T>();
        }
        
        public static class ExampleBuilder<T> {
                private T foo;
                private String bar;
                
                private ExampleBuilder() {}
                
                public ExampleBuilder foo(T foo) {
                        this.foo = foo;
                        return this;
                }
                
                public ExampleBuilder bar(String bar) {
                        this.bar = bar;
                        return this;
                }
                
                @java.lang.Override public String toString() {
                        return "ExampleBuilder(foo = " + foo + ", bar = " + bar + ")";
                }
                
                public Example build() {
                        return new Example(foo, bar);
                }
        }

 

 

 

나머지 어노테이션들도 모두 활용방법이 비슷하다. 어노테이션도 몇개 되지 않으므로 공식홈페이지에서 확인해보는 것도 추천한다. 또는 "빵굽는 개발자 빵형"의 youtube 컨텐츠를 추천한다. 링크는 아래의 참조를 확인하시기를 바란다.

 

 

 

 

 

 


 

 

 

4. 설치방법

1. maven을 통해서 jar파일 다운로드 및 설치

- mvn에서 Project lombok을 검색한다. 

- 가장 최신버전으로 선택한다.

- 자신의 빌드 툴에 알맞는 코드를 복사하여 프로젝트에 추가해준다.

- lombok.jar 파일이 생성되었는지 확인!

 

- 관리자 권한으로 cmd창을 켜고 lombok.jar파일이 있는 경로로 이동

- "java -jar lombok.jar"명령어를 실행

- lombok설치 화면이 뜨면 lombok을 추가할 이클립스 선택하고 설치

- 이클립스 재실행

 

 

2. 직접 jar파일을 다운로드 받아, 설치 및 프로젝트 라이브러리에 추가

   (lombok이 라이브러리에 이미 추가되어 있으나, 이클립스에서 인식 못하는 경우 해보기를 추천)

 

- 사이트에서 직접 jar파일 다운로드 (https://projectlombok.org/)

- 관리자 권한으로 cmd창을 켜고 lombok.jar파일이 있는 경로로 이동

- "java -jar lombok.jar"명령어를 실행

- lombok설치 화면이 뜨면 lombok을 추가할 이클립스 선택하고 설치

- 프로젝트에 lombok.jar 추가해줌.

- 이클립스 재실행

 

 

 

 

- 참조 -

 

빵굽는개발자 빵형, youtube https://www.youtube.com/watch?v=PoJ8chlMBJI

 

 

반응형

댓글