Spring Boot - DTO

김명식·2023년 5월 17일
0

Spring Boot

목록 보기
7/11
post-thumbnail

DTO

DTO(Data Transfer Object)는 데이터를 전달하기 위한 객체이다.
계층간에 데이터를 전달하는데 사용되며, 특별한 로직을 가지지 않는 순수한 데이터 객체이다.

SpringBoot에서 DTO@Setter @Getter ,
혹은 이 둘 모두를 나타내는 @Data 어노테이션을 통해 생성할 수 있다.

@Data
public class UserDTO {
	private String name;
    private Integer age;
}

SpringBoot 에서 DTO는 총 3가지의 용도로 사용된다.

  • 데이터 전송
    • DTO는 데이터를 한 곳에서 다른 곳으로 전송하는데 사용된다.
      예를 들어, 클라이언트로부터 전달받은 요청을 처리하거나
      서비스 레이어에서 Entity를 DTO로 변환하여 컨트롤러로 반환할 때 사용한다.
  • 데이터 표현
    • DTO는 API응답에서 특정 필드를 선택하거나, 필드의 형식을 변환하거나,
      데이터를 조작하여 클라이언트에게 보다 적합한 형태로 전달할 때 사용한다.
  • 데이터 유효성 검사
    • DTO는 클라이언트로부터 전달받은 데이터의 유효성을 검사할 때 사용될 수 있다.
      예를 들어, 클라이언트가 전달한 요청 데이터가 정상적인지 확인하고
      필요한 규칙제한 조건을 적용하여 검증 결과를 반환할 수 있다.

Annotation 기반 유효성 검사

유효성을 검사할 때는
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;
    
}
profile
BackEnd & AWS Developer

0개의 댓글