lombok 관련 메모

소금·2024년 3월 13일
0

Lombok이란..

여러가지 어노테이션을 제공하고 컴파일 과정에서 자동으로 개발자가 원하는 메소드를 생성/주입 방식으로 동작하는 라이브러리

기능

여러 클래스에서 반복되는 getter, setter, toString 등의 메소드를 자동으로 만들어준다.

장점

복잡하고 반복되는 코드를 자동생성 해줌으로써 생상선이 향상되고 코드의 가독성 및 유지보수성을 높일 수 있다.

단점

코드가 직접 눈에 보이지 않으므로 직관성이 떨어질 수 있다.

여러 어노테이션

@Getter

@Setter

-> 설명 생략

@AllArgsContructor

클래스 내부에 선언된 모든 필드마다 하나의 파라미터를 가진 생성자를 생성해준다.

@NoArgsContructor

파라미터가 없는 기본 생성자를 생성해준다.
(force=true) -> null, 0 등 기본 값으로 초기화 된다.
(access = AccessLevel.PROTECTED) -> 매개변수가 없는 생성자를 생성하되 다른 패키지에 소속된 클래스는 접근을 불허한다.

@RequiredArgsConstructor

특별한 처리가 필요한 각 필드마다 하나의 파라미터를 갖는 생성자를 생성해준다.

@ToString

toString() 메소드를 자동으로 생성해준다.
(exclude = "필드명") -> 기재된 필드를 toString() 결과에서 제외시킨다.

@EqualAndHashCode

equals, hashCode 메소드를 자동으로 생성해준다.
euqals -> 두 객체의 내용이 같은지, 동등성을 비교하는 연산자
hashCode -> 두 객체가 같은 객체인지, 동일성을 비교하는 연산자
(callSuper = true) -> 부모 클래스 필드 값들도 동일한지 체크. false면 해당 클래스의 필드 값들만 고려한다. false가 기본값.

@Data

위 모든 어노테이션을 한꺼번에 설정해주는 어노테이션

0개의 댓글