Programing/JAVA

Java 필수 라이브러리 Lombok 사용, 적용방법

리커니 2019. 10. 17.
반응형

Java 필수 라이브러리 Lombok 사용, 적용방법

 

 

Lombok 라이브러리는 VO(Value Object) 나 DTO(Data Transfer Object) 생성 시

혁신적으로 코드를 줄여주는 라이브러리 입니다.

 

얼마나 혁신적으로 코드를 줄이는지 한번 보겠습니다.

 

public class lombokTestVO {
    private String a;
    private int b;
    private boolean c;
    .
    .
    .
    public String getA() {
        return a;
    }
    public void setA(String a){
        this.a = a;
    }
    public int getB(){
        return b;
    }
    public void setB(int b){
        this.b = b;
    }
    public boolean getC(){
        return c;
    }
    public void setC(boolean c){
        this.c = c;
    }
    .    
    .
    .
}

 

일반적인 VO class 입니다. 물론 이를 하드코딩 하시는 분은 없을꺼에요.

[Alt] + [Shift] + [S] -> [R] 로 자동 생성을 하시죠.

하지만 변수가 많아질 수록 코드 또한 엄청나게 길어집니다.

그럼 Lombok을 적용하면 어떻게 될까요?

 

import lombok.Data;

@Data
public class lombokTestVO {
    private String a;
    private int b;
    pirvate boolean c;
}

 

끝.

왜 쓰는지는 됐고. 사용 방법을 알아보겠습니다.

 

Lombok 사이트로 이동합니다.

 

Link : https://projectlombok.org/

 

Project Lombok

 

projectlombok.org

 

 

페이지로 이동하시면 상단에 'Download' 를 클릭합니다. 그리고 다운로드.

다운받은 lombok.jar 파일을 실행하시면 파일이 실행됩니다.

 

 

자동으로 IDE를 검색하지만 자동검색이 되지 않으시면 Specify location을 선택하셔서 원하는 IDE를 선택하세요.

선택하신 후 Install / Update 클릭 (저의 경우 eclipse)

 

 

그냥 뭐 바로 됩니다.

 

 

설치가 완료되면 이클립스 설치경로에 eclipse.ini를 열어 아래의 내용이 추가되었는지 확인합니다.

-javaagent:이클립스설치경로\lombok.jar

 

이제, IDE로 이동하셔서 의존성 주입의 해줍니다.

 

[Gradle]

 

dependencies {

    /*Lombok*/
    compileOnly 'org.projectlombok:lombok:1.18.10'
    annotationProcessor 'org.projectlombok:lombok:1.18.10'
}

 

[Maven]

 

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

 

Maven의 경우 dependency를 추가하셨는데 어노테이션이 추가가 안될 경우 maven-compiler-plugin 쪽을

아래와 같이 수정해주세요.

 

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.2</version>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
        <encoding>UTF-8</encoding>
        <annotationProcessors>
            <annotationProcessor>lombok.launch.AnnotationProcessorHider$AnnotationProcessor</annotationProcessor>
        </annotationProcessors>
    </configuration>
</plugin>

 

그럼 이제 적용해보겠습니다. 기존에 사용하던 getter/setter 를 제거하고 @Data 어노테이션을 추가합니다.

 

import lombok.Data;

@Data
public class LombokTestVO {
    private String a;
    private int b;
    private boolean c;
}

 

보이는 코드는 줄었지만 Outline 탭을 확인해보시면 getter/setter 및 toString, hashCode 등 메소드가 생성된 것을 보실 수 있습니다.!

@Data 어노테이션 말고도 다른 어노테이션도 존재합니다.

 

@NonNull - 파라미터 null 체크

@Cleanup - 리소스 자동 정리

@Getter and Setter - getter/setter 자동 생성

@ToString - toString 오버라이드 메소드 자동생성

@EqualsAndHashCode - equals, hashCode 메소드 자동 생성 등등

@Slf4j - Logger를 선언하지 않고 사용

 

자세한 사항은 아래의 Link를 참고하세요.

 

Link : Lombok features

 

Stable

 

projectlombok.org

 

 

private
반응형

댓글

💲 추천 글