스프링 Enum 바인딩: 커스텀 Converter로 대소문자 문제 해결
·
Spring/Spring에서 Java 활용하기
안녕하세요 개발자 stark입니다! 오늘은 Enum을 우아하게 사용하는 방법을 소개드리고자 합니다. 스프링 MVC에서 @RequestParam이나 @PathVariable로 enum을 받을 때는 스프링 내부에서 StringToEnumConverter가 동작하게 됩니다. 그리고 이 Converter는 문자열과 enum 상수가 정확히 일치해야만 매핑됩니다. 그러나 개발을 하다 보면 소문자를 허용해야 할 수도 있고, 잘못 들어온 값에 대해 일관된 에러 메시지를 내려줄 필요도 있습니다. 이를 해결하기 위해 아래와 같이 커스텀 컨버터 + 전역 예외 처리를 구성하면, 원하는 대로 Enum을 바인딩하고 에러 응답을 깔끔하게 제어할 수 있습니다.  저도 이것을 잘 몰랐는데 제가 enum을 대문자로만 받도록 로직을 구성..
[Java] Enum NPE 문제 빠르게 해결하기 (feat. equals, switch, AttributeConverter)
·
Spring/Spring에서 Java 활용하기
안녕하세요. 기록이 즐거운 개발자 stark입니다!이번 포스팅은 제가 직접 겪은 Enum 오류와 그 해결 과정을 기록해 두고자 작성했습니다. 스프링 프로젝트에서는 DB에 저장되는 타입을 문자열(String)이 아닌 Enum으로 관리하는 것을 권장합니다. Enum을 사용하면 임의의 값이 DB에 저장되는 것을 방지할 수 있으며, 코드 내에서 타입을 쉽게 검색해 빠르게 확인할 수 있는 장점이 있기 때문입니다. 하지만, Enum을 사용한다고 해서 문제가 없는 것은 아닙니다. 프로젝트를 진행하면서 예상치 못한 문제에 직면할 수 있습니다. 제가 겪은 문제 상황은 다음과 같습니다. 비즈니스 로직에서 Enum을 사용해 DB에 저장된 특정 타입 값을 확인하고, 일치할 경우 데이터를 처리하는 로직을 작성했습니다. 그러나,..