# 3.5 스프링 필드 포맷팅 by sh

이전 섹션에서 설명한 것처럼 [`core.convert`](https://docs.spring.io/spring/docs/current/spring-framework-reference/core.html#core-convert)는 범용 타입 변환 시스템입니다. 그것은 하나의 타입에서 다른 타입으로 변환 로직을 구현하기 위해 강력한 `Converter`SPI 뿐만 아니라 통합된 `ConversionService`API를 제공합니다. 스프링 컨테이너는 이 시스템을 사용하여 빈 속성 값을 바인딩합니다. 또한, Spring Expression Language (SpEL)과 `DataBinder`는 이 시스템을 사용하여 필드 값을 바인딩 합니다. 예를 들어, `expression.setValue(Object bean, Object value)`시도를 완료하기 위해 SpEL에서 `Short`를 `Long`으로 강제 변환해야 하는 경우 `core.convert` 시스템이 강제 변환을 수행합니다.

**이제 웹 또는 데스크톱 응용 프로그램과 같은 클라이언트 환경의 타입 변환 요구 사항을 고려하십시오. 이러한 환경에서는 대게 `String`에서 클라이언트 포스트 백 프로세스를 지원하도록 변환하고 뷰 렌더링 프로세스를 지원하기 위해 `String`으로 다시 변환합니다.** 또한, `String`값을 지역화해야하는 경우가 종종 있습니다. 보다 일반적인 `core.convert` `Conveter`SPI는 이러한 포맷팅 요구사항을 직접 처리하지 않습니다. **스프링 3은 직접 처리하기 위해 클라이언트 환경에 대한 `PropertyEditor`구현에 대한 간단하고 강력한 대안을 제공하는 편리한 `Formatter` SPI를 도입했습니다.**

{% hint style="info" %}
PostBack : 입력 컨트롤의 이벤트를 처리하기 위해 서버로 데이터를 Submit 하는 경우. (버튼 Click 이벤트 처리 등. Click 이벤트를 처리하기 위해 서버로 폼 데이터를 전송하고 서버는 이 요구를 받아 이벤트를 처리하고 다시 클라이언트에 웹 폼을 보내 줌. 모든 컽르롤 이벤트에 대해 포스트백되지 않음. 예를 들어, RadioButton 컨트롤의 선택 이벤트는 되지 않음)
{% endhint %}

일반적으로 `java.util.Date`와 `Long`사이의 변환과 같이 범용 타입 변환 로직을 구현해야 하는 경우 `Converter`SPI를 사용할 수 있습니다. **클라이언트 환경(예: 웹 응용 프로그램)에서 작업하고 지역화된 필드 값을 Parsing 및 Print 해야하는 경우 `Formatter`SPI를 사용할 수 있습니다.** `ConversionService`는 두 SPI에 대해 통합된 타입 변환 API를 제공합니다.
