-
[Spring] FormatterSpring 2025. 4. 18. 14:17
Spring
🔥 주로 사용자 지정 포맷을 적용해 데이터 변환을 처리할 때 사용된다.
🎯 ConvertService 비슷한 목적을 가지지만 문자열을 객체로 변환하거나 객체를 문자열로
변환하는 과정에서 포맷팅을 세밀하게 제어할 수 있다.Why?
- 유저 입력값은 대부분 "문자열" 형태
- 백엔드에선 LocalDate, Integer, BigDecimal 같은 객체 타입 사용
→ 이때 Formatter가 등장해서 변환 + 포맷팅을 도와준다.
✅ 기본 구조
public interface Formatter<T> { T parse(String text, Locale locale); // 문자열 → 객체 String print(T object, Locale locale); // 객체 → 문자열 }Convert Formatter 방향 단 방향(A → B) 양 방향( A ↔B) 포맷 ❌ ✅ 사용 위치 내부 데이터 변환 사용자 입력/출력 포맷 ✅ Formatter 남발이 위험한 이유
문제 이유 코드 분산 너무 많은 포맷터를 등록하면, 각 타입마다 분산되어 관리 어려움 중복 포맷 포맷이 곳곳에서 중복 정의되면 일관성 깨짐 디버깅 어려 어떤 Formatter가 적용됐는지 헷갈림 (왜 이 값이 이 모양으로 찍히지?) 과도한 로딩 /의존 WebMvcConfigurer에 너무 많은 Formatter 등록 시 프로젝트 부팅 시 느려짐 가능성도 생김 📌 언제 써야 하냐면?
상황 Fromatter 날짜 포맷 yyyy-MM-dd, yyyy.MM.dd 등 입력/출력 일치 필요 시 숫자 포맷 천 단위 쉼표, 소수점 자리 등 폼 데이터 처리 사용자 입력값이 문자열일 때 → 객체로 안전하게 매핑 로깅 / 관리 출력 시 사람이 읽기 좋은 형태로 바꿔야 할 때 'Spring' 카테고리의 다른 글
[Spring] Convert VS Formatter (1) 2025.04.18 [Spring] Spring Formatter (0) 2025.04.18 [Spring] Converter (0) 2025.04.17 [Spring] Converter Interface (0) 2025.04.17 [Spring]TypeConverter (0) 2025.04.17
