ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SpringBoot] Lombok 사용 및 적용 방법
    Server/SpringBoot 2019. 11. 18. 15:48

    Lombok 라이브러리는 자바 개발을 getter와 setter, 혹은 toString 메소드를 만들일이 생긴다.

    위에 getter, setter, toString은 주로 변수가 쉽게 값에 접근하지 못하게 하기위해 private으로 선언되어 있을 때 사용하는 메소드들이다.

    하지만 변수가 많아지면 get, set으로 인해 코드가 길어지고 지저분하게 보일 수 밖에 없다.

    이럴 때 코드를 다이어트 해주는 것이 Lombok 라이브러리이다.

    즉 코드를 짧게 줄여줄 수 있다.

     

    아래 코드를 보자!

    변수는 private으로 생성되어 있고, get, set은 public으로 선언되어 있다.

    따라서 다른 클래스에서 SearchVO에 있는 startDate나 endDate에 접근하고 싶으면 getStartDate(), getEndDate() 이런 식으로 만들어 주는 것이다. 

    하지만 변수가 많아지면 코드가 길어지기 때문에

    여기에 @Data 어노테이션 하나만 붙여주면 다 해결되는 lombok을 유지보수할 때에 많이 사용한다.

     

    자 이제 사용방법을 알아보자.

    아래 링크로 들어가 lombok을 다운받자.

    나의 경우엔 version 1.18.10 이다.

    https://projectlombok.org/download

     

    Download

     

    projectlombok.org

    다운 받아진 .jar 파일을 실행시켜보자.

    여기서 본인이 Lombok을 적용하고 싶은 IDE를 찾아서 적용시켜주면 된다.

    자동으로 이 프로그램이 찾아줄 수도 있는데, 나같은 경우에는 찾아주지 못해서 내가 사용할 eclipse의 경로를 [Specify location]에서 직접 찾아 설정해주었다.

    후에 Install/Update 하고 Quit Installer를 하면된다.

     

    여기서 끝이 아니라 이제 의존성 주입을 해주어야한다.

    나의 경우에는 Gradle로 설정했으므로 

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

    얘내를 dependencies 아래에 추가해주면 된다.

     

    후에 [Refresh Gradle Project] 당연히 해줘야한다.

     

    이제 아래 코드처럼 코드를 바꾸어보자.

    @Data 어노테이션 하나를 붙임으로서 아까 길었던 get set, toString 코드들이 다 필요없게 되었다.

    @Data 어노테이션은 @Getter @Setter @ToString @EqualsAndHashCode @RequiredArgsConstructor 을 모두 사용하게 되는데, 사실 무분별한 사용은 지양된다고 한다.

     

    부가적으로 위에 보이는 (AccessLevel.NONE)을 어노테이션 뒤에 써주면 그 필드는 @data가 적용되지 않는다고 한다.

    근데 이부분이 없이 그냥 @data로 해도 그 밑에 setLinkOrg는 잘 출력이 되어서 이 부분은 약간 헷갈린다!

     

    어쨌든 이런식으로 하면 toString() 메소드도 자동으로 생성되므로 만약 Controller에서 

    파란 네모박스 안에 list형식 그대로 찍어보아도 list의 주소값 들이 아닌 값들이 콘솔에서 잘 출력된다.

    그럼 안녕 ~!

Designed by Tistory.