본문 바로가기
개발 관련 지식/JAVA

lombok

by 권태일1147 2020. 3. 20.

Lombok은 자바에서 Model(DTO, VO, Domain) Object 의 멤버변수에 대한 Getter/Setter, ToString이나 멤버변수에 주입하는 생성자를 만드는 코드 등 기계적으로 만드는 코드를 어노테이션을 통해 줄여 주는 라이브러리이다.

 

어노테이션 종류는 많은데 주요한 기능으로는 @Data만 사용하면 된다.

@Data@ToString, @EqualsAndHashCode, @Getter, @Setter, @RequiredArgsConstructor 를 처리해준다.

 

lombok 어노테이션을 사용하지 않으면 일일이 만들어줘야 한다.

package com.example.test.model;

public class InfoVO {
    private String id;
    private String name;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

 

lombok 어노테이션을 사용하면 코드가 짧아진다.

package com.example.test.model;

import lombok.Data;

@Data
public class InfoVO {
    private String id;
    private String name;
}

 

 

lombok은 IDE가 자체적으로 컴파일할 때 (ex. 잘못된 코드에 빨간 밑줄 그어주는 것) lombok 어노테이션도 같이 체크를 해주는 것이기 때문에 (java 컴파일과는 별개로) IDE에 lombok 플러그인을 설치 해줘야 한다.

lombok 플러그인을 사용하지 않고도 lombok 어노테이션을 사용하려면 dependency에 lombok compile과 annotationProcessor를 넣어줘야한다.

// gradle dependencies

compile 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

이렇게 하면 IDE 플러그인을 추가 하지 않았기 때문에 IDE에서는 lombok 어노테이션을 컴파일하지 못해 에러인 것처럼 보이지만

자바 컴파일러가 lombok을 해석하기 위해 필요한 dependency는 넣어줬기 때문에 빌드는 정상적으로 작동된다.

 

그냥 편리하게 사용하려면 dependency와 플러그인 둘 다 넣어주자.