✅ 롬복(Lombok)이란?
👉 반복적으로 자주 사용되는 코드들(Boilerplate)을 간편하게 사용할 수 있게 해주는 어노테이션 기반 자바 라이브러리
❓ Boilerplate 란?
- 바꾸지 않고 여러 번 재사용되는 코드
- ex) Getter, Setter
🔸 Lombok은 컴파일 시에만 작동
- Lombok을 사용한 프로젝트의 build.gradle 파일에는 lombok이 compileOnly로 적혀있는 것을 확인할 수 있음
- 이는 Lombok이 컴파일 과정에서 바이트 코드에 자신의 코드를 삽입해주기만 할 뿐 컴파일이 된 이후에는 사용되지 않기 때문
- 즉, Lombok은 실행하는 시점에서 필요로 하는 라이브러리가 아니며, 따라서 build의 결과물에서는 제외됨
✅ 생성자
👉 생성자를 자동으로 만들어주는 어노테이션으로, 3가지 종류가 존재
🌐 NoArgsConstructor
- 파라미터가 없는 기본 생성자를 생성
- 만약 final이 있는 필드가 있다면 Compiler가 에러를 일으킴
🌐 AllArgsConstructor
- 모든 필드 값을 파라미터로 받는 생성자를 생성
- 이 경우에는 필드값에 매칭되는 값을 하나하나 전부 다 parameter에 매칭시켜서 생성자를 호출
🌐 RequiredArgsConstructor
- final이나 @NonNull이 적혀있는 필드를 대상으로 생성자를 생성
- 매칭되는 파라미터 값이 존재해야 하며, NonNull의 경우 null check를 제공
✅ Getter & Setter
👉 Getter와 Setter 메소드를 롬복이 세팅해준다
@Getter @Setter
public class book {
private String title;
private String content;
}
- 해당되는 메소드의 이름은 get(변수) / set(변수)의 형태
- 클래스 단위가 아니라 필드 단위에 설정해도 됨.
→ 그럴 경우 해당되는 필드에만 Getter 또는 Setter 메소드를 설정
- Getter, Setter에는 접근제한자를 설정할 수가 있는데, 다음 코드를 참고
@Getter(AccessLevel.PUBLIC) @Setter(AccessLevel.PRIVATE)
public class Book {
private String title;
private String content;
}
👉 Getter은 public으로 접근제한자가 설정, Setter은 private 레벨로 설정
🚧 그 외 자세한 Lombok 제공 기능들 참고
👉 https://projectlombok.org/features/