Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

che01 님의 블로그

ConversionService란? 본문

Spring

ConversionService란?

che01 2025. 6. 5. 19:57

Spring에서 타입 변환을 총괄 관리하는 서비스입니다.

쉽게 말하면 "변환기들의 매니저" 같은 존재입니다.

왜 필요한가?

웹에서 우리한테 오는 데이터들을 생각해보세요:

  • 사용자가 폼에 입력한 나이: "25" (문자열)
  • URL 파라미터로 온 날짜: "2023-12-25" (문자열)
  • 설정 파일의 값: "true" (문자열)

하지만 우리가 코드에서 원하는 것:

  • int age = 25
  • LocalDate date = LocalDate.of(2023, 12, 25)
  • boolean flag = true

문자열 → 원하는 타입 으로 변환이 필요합니다.

ConversionService가 하는 일

변환기들을 모아서 관리

// 여러 변환기들을 등록해서 관리
conversionService.addConverter(new StringToIntegerConverter());
conversionService.addConverter(new StringToDateConverter());
conversionService.addConverter(new StringToPersonConverter());

변환 작업 실행

// "25"를 Integer 타입으로 변환
Integer age = conversionService.convert("25", Integer.class);

// "wonuk:100"을 Person 객체로 변환
Person person = conversionService.convert("wonuk:100", Person.class);

실제 동작 과정

  1. 요청 접수: "이 문자열을 저 타입으로 바꿔줘!"
  2. 변환기 찾기: 등록된 변환기들 중에서 적절한 것을 찾음
  3. 변환 실행: 찾은 변환기로 실제 변환 작업 수행
  4. 결과 반환: 변환된 객체를 돌려줌

핵심 포인트

ConversionService는 변환만 담당합니다.

  • 변환기 관리하고 변환 실행하는 것이 역할
  • 언제, 어디서 변환할지는 다른 컴포넌트가 결정

쉬운 비유

  • ConversionService = 번역 센터
  • 개별 Converter = 각 언어별 번역사
  • ArgumentResolver = 고객

고객이 "이 문서 영어로 번역해주세요" 하면, 번역 센터가 영어 번역사를 찾아서 번역해주는 구조입니다.

간단한 코드 예시

// ConversionService 생성
DefaultConversionService conversionService = new DefaultConversionService();

// 내가 만든 변환기 등록
conversionService.addConverter(new StringToPersonConverter());

// 변환 실행
Person person = conversionService.convert("wonuk:100", Person.class);
// 결과: Person(name="wonuk", age=100)

실제로 어디서 쓰이나?

우리가 평소에 쓰는 이런 상황들에서 뒤에서 알아서 동작합니다:

@GetMapping("/user")
public String getUser(@RequestParam int age,           // "25" → 25
                     @RequestParam LocalDate birth,   // "2023-01-01" → LocalDate
                     @RequestParam boolean active) {  // "true" → true
    // ConversionService가 알아서 변환해줌
}

한 줄 정리

ConversionService = 스프링의 타입 변환 전담 매니저

여러 변환기들을 관리하고, 필요할 때 적절한 변환기를 찾아서 변환해주는 서비스입니다.

이제 Spring에서 문자열이 자동으로 원하는 타입으로 바뀌는 마법의 정체를 알았습니다.