티스토리 뷰

Development/Spring

Spring IoC / DI 특징

쥬리리리 2022. 4. 5. 13:32

Spring? 

  : 자바 언어 기반의 프레임워크로 객체 지향 언어가 가진 특징을 잘 살려낸 프레임워크

 

 

Spring에는 핵심 기술이 DI, IoC가 있습니다.

 

 

IoC (제어의 역전, Inversion of Control)

  • 객체에 대한 제어권이 개발자로부터 컨테이너로 넘어간 것
  • 객체의 생성부터 생명주기까지 전부 컨테이너가 관리
  • 컨테이너가 직접 Bean을 생성/관리하기 때문에 개발자는 코드에 객체를 선언하지 않아도 됨 (클래스들의 의존도를 줄여줌)

   *Bean : 스프링 컨테이너가 생성하고 관계설정, 사용을 제어해주는 오브젝트를 말함

 

 

 

* IoC는 역순으로 객체를 생성해주고 컨테이너로 객체들이 결합까지 되어 담겨진다는 의미로 IoC라 한다. 

 

일체형의 경우 A클래스가 B를 생성하고, B 클래스가 C클래스를 생성합니다.  

결합형의 경우는 D가 제일 먼저 생성되어 C에 결합되고, 그 후에 B가 결합되는 형태입니다.

차에 대입했을 때, 일체형은 부품의 고장 시 유지보수가 어렵우며 차 자체를 변경해야합니다.

그에 반해 결합형의 경우엔 부품만 변경하면 차를 계속 사용할 수 있습니다.

유지보수의 경우 결합형이 확실히 편하겠죠.

 

 

DI (의존성 주입, Dependency Injection)

  • 의존 관계 주입 기능
  • Bean 설정 정보를 바탕으로 컨테이너가 자동으로 연결
  • 직접 객체 생성 X, 외부에서 생성 후 주입 시키는 방식

 

장점

1. 코드가 단순해진다.

2. 모듈간의 결합도가 낮아지고, 유연성이 높아진다.

3. 코드 중복을 방지할 수 있다.

4. 유지보수의 용이하다.

 

*  DI는 쉽게 말해 스프링 컨테이너(IoC)에 있는 Bean(객체)을 가져와 사용하는 방식이다.

 

 

'Development > Spring' 카테고리의 다른 글

Spring MVC 구조 및 특징  (0) 2022.04.11
댓글
링크
최근에 올라온 글
Total
Today
Yesterday