비사이드 회원가입 개발
✅ 유효성 검증
joinRequest DTO의 유효성 검증에 신경썼다
-> 어떤 예외가 발생하는지 직접 돌려봤다
java.sql.SQLException: Incorrect string value: '\xEC\x9C\xA0\xEC\x98\x81' for column 'username' at row 1
-> ALTER TABLE (테이블명) convert to charset utf8;
적용해도 자꾸 안되길래 왜 이러나 했는데 원격 디비만 바꿔놓고 로컬 디비는 안 바꿔서였다 ㅎ..
(그나저나 이거 서버 시작할때마다 해야하는 귀찮음이 있다)
✅ 통일된 에러 response
-> 에러 response 클래스 만들기
https://cheese10yun.github.io/spring-guide-exception/
을 참고했다.
message 필드로만 구성하도록 작성
why? 다른 에러 필드는 넣을 필요성을 못 느끼기도 했고, API에 명시해놓은 오류 상황을 프론트에게 알리기 위한 목적만 달성하면 된다고 생각했다.
(오류 응답 형식: HTTP 기본 에러 코드 + 에러 응답)
✅ ResponseDTO에 @Getter 설정 안하면 오류 발생
why?
https://www.inflearn.com/questions/360185 참고
-> JsonMessageConverter가 프로퍼티를 바인딩하기 위해 꺼내올 수 있는 @Getter가 필요하다!
✅ request dto @NotNull 설정하고 필수 입력 필드 안 넣어도 왜 insert 되나 했는데,
-> 진짜로 null만 체크하는 거였다. 즉, ""나 " "는 허용한다.
강도에 따라 @NotNull < @NotEmpty < @NotBlank라고 한다.