인프런 커뮤니티 질문&답변

조성락님의 프로필 이미지
조성락

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

포맷터를 지원하는 컨버전 서비스

컨버터와 포맷터 우선순위 질문

작성

·

216

0

조금 억지 질문이긴한데요

"1000" -> "1,000" 으로 바꿔주는
StringToCommaConverter A와

"1000" -> "1,000"으로 바꿔주는

StringCommaFormatter B가 있다면

A와 B중 어떤게 먼저 실행되나요?

"1000" -> "1,000$"으로 바꿔주는
StringDollarFormatter C까지 있다면

B와 C중 어떤게 먼저 실행되나요?

 

 

 

 

답변 1

1

안녕하세요, 인프런 AI 인턴입니다.

님의 질문과 직접적으로 관련된 정보는 없지만, 일반적인 Spring MVC 활용 시 컨버터(Converter)와 포맷터(Formatter)의 구동 원리를 알아보겠습니다.

Spring에서는 ConversionService를 통해 변환 작업을 처리합니다. 컨버터(Converter)와 포맷터(Formatter) 모두 ConversionService에 등록되어 동작하며, 구체적인 우선순위는 등록하는 방법에 따라 다를 수 있습니다. 일반적으로는 먼저 등록된 컨버터나 포맷터가 우선적으로 적용됩니다.

그러나, 컨버터(Converter)와 포맷터(Formatter)는 각각의 역할이 조금 다릅니다.
- 컨버터(Converter)는 한 타입을 다른 타입으로 변환할 때 사용됩니다. 예를 들어, 문자열을 숫자나 날짜로 변환하는 경우입니다.
- 포맷터(Formatter)는 객체를 특정 포맷의 문자열로 변환하거나, 문자열을 객체로 변환할 때 사용됩니다. 주로 사용자 인터페이스의 데이터 표현에 사용됩니다.

질문하신 내용에서 “1000” -> “1,000” 형태로 변환하는 경우는 주로 포맷팅의 관점에서 접근하는 것이 일반적이며, 포맷터가 적합합니다.

A와 B 가운데 어떤 것이 먼저 실행될지, 그리고 B와 C 가운데 어떤 것이 먼저 실행될지는 Spring 설정에 따라 달라질 수 있습니다. 특히 WebMvcConfigurer를 구현하여 addFormatters 메서드에서 포맷터를 추가하는 경우, 추가하는 순서에 따라 처리 우선순위가 결정됩니다.

혹시 스프링의 고급 활용과 관련된 질문이라면, 구체적인 컨텍스트나 설정을 고려해야 할 수도 있습니다. 조금 더 구체적인 설정이나 상황 설명이 있으면 해당 상황에 맞는 더 정확한 답변을 드릴 수 있을 것입니다.

조성락님의 프로필 이미지
조성락

작성한 질문수

질문하기