항해 3주차 WIl
이번주도 시간이 어찌저찌 지나고 지난주가 어렵게 느껴졌지만
숙련주차에 들어서니 입문주차가 나은것 같은 느낌이 들었다.
비록 갓재영 매니저님(정재영 매니저님)과는 떨어졌지만
떨어졌다고 해서 좌절하지 않고 오히려 더욱 정재영 매니저님쪽으로 가서 질문을 해야겠다.
다음주에는 다시 정재영 매니저님과 같이하기 위해 매니저님께 DM을 보내야겠다.
이번주 키워드 :DI, IoC, Bean
Inversion of Control 이라고도 하는 의존 관계 주입(Dependency Injection)이라고도 하며, 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법이다. (new 연산자를 이용해서 객체를 생성하는 것이라고 생각하면 된다
Inversion of Control (IoC)(제어 주체가 어플리케이션)가 담당하는 객체를 Bean이라고 한다.
일반적 객체는 사용자가 관리하여 생성 및 소멸을 제어가 가능하지만 @Component와 @Bean으로 IOC에게 관리주체를 넘기게 되면 소멸을 사용자가 할 수 없고 프로그램이 종료시에 소멸되게끔 IOC가 관리한다.
Bean을 등록하는 방법
- xml에 등록하는 방법 (Maven 일 때 / 최근에는 잘 사용하지 않음)
- @Bean 어노테이션을 이용하는 방법
- @Component 어노테이션을 이용하는 방법
---------------------
의존성 주입을 사용하는 이유
1. 재사용성을 높여준다.
2. 테스트에 용이하다.
3. 코드를 단순화 시켜준다.
4. 사용하는 이유를 파악하기 수월하고 코드가 읽기 쉬워지는 점이 있다.
5. 종속성이 감소하기 때문에 변경에 민감하지 않다.
6. 결합도(coupling)는 낮추면서 유연성과 확장성은 향상 시킬 수 있다.
7. 객체간의 의존관계를 설정할 수 있다.
빈(Bean)이란 무엇인가?
- 스프링 IoC 컨테이너가 관리하는 객체
- 빈으로 등록됐을 때의 장점
- 스프링 IoC 컨테이너에 등록된 Bean들은 의존성 관리가 수월해진다.
- 스프링 IoC 컨테이너에 등록된 Bean들은 싱글톤의 형태이다
- 빈으로 등록됐을 때의 장점