Web/Spring국비지원 수업 정리

<Spring 국비지원 수업> lombok
깝몬 2023. 8. 17. 10:17

0. lombok 이란?

lombok은 우리가 DTO의 역할을 하던 것들을 field명에 맞춰 항상 getter, setter, toString, constructor 들을 계속 만들어 줘야 하는데 이것이 상당히 번잡하고 코드의 간결성을 지키기가 어렵다.

 

필드가 5개임에도 펼칠것이 상당히 많다.

이러한 것들을 annotation을 이용하여 간결하게 관리해 주는 것이 lombok이다.

 

 

1. lombok 라이브러리에 추가하기

 

우선 pom.xml의 dependencies에 lombok을 추가하는 코드를 넣어 준다.

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.24</version>
    <scope>provided</scope>
</dependency>

 

 

 

그뒤 maven을 이용중이므로 maven 업데이트를 하면

 

 

lombok이 생겼다

lombok이 생긴것을 확인 할 수 있다.

 

버전은 확인 하여 사용하도록 하자.

나는 

 

https://mvnrepository.com/


이 곳에서 lombok을 검색하여 사용했으나, 설치하는 방법도 있다. (설치하는 방식은 나중에 기회가 되면)

 

 

 

만약에 인식이 안된다면 이 링크에 있는 방식으로 수정해보자. 바로 적용이 되더라.

 

참조: https://rozy.tistory.com/16

2. lombok 사용하기

✔@getter, @setter

 

아까의 dto를 살펴보자.

 

여기에서 getter와 setter를 지우고 annotation을 작성하겠다.

 

dto내에는 getter와 setter가 없다. 그러나 오류가 생기지않고 잘 작동!

 

✔@toString

 

✔@NoArgsConstructor, @AllArgsConstructor

 

생성자를 자동으로 만들어 준다.

 

 

❗ 조심히 사용해야할 @RequiredArgsContructor

 

이것은 무조건 포함 되어야할 필드에 final을 선언 함으로서 기본적으로 포함된 정보를 정하게된다.

 

예시로 userName필드를 필수조건으로 정해보겠다.

 

 

이렇게 사용 할 경우 무조건 1개의 필드를 사용해야 하는 곳이 되므로 @NoArgsConstructor 에서 에러를 발생시키며,

 

final이므로 해당필드는 set메서드를 사용할 수 없게 된다. 유연하게 사용하고자 할때는 이것을 사용하지 않는 것이 좋아보이며, 정보가 꼭 포함되는 Not-Null인 데이터를 다룰때 사용하면 좋을 것으로 보인다.