Denpendency Injection & Dependency Lookup

  • Dependency Injection
    Spring IoC의 동작원리는 주로 DI(Dependency Injection)이다. Spring 공식 Doc보면, IoC를 DI라고 표현하기도 한다.

Dependency Injection의 정의는 다음과 같다.


Dependency Injection :

program run time 시에 의존관계를 맺는 대상인 dependent object 와 , 그것을 사용하는 주체인 client object를 연결시켜주는 작업


DI는 정리하면 다음과 같은 3 조건을 충족시키는 작업을 말한다.

  1. class model(class diagram)에는 의존관계가 들어나지 않음 , 즉 client가 Interface에 의존하고 있어야 한다.
  2. run time시 의존관계는 container와 같은 다른 주체가 결정한다.
  3. 의존관계는 사용할 dependent object의 reference를 외부에서 주입해줌으로서, 만들어진다.
Read more

Spring IoC container

토비의 spring
이전까지는 Spring 을 적용하지 않고, IoC에 대해서 살펴보았다.
지금부터는 Spring이 IoC를 어떤형태로 구현하였는지 살펴보겠다.
그전에 spring에서 사용하는 용어를 정리하면 다음과 같다.


- Bean

: spring이 제어권을 가지고 직접 만들고 , 관계를 설정하는 객체


- Bean Factory

: Bean의 생성과 관계설정과 같은 제어를 담당하는 IoC 객체

(=이를 확장된 의미에서는 Application Context라고 한다.)
Read more

Observer pattern

Observer Pattern은 한 객체(Subject)의 상태가 바뀌면 그 객체에 의존하는 다른 객체(Observer)에게 알려져, 자동으로 내용이 갱신되는 일대다 (One-To-Many ,One Subject to Many Observer ) 의존성을 정의한다.

Read more

Merge Sort

merge sort(합병정렬) 은 크기가 N인 입력을 1/n 크기로 분할하고, 각각에 대해 재귀적으로 다시 합병정렬을 수행한 후,n개의 정렬된 부분은 합병하는 정렬 알고리즘이다.

Read more

Template method pattern

Template Method Pattern이란?
SuperClass에서 수행할 알고리즘의 각 단계를 미리 정의해두고 , 그 중 하나 이상의 단계를 SubClass에서 구현하는 디자인 패턴

Read more

IoC(inversion of control)의 개념

간단정리

IoC(Inversion of Control)란?
프로그램의 제어흐름을 뒤바꾸는 것이다.개발자가 직접 객체간의 관계설정이나 객체의 생명주기를 조절하는 것이 아니라, container와 같은 다른 대상이 이를 제어하는 것을 말한다. Framework가 IoC가 적용된 기술이다. 정확히 말하면 spring framework는 IoC를 효율적으로 적용한 것이지, spring 없이도 IoC를 구현할 수 있다.

Read more