DTO
DTO(Data Transfer Object)는 데이터를 전달하기 위한 객체이다.
계층간에 데이터를 전달하는데 사용되며, 특별한 로직을 가지지 않는 순수한 데이터 객체이다.
SpringBoot에서 DTO는 @Setter @Getter ,
혹은 이 둘 모두를 나타내는 @Data 어노테이션을 통해 생성할 수 있다.
@Data
public class UserDTO {
private String name;
private Integer age;
}
SpringBoot 에서 DTO는 총 3가지의 용도로 사용된다.
유효성을 검사할 때는
Annotation 유효성 검사, 수동 유효성 검사, 외부 검증기를 사용하는총 3가지의 방법이 있지만
나는 대부분 이해하기 쉽고 가독성 좋은 Annotation 기반의 유효성 검사를 사용한다.
@Data
public class UserDTO {
// 해당필드가 Null인지 아닌지 확인
@NotNull
private String name;
// 해당 필드의 크기가 지정된 범위 내에 있는지 확인
@Size(min = 1, max = 50)
private Integer address;
// 해당 필드의 값이 정규 표현식과 일치하는지 확인
@Pattern(regexp = "[0-9]{3}-[0-9]{4}-[0-9]{4}")
private String phoneNumber;
// 해당 필드의 값이 이메일 주소의 형식에 맞는지 확인
@Email
private String email;
}