# 1. Language/☕ Java

자주 사용되는 Lombok 어노테이션

둥굴둥굴둥굴레차 2021. 9. 14. 23:07

Lombok이란?

VO, DTO, Entity 등을 쉽게 작성할 수 있도록 도와주는 라이브러리.

코드를 깔끔하게 작성할 수 있어 가독성이 좋아진다.

하지만 제대로 알지 못한채 사용하게 되면 예상치 못한 문제가 발생할 수 있다.

 

@Getter @Setter

자동으로 get, set 메소드를 생성해준다.

기본적으로 public으로 생성된다.

AccessLevel 옵션을 사용하여 접근권한 설정을 달리해줄 수 있다.

 

@NoArgsConstructor

파라미터가 없는 기본 생성자를 만들어준다.

이 역시 AccessLevel 옵션을 사용하여 접근권한 설정을 달리해줄 수 있다.

이 때 PROTECTED로 설정하여 안전성을 보장해주자.

예) access = AccessLevel.PROTECTED

 

@Tostring

tostring()메소드를 자동으로 생성해준다.

exclude를 사용해 특정 필드는 빼고 실행되도록 할 수도 있다.

callSuper값을 true로 설정하게 되면 상속받은 클래스의 정보도 출력된다.

따라서 Token 값이나 비밀번호와 같은 민감한 정보를 exclude로 제외해줄 수 있다.

 

@EqualsAndHashCode

빈 생성 시 equals와 hashCode 메소드를 자동으로 오버라이딩 해준다.

 

@Data

@Getter, @Setter, @RequiredArgsConstructor, @ToString, @EqualsAndHashCode를 한꺼번에 설정해주는 어노테이션.

하지만 되도록 지양해서 사용하자.

 

@Builder

빌더 패턴을 사용할 수 있도록 코드를 생성해준다.

클래스 보단 직접 만든 생성자나 static 객체생성 메소드에 붙이는 것을 권장한다.

 

@Syncronized

메소드에서 동기화를 설정할 수 있다.