Cute Running Puppy
본문 바로가기
개발일기/Java

@NoArgsConstructor / @AllArgsConstructors 생성자를 막 만들지 말자!

by 징구짱 2023. 4. 20.
728x90

✏️ 문제

@Getter @Setter 어노테이션이 적용된 ResponseDto테스트 코드 작성을 위해 

@AllArgsConstructor어노테이션을 적용한 이후로 등록할 때 생성자 관련 오류가 발생하였다.

 

 

✏️ 원인

@AllArgsConstructor : 클래스가 가지는 모든 필드에 대한 매개변수가 포함된 생성자를 생성

 

생성자가 하나도 없을 때만 컴파일러가 자동으로 기본 생성자를 추가하므로

해당 어노테이션을 추가하면 기본 생성자가 사라짐

→ 역직렬화 (바이트 스트림을 다시 객체형태로 변환하는 작업)가 불가능

 

 

✏️ 해결

@NoArgsConstructor : 매개변수가 없는 기본 생성자를 생성

해당 어노테이션을 사용하여 기본 생성자를 자동으로 생성

 

DTO에는 @NoArgsConstructor 를 습관화 하자...

728x90