Spring

[Spring]TypeConverter

Paragon53 2025. 4. 17. 17:24

 

minecraft-font

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() 통해 등록
  • 실무에선 폼 입력값 처리할 때 자주 등장

 

 

 

댓글수0