쿼리 파라미터를 객체로 바인딩 할 때, snake case 사용이 불가능 -> (Request Parameter 처리를 위한 Argument Resolver 추가) #161
Dae-Hwa
started this conversation in
Troubleshooting docs
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
위와 같이 RequestDTO를 쿼리 파라미터나 (거의 그럴 일 없겠지만) Form Data로 받아야 할 경우 스네이크 케이스로 매핑이 되지 않습니다.
이유는 핸들러의 파라미터 바인딩을 어디서할지 정해지지 않으면 기본적으로
ServletRequestDataBinder을 사용하도록 되어 있습니다. 기본정책은 리플렉션을 이용하는데, 리플렉션은 카멜케이스를 바탕으로 필드 정보를 불러오기 때문입니다.따라서 ArgumentResolver를 새롭게 정의해서 ObjectMapper를 이용한 객체 변환을 하려고 합니다.
장점은 Jackson 어노테이션과 설정을 그대로 사용할 수 있다는 점입니다.
단점은 당연하지만, 지금 생각한 경우 외의 예외 상황에서는 새롭게 정의한 Argument Resolver에 걸리지 않는 경우가 생길 수 있다는 점이 될 수 있을 것 같네요.
Beta Was this translation helpful? Give feedback.
All reactions