[Spring, OOP] 생성자 주입이 좋은 이유와 스프링을 이용한 다양한 DI