본문 바로가기
Programming/Spring

[Spring] IoC, DI, DL

by hongchii 2020. 12. 20.
728x90
반응형

IoC (Inversion of control, 제어역전)

"누가 작업을 수행하느냐" 

 

라이브러리를 사용할땐 내 코드가 라이브러리 코드(외부코드)를 호출하지만,

프레임워크를 사용할때는 프레임워크(외부코드)가 내 코드를 호출한다.

즉, 프레임 워크에서는 최종호출이 개발자에 의해서 제어되는게 아니라, 프레임 워크 내부에서 결정된 대로 이뤄진다.

이것을 "제어의 역전" 이라고 표현한다.

 

- 개발자가 직접 객체 생성을 하지않고 컨테이너에서 객체 생성/소멸 등을 관리하는 방식

- 개발자가 직접 컨트롤 할 수 없고, 컨테이너가 관리를 해서 제어의 역전이라고 표현

- Spring에서 IoC 컨테이너인 ApplicationContext에서는 bean, xml 또는 annotation을 이용하여 객체 관리

 

DI (Dependency Injection, 의존성주입)

 

의존성 주입이란 특정 객체에 필요한 객체를 외부에서 결정해서 연결시키는 것을 의미한다.

 

-생성자, setter등을 이용하여 의존성을 주입 받을 수 있음.

-@Autowried의 키워드를 이용하여 의존성 주입이 되는 대상을 지정.

 

DL (Dependency Lookup, 의존성검색)

 

컨테이너에서는 객체들을 관리하기 위해 별도 저장소에 빈을 저장한다.

개발자들이 컨테이너에서 제공하는 API를 이용하여 사용하고자 하는 빈을 검색하는 방법.

 

 

 

참고 justhackem.wordpress.com/2016/05/13/dependency-inversion-terms/

 

의존성 역전 원리(Dependency Inversion Principle) 관련 용어

의존성 역전 원리(Dependency Inversion Principle)는 모듈간 낮은 결합도(loose coupling)와 테스트 용이성(testability)을 확보하는데 유용한 디자인 방법입니다. 저는 확장 가능하고(scalable) 클라우드 환경에

justhackem.wordpress.com

 

 

 

 

 

 

728x90
반응형

댓글