Annotation 을 "주석"이라고 번역하기에는 문제가 있음
TTA에서는 "원시데이터를 보강하는 프로세스. 정적 또는 동적 객체, 수행 작업, 환경조건과 같은 원시데이터를 설명하는 메타데이터를 포함"이라고 설명하고 있으나 조금 많이 부족한 설명을 참조한 것 같음(출처 : 단체표준 TTAK.KO-10.1498-Part1 자율주행 AI 학습용 데이터 참조 모델 - 제1부: 일반 요구사항)1. @RequiredArgsConstructor (Lombok)
- Lombok에서 제공하는 어노테이션
- 클래스의 final 필드 또는 @NonNull 필드만을 매개변수로 받는 생성자를 자동으로 생성
- 불변 객체 설계와 Spring의 생성자 기반 의존성 주입에 매우 유용(먼 개뼉다구 같은 소리야).
- 적용대상
- final 필드
- @NonNull이 붙은 필드
즉, 필수로 초기화되어야 하는 필드들만 생성자의 매개변수로 포함.@RequiredArgsConstructor public class UserService { private final UserRepository userRepository; private final PasswordEncoder passwordEncoder; private String optionalField; } // 위 코드는 다음과 같은 생성자를 자동으로 생성한다. public UserService(UserRepository userRepository, PasswordEncoder passwordEncoder) { this.userRepository = userRepository; this.passwordEncoder = passwordEncoder; }- @Null 필드 포함@RequiredArgsConstructor public class EmailService { @NonNull private String smtpServer; private String senderName; }
public EmailService(String smtpServer) {
if (smtpServer == null) {
throw new NullPointerException("smtpServer is marked non-null but is null");
}
this.smtpServer = smtpServer;
}