■ Spring DI


필요한 객체의 의존을 주입하는 것이다. Bean Container에 각종 클래스들을 넣어둔다.

기존에는 의존성 관계를 갖고 있는 Controller, Service, Dao 객체들을 생성하고 관계를 맺어 줄 때 사용자가 직접 new 를 이용하여 직접 생성하는 작업을 했지만 스프링에서 DI가 그런 작업을 자동으로 해준다.

Java의 클래스 상속 혹은 interface를 이용한 추상화 기반 개발 방법을 의미한다.


■ IOC (Inversion of Control)


사용자가 아닌 스프링이 오브젝트를 제어한다.

외부에서 객체의 생성에서 소멸까지 Life Cycle을 제어한다.


Container는 스프링이 만든 객체를 생성과 소멸될까지 적재하는 개념으로  IOC와 차이가 있다.


Spring은 DI framework 혹은 IOC freamework라고 부른다.


■ Strong Coupling


A클래스는  B클래스를 멤버변수로 갖고 있다. 이 둘은 의존성 관계를 맺고 있다. 이러한 관계를

Strong Coupling이라 한다. 직역을 하자면 강한 결합이라고 한다.


SOLID 원칙에 근거해서 이러한 관계가 맺어져야 한다.

1. SRP 

2. OCP 

3. LSP 

4. ISP 

5. DIP 



■ Loosing Coupling  약한 결합


A클래스는  B인터페이스를 멤버변수로 갖고 있다. 클래스 대신 인터페이스를 갖고 있는 것을 약한 결합이라고 한다. 


■ DI - 개발자는 객체의 생성을 직접 할 필요가 없다



소스코드 영역은 인터페이스로 만들어야 한다. 약한 결합의 핵심은 인터페이스이기 때문이다.  













'Spring' 카테고리의 다른 글

JSTL  (0) 2018.08.22
MVC 패턴 & ModelAndView  (0) 2018.08.21
Dispatcher Servlet  (0) 2018.08.21
스프링 프로젝트 생성  (0) 2018.08.20
스프링 프레임워크 개요  (1) 2018.08.20

+ Recent posts