❓@Builder와 @RequiredArgsConstructor를 함께 쓰는게 적절하지 않은 이유
- @Builder와 @RequiredArgsConstructor는 생성자를 자동으로 생성해주는 롬복 어노테이션입니다. 하지만 이 두 어노테이션은 생성자를 생성하는 방식이 다르기 때문에 함께 사용하는 것이 적절하지 않습니다.
- @Builder는 모든 필드를 매개변수로 받는 생성자를 만들지 않으며, 기본 생성자도 생성하지 않습니다. 대신, 빌더 패턴을 사용하여 객체를 생성합니다.
- 반면에 @RequiredArgsConstructor는 final이나 @NonNull인 필드를 매개변수로 받는 생성자를 생성합니다. 따라서 이 어노테이션을 사용하면 final이나 @NonNull인 필드가 있는 경우에도 객체를 생성할 수 있습니다.
💡 따라서 @Builder와 @RequiredArgsConstructor를 함께 사용하는 것은 불가능합니다. 필요에 따라 두 어노테이션 중 하나를 선택하여 사용하면 됩니다. 만약 두 어노테이션 모두 사용해야 한다면, 롬복의 @AllArgsConstructor 어노테이션을 사용하여 모든 필드를 매개변수로 받는 생성자를 생성할 수 있습니다.