롬복 (Lombok)

이광훈·2023년 6월 16일
0

✅ 롬복(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/

profile
웃으며 일할 때, 시너지가 배가 된다고 믿는 개발자

0개의 댓글