이번 포스팅에서는 개발 진행 중 만난 예외에 대해 원인과 해결책에 대해 정리해보려고 합니다.
예외 화면
원인
MetricAnomalyDto는 HttpConverter에 의해 직렬화/역직렬화되는 대상입니다.
HttpConverter가 Json <-> Java 객체로 변환은 Jackson 라이브러리를 사용하는데
Jakson이 객체를 역직렬화 하기 위해 reflection이라는 기술을 사용하 생성자를 검사하고 선택해 객체 인스턴스를 만드는데 일반적으로 선택되는 것이 기본 생성자 입니다!
해결책
lombok의 @NoArgsConstructor 애너테이션을 추가해 기본 생성자를 만들어 주었습니다.
기존의 생성자가 jackson이 reflection을 이용해서 역직렬화 하기에는 무리가 있는 생성자라 예외가 터진 것 같습니다...
이번 포스팅에서는 개발 중에 만난 예외에 대한 원인과 해결책에 대해서 알아봤습니다. 하지만 원인도 알았고 어떻게 해결해야 하는지 알았지만 뭔가 근본적인 해결책이 아니라는 느낌이 듭니다...
이런 찜찜함은 아마 reflection이라는 기술 때문인 것 같습니다. 다이나믹 프록시와 연관된 기술이라는 느낌이 들어서
다음 포스팅에서는 다이나믹 프록시와 reflection 이라는 기술에 대해 공부하고 정리해 보겠습니다.
'Server > Spring' 카테고리의 다른 글
[Spring Cloud] (0) | 2025.03.04 |
---|---|
[JPA] 영속성 컨텍스트 (0) | 2025.02.24 |
@Transactional 에 대하여 (0) | 2025.02.24 |