애플리케이션을 개발하다 보면 문자를 숫자로 변환하거나, 반대로 숫자를 문자로 변환해야 하는 것처럼
타입을 변환해야 하는 경우가 상당히 많다.
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편을 듣고 작성한 글입니다.
스프링 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 |
댓글