[스프링부트] 2. Lombok 라이브러리

2020. 5. 24. 18:25스프링부트

728x90

Lombok 라이브러리는 ?
Java 개발자들에게는 Getter/Setter 메소드를 생성하거나 toString() 혹은 생성자 함수를 생성하는 등의 작업이 일상화 되어있는데,
이러한 반복작업을 줄이기 위해 Lombok을 이용한다면 반복작업을 단순화하여 개발 시간을 단축할 수 있습니다.
Lombok 라이브러리는 쉽게 말해서 Java코드를 컴파일할 때 자동으로 추가 메소드를 만들어서 컴파일해주는 라이브러리입니다.

 

1. 일단, Lombok라이브러리를 맥북에 설치해보도록 하겠습니다.

https://projectlombok.org/download 에 접속해서 Lombok라이브러리를 다운로드해줍니다.

 

 

2. 그러면, 실행할 수 있는 'lombok.jar'가 다운로드 됩니다.

다운로드 된 'lombok.jar'를 클릭하여 실행합니다.

 

 

3. 'lombok.jar'를 실행해보면, 아래와 같은 창이 뜹니다.

그런데 저는 버전이 다른 2개의 이클립스가 설치되어 있는데요

위의 '/Users/baekkjinah/eclipse/java-2019-12/Eclipse.app' 경로는

기본 자바프로젝트들만 실행하는 처음 설치했던 이클립스의 경로입니다.

하지만 lombok을 실행해볼 스프링부트프로젝트는 다른 경로의 이클립스를 사용할 것이기 때문에

해당 경로를 설정하기 위해 'Specify location...'을 클릭하여 경로를 잡아줍니다.

 

 

4. lombok을 실행할 이클립스의 'eclipse.ini'파일의 경로를 찾아 지정해준 뒤 open버튼을 클릭합니다.

그런데 여기서 이클립스 경로를 못 찾겠다면?

저 같은 경우 이클립스를 바탕화면에서 실행하는데요

경로확인방법은 '이클립스아이콘 우클릭 - 패키지내용보기 클릭 - Contents - Eclipse - eclipse.ini'로 확인하면 됩니다!

 

 

5. 경로를 잡아주고 Install/Update버튼을 클릭합니다.

 

 

6. 설치가 완료되면, 해당 'eclipse.ini'파일을 확인해보면, 아래와 같이 추가된 내용을 확인할 수 있습니다.

 

 

7. 그런데, 사실 제가 스프링부트프로젝트 생성할 때 'Lombok'을 체크하고 생성을 했었는데,

그러면 'pom.xml'에 추가되어있을텐데

포트에러가 계속 발생해서 프로젝트를 계속 새로 생성해보다가 체크를 안하고 생성해서 저는 없습니다.

그러므로 lombok설치 후 이클립스로 돌아와서 'pom.xml'에 아래와 같이 코드를 추가해줍니다.

설치된 Lombok버전을 모르시겠다면, 아까 'lombok.jar'클릭 후 나오는 팝업창 하단을 확인해주시면 됩니다.

 

 

8. 'pom.xml'에 코드를 추가했다면 , '이클립스 아이콘우클릭 - 패키지내용보기 클릭 - Contents - Eclipse '에서

'lombok.jar'가 추가된 것을 확인할 수 있습니다.

 

 

9. 자 이제 Lombok을 사용해보기 위해서 SampleVo.java를 생성하여 아래와 같이 코드를 작성해 줍니다.

 

 

10. SampleController.java에 아래와 같이 코드를 추가해보면,

SampleVo.java에 getter/setter를 따로 작성하지 않았는데도 setVal1()과 같이 호출할 수 있는 것을 볼 수 있습니다.

 

 

11. SampleController.java에 코드를 작성 후 프로젝트를 실행후 아래와 같은 내용을 확인할 수 있습니다.

url입력시 화면
eclipse 콘솔내용

 

 

12. 추가로 @Data 어노테이션을 알아보자면, Lombok에서 @Data를 이용하면 getter/setter를 생성하고

equals(), hashCode(), toString(), 파라미터가 없는 기본 생성자까지 자동으로 만들어 주기 때문에 편리합니다.

SampleVo.java에 @Data를 아래와 같이 적용해볼 수 있습니다.

위 코드에서 @Data를 적용했기 때문에 자동으로 모든 속서엥 대해서 getter/setter가 생성되고, toString() 역시 작성됩니다.

그런데 toString()은 원하는 속성들만 출력되도록 조정을 해야하는 경우가 종종 있는데,

@toString에 exclude라는 속성을 이용해서 원하지 않는 석성을 출력하지 않도록 제어할 수 있습니다.

13. SampleVo.java에 코드 수정 후

아래와 같은 내용을 확인할 수 있습니다.

eclipse 로그

참고 : 스타트스프링부트(교재-구멍가게코딩단/남가람북스)

728x90