Spring
- 오류 해결
Validation @Pattern(regexp) 관련 오류

위와 같이 최소 길이가 3이고 영어 대소문자 + 숫자로 이루어진 닉네임을 받고자 @Pattern을 이용해 유효성 검증을 넣어주었다.
그 후 nickname에 "dongha1234"라는 값을 넣어주니

이렇게 유효성 검증에 실패했다는 메시지가 떴다.
해결방법은 정규식에 문자 길이 범위를 지정해주는 것이다.
여러가지 실험을 해보았는데 @Size 어노테이션은 min, max 모두 설정해도 정규식 관련 validation을 통과하지 못했다.
*를 사용할 것이 아니라면 길이 범위 지정이 필수적이다.

ResponseEnity와 Jackson 관련 에러
진행중인 프로젝트에서 RestControllerAdvice로 커스텀 예외들을 처리해주고 있는데
디버깅 결과 에러 던지는 곳까지는 잘 가지만 response를 제대로 보내주지 못하고 500이 뜨는 에러가 발생했다.



찾아보니 ResponseEntity의 body에 ErrorResponse가 담길 때 문제가 생긴 것이었다.
스프링이 선택한 Jackson이 ErrorResponse를 json 객체로 변환해서 ResponseEntity에 담아주어야 하는데.
Jackson에서 생성한 Objectmapper는 json으로의 변환을 getter 메소드를 통해 진행해준다. (setter는 안됨!!)
결론은 ErrorResponse 클래스에 @Getter 추가해주니 해결이 되었따.
알고리즘
- 프로그래머스 : 튜플(Level 2, 정렬)
느낀 점
'TIL' 카테고리의 다른 글
[23.12.18] (0) | 2023.12.18 |
---|---|
[23.12.15] (1) | 2023.12.15 |
[23.12.13] (0) | 2023.12.13 |
[23.12.12] (0) | 2023.12.12 |
[23.12.11] (0) | 2023.12.12 |