코드스테이츠_국비교육/[Section3]

42.01_[Spring MVC] API 계층; DTO, Validation_22.10.21

생각없이 해도 생각보다 좋다. 2022. 10. 21. 23:36

>DTO 클래스
: Data Transfer Object
: 클라이언트와 서버 사이에서 데이터를 전송할 때 사용하는 객체

유효성 검사
: 프론트엔드 영역과 백엔드 영역 모두 유효성 검사를 해야한다.
: 프론트엔드 영역의 유효성 검사는 사용자 편의를 위한 유효성 검사일 뿐, 서버에 데이터를 전송하기 전에 조작이 가능해서 백엔드에서도 해야줘야 한다.

DTO 유효성 검사
: 요청 정보를 직접적으로 받는 DTO 클래스의 유효성 검증을 실시함으로써 코드의 복잡도를 낮출 수 있음.

Jakarta Bean Validation
>Jakarta Bean Validation
: 애너테이션을 제공하여 유효성 검증 제약을 표현할 수 있게 해주는 도구이다.
: 하지만 동작하는 코드가 아닌 명세(스펙)이므로 이를 사용하기 위해선 구현을 해야한다.
>Hibernate Validation
: Jakarta Bean Validation 스펙을 구현한 구현체이다.
: Jakarta Bean Validation를 실제로 사용할 수 있게 한다.

Spring Boot Starter Validation 사용
>Java Bean Validation과 Hibernate Validation을 사용하기 위한 스타터이다
>의존성 추가
'org.springframework.boot:spring-boot-starter-validation'
>사용 애너테이션
-@NotBlank
: null, 공백(""), 스페이스(" ")를 허용하지 않음
: 유효성 검증 실패시 기본 에러 메시지 혹은 message 값으로 부여한 메시지를 출력함.
-@Email
: 유효한 이메일 주소인지 검증
-@Pattern(regexp = 정규표현식)
: 정규표현식과 매칭하는지 유효성 검증하는 애너테이션