Notice
Recent Posts
Recent Comments
Link
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

다히의 개발일지

DI(Dependency Injection) & IoC(Inversion of Control) 본문

다히의 피땀눈물/SPRING

DI(Dependency Injection) & IoC(Inversion of Control)

mindarrrr 2019. 7. 9. 11:40

* 객체 의존성 (Object Dependencies) = 객체가 상호작용한다.

하나의 모듈이 바뀌면 의존한 다른 모듈까지 변경된다.

Unit Test 작성이 어렵다.

 

*의존성 주입(Dependency Injection) = Framework에 의해 객체 의존성 주입

Spring FrameWork에서 지원하는 IoC형태 ( IoC 컨테이너에서 객체를 생성한 후 생성된 객체를 다른 객체에 주입 - IoC 컨테이너에서 생성된 객체들을 한번에 관리할 수 있다는 장점이 있다, )

Controller가 bean 객체를 생성, 종속성 주입을 수행한다.

 

* IoC ( Inversion of Control : 제어의 역전 )

객체의 생성에서부터 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌어 있다는 것

Framework 속에서 프로그래밍을 하는 것

모든 종류의 작업을 사용하는 "사용자" 쪽에서 제어하는 구조이며 코드 전체에 대한 제어는 framework가 한다.

개발자가 설정(xml, annotation 등)만 하면 controller가 알아서 처리한다.

  내용정리
Bean 스프링에서 제어권을 갖고 직접 생성하고 관계를 부여하는 객체(object)
Bean Factory 스프링의 IoC를 담당하는 핵심 컨테이너. 빈을 등록/생성/조회/반환/관리
application context bean factory를 확장한 IoC 컨테이너. BeanFactory를 상속
configuration metadata 설정정보/설정 메타정보. 주로 bean 생성/구성하는 용도로 사용되며 application context혹은 bean factory가 IoC를 적용하기 위해 사용하는 메타 정보
container

IoC방식으로 bean을 관리한다는 의미에서 bean factory나 application context를 가리킨다. 

spring container = application context. 하나의 애플리케이션에 보통 여러개의 applicationContext Object가 만들어지는데 이를 spring container라고 부를 수 있다. 

객체를 관리하는 컨테이너

spring framework IoC container, application context를 포함해서 spring이 제공하는 모든 기능

 

* IoC와 DI의 관계

스프링 프레임워크에서 IoC와 DI는 같은 개념으로 작용하며 IoC는 DI를 통해 작용한다고 하지만 IoC기능은 스프링 프레임워크가 나오기 이전부터 사용되던 개념이었다.

경량 컨테이너들이 이야기 하는 IoC는 DI 용어로 설명하는 게 적합할 수 있다.

 

DL (의존성 검색) : 저장소에 저장되어 있는 Bean에 접근하기 위해 개발자들이 API를 이용해서 사용하고자 하는 Bean을 Lookup하는 것

DI (의존성 주입) : 컨테이너 자동 연결

'다히의 피땀눈물 > SPRING' 카테고리의 다른 글

MVC 구조  (0) 2019.07.09
스프링 session 기반 로그인 화면 구현  (0) 2019.07.01
파라미터 넘기기  (0) 2019.06.28
SPRING + MYBATIS + 다중 DB 설정  (1) 2019.06.28