1-1) 스프링 의존성 주입(DI), 제어의 역전(IoC) : @Bean, @Component, @Autowired, @Primary, @Qualifier
- 의존성 주입(Dependency Injection, DI), 제어의 역전(Inversion of Control, IoC) 이란 큰 규모의 프로젝트를 다수와 협업하여 개발하다보면 여러 문제 상황에 직면하게 된다. 규모가 커짐에 따라, 컴포넌트의 수가 많아지고, 컴포넌트들 간의 결합 역시 복잡해지게 된다. 예를 들어서 다음과 같은 코드를 보자. class UserService { private Encoder encoder; ... public UserService(Encoder encoder){ this.encoder = encoder; } ... } ... Encoder encoder = new MyEncoder(); UserService dao = new UserService(encoder); .....