5.8수업

김종석·2023년 5월 8일
0

밸리데이션
밸리데이션 종류
-@size 문자길이 측정 int type 불가
-@Notnull null붉
-@NotEmpty Null,""불가
-@NotBlank Null,"",""불가
-@Max 최대값
-@Min 최소값

밸리데이션이란 유효성체크
Ex)로그인 시 아이디와 비밀번호를 치고 요청을 보내는 지 확인하는것
1.html화면에서 한번
2.서버에서 한번 더
(서버는 요청 데이터를 신뢰하지 않는다)
벨리데이션 라이브러리는 꼭 필요하지만 귀찮은 유효성 체크를 어노테잉션으로 쉽게 처리하도록
도와준다.


데이터베이스 null->NOT NULL
에러가 빵빵터짐 해결방법:
에러처리-DB INSERT하다 터짐

밸리데이션-DB 조회 전 <ㅡ 조회전에 하니까 성능이 더좋음

밸리데이션 라이브러리 추가해서 설정
방법:
-1.메이븐 리파지토리 가서 라이브러리 가져오기
2.build.gradle-라이브러리 추가+프로젝트 다시로드
3.데이터를 받아오는 객체- 필드 값에 @NotBlank같은거 붙여주기
4.컨트롤러에서 매개변수에 @Validated
밸리데이션 좋은점
1.상태 코드가 자동으로 400으로 보내짐
2.에러 내용이 자동으로 세팅됨

에러핸들링

ex)
에러핸들링: 같은에러가 터진다
에러를 확인하고
클래스를 만들고@RestControllerAdvice
함수 생성후@ExceptionHandler
exception.getBindingResult().getFieldErrors()를 이용해서 에러 메시지를 가공해서 전달 한다.


로그
application.yaml파일에
logging:
file:
#/를 붙이면 c드라이브 하위 폴더 생성됨
#/를 안붙이면 프로젝트 내부에 폴더 생성됨
name: log/todo.log
#로그를 남길 데이터의 위험도==level
#TRACE<DEBUG<INFO<WARN<ERROR<FATAL
level:

root: warn

200 OK
요청이 성공적으로 되었습니다. get
201 Created
요청이 성공적이었으며 그 결과로 새로운 리소스가 생성되었습니다.post
400 Bad Request
이 응답은 잘못된 문법으로 인하여 서버가 요청을 이해할 수 없음을 의미합니다.
401 Unauthorized
비록 HTTP 표준에서는 "미승인(unauthorized)"를 명확히 하고 있지만, 의미상 이 응답은 "비인증(unauthenticated)"을 의미합니다
403 Forbidden
클라이언트는 콘텐츠에 접근할 권리를 가지고 있지 않습니다. 예를들어 그들은 미승인이어서 서버는 거절을 위한 적절한 응답을 보냅니다
405 Method Not Allowed
요청한 메소드는 서버에서 알고 있지만, 제거되었고 사용할 수 없습니다
500 Internal Server Error
서버가 처리 방법을 모르는 상황이 발생했습니다


ResDTO->화면에 보낼 정보 얘가 바디

(code/message/data)

HttpEntity
ResonseEntity
(상태코드/헤더/바디)
-StatusCode(200,400,500 등)
-Headers
-body(ResDTO)

profile
김종석입니다

0개의 댓글