-
[Spring] Convert VS FormatterSpring 2025. 4. 18. 15:27
Spring
🔥 Spring에서 데이터를 변환하거나 포맷팅할 때 사용되는 두 가지 핵심 인터페이스
Converter와 Formatter이다.✅ 정리 한 줄 요약
Converter = 시스템 내부의 변환 도우미,
Formatter = 사용자와 소통하는 포맷 마스터Convert Formatter 주요 목적 자료형간의 변환 문자열 ↔ 객체 + 포맷 처리 변환 방향 단방향 양방향 사용 위치 내부 로직, 시스템 처리 사용자 입출력, UI 표시 포맷 지원 없음 날짜, 숫자 포맷 등록 방법 addConverter(...) addFormatter(...) 어노테이션 없음 @dateTimeFormat, @NumberFormat 🧩 예시로 보는 차이점
public class StringToEnumConverter implements Converter<String, MembershipLevel> { @Override public MembershipLevel convert(String source) { return MembershipLevel.valueOf(source.toUpperCase()); } }public class LocalDateFormatter implements Formatter<LocalDate> { @Override public LocalDate parse(String text, Locale locale) { return LocalDate.parse(text, DateTimeFormatter.ofPattern("yyyy-MM-dd")); } @Override public String print(LocalDate object, Locale locale) { return object.format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); } }상황 사용 도구 이유 문자열 → Enum Converter 내부 타입으로 변환 날짜 입력 yyyy-MM-dd Formatter 문자열 → 날짜 객체 (입력값 파싱) 날짜 응답 시 포맷 변경 Formatter 객체 → 문자열 (포맷 적용) 숫자 출력 시 천단위 콤마 Formatter 보기 좋게 포맷팅 단순 ID → 객체 매핑 Converter 자료형 변경 필요 (ex. Long → User) Tip
- Converter는 자료형 매핑에 집중하세요.
- Formatter는 입출력에 포맷이 필요한 경우에만 사용하세요.
- 포맷이 필요 없는 일반적인 변환은 Converter로 충분합니다.
- Formatter는 너무 많아지면 유지보수가 힘들 수 있으니 남발 금지! ✅
'Spring' 카테고리의 다른 글
[Spring] JPA Entity 생명주기 4단계 (0) 2025.05.07 [Spring] 연속성 컨텍스트 (0) 2025.05.07 [Spring] Spring Formatter (0) 2025.04.18 [Spring] Formatter (0) 2025.04.18 [Spring] Converter (0) 2025.04.17
