[DI 1단계] setMessageProvider이용, 유연성 증가
-그러나, 중복 코드가 여전히 존재