[ Java ] Lombok의 @Data 어노테이션

신범철·2022년 10월 6일
0

스프링부트

목록 보기
8/24

Lombok이란?

자바에서 Getter, Setter, toString과같은 반복 메소드 작성을 줄여주기 위한 라이브러리이다. 일반적으로 DTO, VO와 같은 모델에서 사용한다.

@Data

@Data 어노테이션을 까보면 @Getter / @Setter, @ToString, @EqualsAndHashCode와 @RequiredArgsConstructor, @Value 를 합쳐놓은 종합 선물 세트라고 볼 수 있다.

@Data는 종합 선물 세트이기 때문에 지양하는 것이 좋다. @Data를 하위 어노테이션으로 리팩토링하는 과정을 알기 위해 어노테이션에 대해 알아보자!

@Getter

private로 설정된 필드 변수를 외부에서 접근하려고 만든 것

@Setter

private로 설정된 필드 변수를 외부에서 수정하려고 만든 것

@ToString

객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴 하는 것

@EqualsAndHashCode

equals()메소드와 hashCode()메소드를 생성해준다.

equals : 2개의 객체가 동일한지 검사하기 위해 사용

hashCode : 런타임중 객체의 유일한 integer 값을 반환

@RequiredArgsConstructor

초기화 되지 않은 final 필드나 @NonNull 어노테이션이 붙은 필드에 대해 생성자를 만들어 준다

++ 비슷한 어노테이션으로 생성자를 만들어주는 어노테이션(@AllArgsConstructor, @NoArgsConstructor)가 있다.

AllArgsConstructor : 클래스에 존재하는 모든 필드에 대한 생성자를 자동으로 생성한다.
NoArgsConstructor : 파라미터가 없는 생성자를 생성한다.

@Value

객체를 불변객체로 만들어준다.

propertise로 사용해봤지만 Data에서는 어떻게 사용되는지 잘 모르겠다.

추가로 정리가 필요함

profile
https://github.com/beombu

0개의 댓글