ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] Formatter
    Spring 2025. 4. 18. 14:17

     

    minecraft-font

    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
Designed by Tistory.