ABOUT ME

-

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

     

     

     

    '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
Designed by Tistory.