Spring

- 오류 해결

Validation @Pattern(regexp) 관련 오류

 

위와 같이 최소 길이가 3이고 영어 대소문자 + 숫자로 이루어진 닉네임을 받고자 @Pattern을 이용해 유효성 검증을 넣어주었다.

그 후 nickname에 "dongha1234"라는 값을 넣어주니

이렇게 유효성 검증에 실패했다는 메시지가 떴다.

 

해결방법은 정규식에 문자 길이 범위를 지정해주는 것이다.

여러가지 실험을 해보았는데 @Size 어노테이션은 min, max 모두 설정해도 정규식 관련 validation을 통과하지 못했다.

*를 사용할 것이 아니라면 길이 범위 지정이 필수적이다.

 

ResponseEnity와 Jackson 관련 에러

진행중인 프로젝트에서 RestControllerAdvice로 커스텀 예외들을 처리해주고 있는데

디버깅 결과 에러 던지는 곳까지는 잘 가지만 response를 제대로 보내주지 못하고 500이 뜨는 에러가 발생했다.

 

 

에러 로그는 잘 출력되지만 HttpMedia~ Exception이 발생하면서 전달이 안 된다.

 찾아보니 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

+ Recent posts