스프링부트

[Lombok] @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor

이영재의오른발 2023. 5. 8. 14:45
반응형

롬복 생성자 어노테이션을 사용하게되면 아래와 같은 장점이 있다.

  • 코드 간결성: 생성자를 직접 작성하는 대신 Lombok 어노테이션을 사용해 코드양을 줄일 수 있다
  • 유지 보수성: 클래스의 필드가 변경되거나 추가되었을 때 생성자 코드를 일일히 변경하지 않아도 됩니다.

 

롬복의 생성자 어노테이션에는 대표적으로 @NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor 

가 있지만 사용할때마다 헷갈려 구글링하기때문에 포스팅을 통해 확실히 정리해보자


 

NoArgsConstructor

@NoArgsConstructor 는 어노테이션이 붙어있는 해당 클래스에 파라미터가 없는 기본 생성자를 자동으로 생성해준다.

기본 생성자를 자동으로 생성해 주기 때문에 코드가 간결해지는 장점이 있다.

 

 


AllArgsConstructor

@AllArgsConstructor 는 NoArgsConstructor와 반대로 생각하면 된다.

클래스 내에 존재하는 모든 필드값을 파라미터로 받는 생성자를 만들어 주는 어노테이션이다.

 

 

저 긴 코드를 어노테이션 하나로 퉁칠수 있으니 가독성 측면에서 매우 좋다.

 

또한 클래스 내 새로운 필드가 생기면 생성자를 수정해야하지만, AllArgsConstructor 를 사용하면 생성자를 수정하지 않고 사용할 수 있기 때문에 유지보수 측면에서도 우수하다.

 


RequiredArgsConstructor 

final 혹은 @NonNull 로 선언된 필드에 대한 생성자를 컴파일 시점에 자동으로 생성해준다.

 

주로 싱글톤 패턴 구현에 사용된다

 

 

728x90
반응형