@NoArgsConsructor, @RequiredArgsConstructor, @AllArgsConstructor 어노테이션의 경우 생성자를 대신 만들어주는 어노테이션으로 스프링부트로 개발할 때 자주 사용하게 되는 기능들이다.
@NoArgsConsructor는 파라미터가 없는 기본 생성자를, @AllArgsConstructor는 클래스 내의 모든 필드를 파라미터로 가지는 생성자를, @RequiredArgsConstructor는 초기화되지 않은 final 필드나 @NonNull이 붙은 필드에 대해 생성자를 생성해준다.
@AllArgsConstructor와 @RequiredArgsConstructor는 필드의 선언 순서에 따라 파라미터를 생성하므로 추후에 순서를 바꾸면 오류가 생길 수 있다.
또한 @NoArgsConstructor의 경우 @Builder와 단독으로 함께 사용하면 오류가 생기기에 @AllArgsConstructor과 함께 써주어야 한다.