-
[Spring]TypeConverterSpring 2025. 4. 17. 17:24
Spring
🔥 Spring에서 객체의 타입을 서로 변환하는 데 사용되는 인터페이스
🎯 Spring의 데이터 바인딩 과정에서 문자열을 특정 객체로 변환하거나 하나의 객체 타입을
다른 타입으로 변환할 때 사용한다.
✅ 언제 사용 되는가?
- @RequestParam, @PathVariable, @ModelAttribute 등으로 값 받을 때
- 폼 데이터를 자바 객체로 바꾸거나 반대로 변환할 때
- 커스텀 객체가 필요한데 기본 변환기로 부족할 때
Ex) 상황 예시
◆ 직접 변환 할 때
@GetMapping("/age-check") public String checkAge(HttpServletRequest request) { String ageStr = request.getParameter("age"); // "30" ← String 형태로 들어옴 Integer age = Integer.valueOf(ageStr); // 수동으로 Integer 변환 return "당신의 나이는 " + age + "살입니다."; }Requst로 JSON을 받아온다(입력) 서버 내부에서 직접 변환할때, {
"age" : "30"
}String ageStr = request.getParameter("age");
// "30" ← String 형태로 들어옴
Integer age = Integer.valueOf(ageStr);
// 수동으로 Integer 변환◆ Spring의 @RequestParm으로 받을때
@GetMapping("/age-check") public String checkAge(@RequestParam Integer age) { return "당신의 나이는 " + age + "살입니다."; }- 이때 Spring 내부의 TypeConvert가 string에서 Integer 변환을 자동으로 해준다.
- 예외 발생시 Spring이 자동으로 예외 처리 해준다.
차이: 결과는 같지만, 책임 주체와 확장성, 예외 처리 방식이 다르다!
✅ 요약
- 스프링에서 타입 변환은 자동으로도 많이 해줌
- 하지만 내가 정의한 타입은 직접 Converter 만들어야 한다.
- addFormatters() 통해 등록
- 실무에선 폼 입력값 처리할 때 자주 등장
'Spring' 카테고리의 다른 글
[Spring] Converter (0) 2025.04.17 [Spring] Converter Interface (0) 2025.04.17 [Spring]WebMvcConfigurer (0) 2025.04.17 [Spring] HttpMessageConverter(2) (0) 2025.04.17 [Spring] ArgumentResolver (0) 2025.04.17
