Back-end

[Spring] Lombok이란?

diddl 2021. 11. 15. 22:31
반응형

Lombok이란?

자바 개발 시, 자주 사용하는 Getter, Setter, 생성자 등을 자동으로 생성해주는 라이브러리이다.

@Getter, @Setter, @RequiredArgsConstructor 등의 어노테이션 방식을 이용한다.

 

기존 방식의 문제점

- 멤버 변수를 제어하기 위해 모델 객체마다 반복적으로 메소드들을 생성해야 한다.

- IDE에서 generate를 이용해서 편하게 생성할 수 있지만, 변수명이 바뀌면 다시 만들어야 한다.

-> Lombok을 사용하면 생성자, 접근자, 설정자, toString() 자동생성 라이브러리이므로 위와 같은 번거러움을 없앨 수 있고 이외에도 다양한 기능들을 쓸 수 있다.

장점

- 코드 작성이 쉽고 필요한 코드가 적어진다.

- 코드가 명시적이다.

- 수정이 간편해진다.

 

주로 사용하는 Lombok Annotation

접근자와 설정자(@Getter, @Setter)

접근자와 설정자를 자동 생성해준다. 멤버 변수 위에 선언해주면 된다. 클래스위에 선언할 시 전체적용이 된다.

@NoArgsConstructor
@Getter // <- 접근자
@Setter // <- 설정자
public class Person{
    private String name;
    private int age;
}

이런식으로 선언해주면 따로 Person class의 생성자와 설정자, 접근자를 선언해주지 않아도 된다!!

코드가 매우 보기 편해졌고 번거로움 또한 없어졌다.

 

생성자

클래스 위에 쓴다.

  • @AllArgsConstructor : 모든 변수로 생성자 생성
  • @RequiredArgsConstructor : final 키워드나 @NonNull 이 된 멤버변수로만 생성자 생성
  • @NoArgsConstructor : 기본 생성자 생성
@NoArgsConstructor // <-생성자
@Getter
@Setter
public class Person{
    private String name;
    private int age;
}

 

ToString()

@ToString을 사용한다. @ToString(exclude = "password")처럼 특정 필드를 제외시킬 수도 있다.

 

@EqualsAndHashCode

객체 비교 등의 용도로 사용되는 equals(), hashCode() 메소드를 자동으로 생성해준다.

 

@Data

위에서 다룬 @Getter, @Setter, @RequiredArgsConstructor, @EqualsAndHashCode, @ToString 등을 한번에 해준다.

 

@NonNull

@NonNull : 변수 위에 사용한다. runtime 시에 Null 인지 아닌지 체크 하여 NullPointerException이 발생하도록 한다.

반응형