## build.gradle ##

// <https://mvnrepository.com/artifact/org.modelmapper/modelmapper>
implementation group: 'org.modelmapper', name: 'modelmapper', version: '3.1.1'
## model/ModelConverter.java ##

import org.modelmapper.ModelMapper;
import org.modelmapper.convention.MatchingStrategies;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
`* 
`* Model Mapper는 스프링 빈으로 사용하지 않고, 단순 전역 스태틱 변수를 참조하여 사용
`* 매퍼 파편화 개선, 불필요한 의존성 주입을 개선하고, 사용성의 편의를 위함
`*/
@Component
public class ModelConverter {
  public static final ModelMapper MODEL_MAPPER = ModelConverter.createModelMapper();

  @Bean
  public ModelMapper modelMapper() { return ModelConverter.createModelMapper(); }

  public static ModelMapper createModelMapper() {
    ModelMapper modelMapper = new ModelMapper();
    modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);
    return modelMapper;
  }
}
## service/UserService.java ##

import static kr.co.onmediagroup.onoffapi.model.ModelConverter.MODEL_MAPPER;

... (생략)

User.UserResDTO userResDTO = MODEL_MAPPER.map(userEntity, User.UserResDTO.class);


1. 중앙 집중식 설정 관리

MatchingStrategies.STRICT와 같은 설정을 한 곳에서 정의하므로,

모든 ModelMapper 사용처에서 일관된 매핑 전략을 적용할 수 있습니다.

modelMapper.getConfiguration().setMatchingStrategy(MatchingStrategies.STRICT);

2. Spring Bean으로 등록

@Bean
public ModelMapper modelMapper()