본문 바로가기
Spring

스프링 타입 컨버터

by ppirae 2022. 6. 25.

애플리케이션을 개발하다 보면 문자를 숫자로 변환하거나, 반대로 숫자를 문자로 변환해야 하는 것처럼

타입을 변환해야 하는 경우가 상당히 많다.

 

 TypeConverter

이때 타입 컨버터를 이용하여 타입을 바꿀 수 있다.

@Slf4j
public class IntegerToStringConverter implements Converter<Integer, String> {

    @Override
    public String convert(Integer source) {
        log.info("convert source = {}", source);
        return String.valueOf(source);
    }
}

하지만, 이렇게 타입 컨버터를 하나하나 직접 사용하면, 개발자가 직접 컨버팅 하는 것과 큰 차이가 없다.


ConversionService

이렇게 타입 컨버터를 하나하나 직접 찾아서 타입 변환에 사용하는 것은 매우 불편하다.

그래서 스프링은 개별 컨버터를 모아두고 그것들을 묶어서 편리하게 사용할 수 있는 기능을 제공하는데,

이것이 바로 컨버전 서비스( ConversionService )이다.

컨버전 서비스 인터페이스는 단순히 컨버팅이 가능한가? 확인하는 기능과, 컨버팅 기능을 제공한다.


Fomatter

Converter는 범용이다 (객체 -> 객체)

Fomatter는 문자에 특화되있다 (객체 -> 문자, 문자 -> 객체), 현지화(Locale)

Fomatter는 Converter의 특별한 버전이라고 할 수 있다.

 

스프링이 제공하는 기본 포맷터

스프링은 자바에서 기본으로 제공하는 타입들에 대해 수 많은 포맷터를 기본으로 제공한다.

 

그 중 유용한 두개

  • @NumberFormat : 숫자 관련 형식 지정 포맷터 사용, NumberFormatAnnotationFormatterFactory
  • @DateTimeFormat : 날짜 관련 형식 지정 포맷터 사용, Jsr310DateTimeFormatAnnotationFormatterFactory

 

정리

컨버터를 사용하든, 포맷터를 사용하든 등록 방법은 다르지만,

사용할 때는 컨버전 서비스를 통해서 일관성 있게 사용할 수 있다.


인프런 김영한님의 스프링 MVC 2편을 듣고 작성한 글입니다.

https://inf.run/oKtV

 

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 - 인프런 | 강의

웹 애플리케이션 개발에 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. MVC 2편에서는 MVC 1편의 핵심 원리와 구조 위에 실무 웹 개발에 필요한 모든 활용 기술들을 학습할 수 있

www.inflearn.com

 

'Spring' 카테고리의 다른 글

Spring Boot 와 JWT  (0) 2022.07.20
파일 업로드  (0) 2022.06.26
로그인 처리 - 필터, 인터셉터  (0) 2022.06.18
로그인 처리 - 쿠키와 세션  (0) 2022.06.17
검증 - Bean Validation  (0) 2022.05.29

댓글