Java 라이브러리 Lombok, 자주 사용하는 annotation 정리!
Lombok 이란?
어노테이션 기반으로 코드 자동완성 기능을 제공하는 라이브러리.
코드 자동 생성을 통한 편의성, 생산성 증가
코드의 길이가 줄어듬으로 가독성 유지보수성 향상
Builder 패턴의 적용, Log 생성 등 편의성
Annotation 정리
@NoArgsConstructor | 파라미터(매개변수)가 없는 생성자를 생성한다. |
@RequiredArgsConstructor | final, @NonNull이 있는 필드를 포함하여 생성자를 생성한다. |
@AllArgsConstructor | 모든 필드를 파라미터(매개변수)로 갖는 생성자를 생성한다. |
@Getter | 코드가 compile될 때 getter 메소드 생성한다. - 속성 @Getter(lazy = true) 사용 시 최초 한 번만 Getter 호출. 이후에는 캐시된 값을 사용한다 |
@Setter | 코드가 compile될 때 setter 메소드 생성한다. |
@ToString | toString() 메소드 생성한다. |
@EqualsAndHashCode | equals(), hashCode() 메소드를 생성한다. |
@Data | @Getter(모든 속성) @Setter(final이 붙지 않은) @ToString @EqualsAndHashCode @RequiredArgsConstructor |
@With | with 메소드를 생성한다. |
@Builder | 해당 클래스에 빌터 패턴을 사용할 수 있도록 해준다 |
@Log | log라는 변수를 이용하여 로그 기능 사용 가능 컴파일 시 : private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(this.class.getName()); 코드가 생성되는 것 |
@Log4j, @Slf4J | 로그 기능 사용 가능 |
@SneakyThrows | 예외 발생 시 Throwable 타입으로 반환해준다. JVM(.class)에서 검사 여부 관계 없이 모든 예외에 대해 throw동작. 📌 사용 시 주의해야하는 어노테이션임. |
@Synchronized | 메소드에서 동기화 설정 동기화 관련 문제 발생을 해당 어노테이션을 통해 가상의 필드 레벨에서 조금이나마 안전하게 락을 걸어준다 |
@NonNull | 필드의 값이 null이 될 수 없음을 명시 |
@Value | 불변 클래스(Immutable Class) 를 생성 모든 필드를 Private, Final 로 설정하고 Setter 생성하지 않음. Final이 붙기 때문에 Setter가 존재할 수 없는 것 ! |
'Backend > Java' 카테고리의 다른 글
[Java] trim(), strip() 차이점 / java 문자열 앞뒤 공백 제거 (0) | 2024.02.28 |
---|---|
[Java] UUID에 대한 정리 (0) | 2024.01.12 |
[Lombok] Constructor Annotation 정리 (0) | 2024.01.05 |
[Java] Java SE 17 설치 및 환경설정 (JDK 17, Windows 11) (0) | 2023.12.20 |