티스토리 뷰

Back-End/Spring Boot

[Spring Boot] Lombok

ch4njun 2021. 4. 4. 15:34
반응형

Lombok Annotation


Lombok은 자바에서 Model(DTO, VO, Domain) Object를 생성할 때, 멤버필드(Property)에 대한 Getter/Setter, toString, Constructor 등을 만드는 코드를 반복적으로 작업해야 하는 상황을 어노테이션을 통해 줄여주는 라이브러리이다.

 

Lombok 설치


Lombok을 사용은 Lombok.jar를 직접 다운로드 하거나 Maven/Gradle을 사용해 Dependency를 추가해 사용할 수 있다.

 

Lombok.jar를 직접 다운로드 받는 링크는 다음과 같다.

 

Maven을 사용하기 위한 Dependency는 다음과 같다. (아래 Dependency를 pom.xml에 추가하면된다.)

 

Gradle을 사용하기 위한 Dependency는 다음과 같다. (아래 Dependency를 build.gradle에 추가하면된다.)

 

Lombok 사용법


흔하게 볼수있는 Lombok의 사용예시를 우선 살펴보면 다음과 같다.

 

 

이와같이 Model(DTO, VO, Domain) 클래스에 어노테이션을 추가함으로써 Lombok에서 제공하는 기능들을 사용할 수 있다. 그러면, Lombok에서 제공하는 어노테이션에는 어떠한 것들이 있는지 확인해보자.

 

@Getter

모든 필드에 대해서 Getter 메서드를 추가한다.

 

@Setter

final로 선언하지 않은 모든 필드에 대해서 Setter 메서드를 추가한다.

 

@ToString

모든 필드를 출력하는 toString() 메서드를 오버라이딩 해준다.

 

@EqualsAndHashCode

equals() 메서드와 hashCode() 메서드를 오버라이딩 해준다. 이를 통해서 두 객체의 내용이 동일한지, 혹은 두 객체가 동일한 객체인지 비교할 수 있다.

 

@RequiredArgsConstructor

final이나 @NonNull 어노테이션이 설정되어 있는 필드 값만 파라미터로 받는 생성자를 추가해준다.

 

@NoArgsConstructor

기본 생성자를 추가해준다.

 

@AllArgsConstructor

모든 필드 값을 파라미터로 받는 생성자를 추가해준다.

 

@Builder

다수의 필드를 가지는 복잡한 클래스의 경우, 생성자 대신 빌더를 사용하는 빌더 패턴을 사용할 수 있다. 이 어노테이션을 추가하면 이러한 빌더를 추가해준다.

 

@NonNull

필드에 선언하는 어노테이션으로써 해당 어노테이션이 추가된 필드에 Null이 넘어올 경우 NullPointerException 예외를 발생시킨다.

 

@Cleanup

IO 혹은 JDBC 관련 코딩을 할때 finally 절을 통해 close() 메서드를 호출해주는 작업이 번거로운 것을 자동으로 해당 Reseource가 close() 메서드를 호출하도록 해준다.

 

@Value

@Data대신 해당 어노테이션을 추가하면 한 번 생성하면 변경할 수 없는 불변 객체를 만들 수 있다.

 

@SneakyThrows

Checked Exception 때문에 반드시 try-catch 구문을 추가해줘야하는 경우 해당 어노테이션을 통해 명시적인 예외처리가 가능하다.

 

@Synchronized

메서드에 해당 어노테이션을 추가하면 가상의 필드레벨에서 좀더 안전하게 Lock을 걸어 동기화를 방지해준다.

 

@Log

자동으로 log 필드를 만들고, 해당 클래스 이름으로 로거객체를 생성해준다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함