Spring
RequestDTO에 사용하는 @NoArgsConstructor(access = AccessLevel.PROTECTED)
brightGarden02
2024. 9. 30. 15:38
@NoArgsConstructor는 객체 내부의 데이터 없이 객체를 생성할 수 있게 하는 어노테이션이다. 기본 생성자를 자동으로 만들ㄹ어주며, 주로 프레임워크가 객체를 인스턴스화할 때 사용된다.
@NoArgsConstructor(access = AccessLevel.PROTECTED)라는 어노테이션을 사용하면
해당 객체를 외부에서 생성하지 못하도록 한다. 언제 해당 객체를 외부에서 생성하지 못하도록 하면 될까?
requestDTO의 경우이다. requsetDTO의 경우 클라이언트가 서버에 데이터를 담아서 보내면 서버에서 DTO로 받는다. 이 객체는 서버에서만 인스턴스화 되어야하며, 외부에서 무분별하게 생성하면 안된다. DTO 객체가 임의로 생성된다면, 데이터 변경이 발생하거나 잘못된 상태의 객체가 만들어질 수 있다.