개발일기/Java
@NoArgsConstructor / @AllArgsConstructors 생성자를 막 만들지 말자!
징구짱
2023. 4. 20. 05:11
728x90
✏️ 문제
@Getter @Setter 어노테이션이 적용된 ResponseDto에 테스트 코드 작성을 위해
@AllArgsConstructor어노테이션을 적용한 이후로 등록할 때 생성자 관련 오류가 발생하였다.
✏️ 원인
@AllArgsConstructor : 클래스가 가지는 모든 필드에 대한 매개변수가 포함된 생성자를 생성
생성자가 하나도 없을 때만 컴파일러가 자동으로 기본 생성자를 추가하므로
해당 어노테이션을 추가하면 기본 생성자가 사라짐
→ 역직렬화 (바이트 스트림을 다시 객체형태로 변환하는 작업)가 불가능
✏️ 해결
@NoArgsConstructor : 매개변수가 없는 기본 생성자를 생성
해당 어노테이션을 사용하여 기본 생성자를 자동으로 생성
DTO에는 @NoArgsConstructor 를 습관화 하자...
728x90