Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
관리 메뉴

To Dare Is To Do!

DI와 IoC 본문

Spring

DI와 IoC

Nick_Choi 2023. 10. 31. 08:41

IoC란?

  • IoC( Inversion of Control )는 제어의 역전으로 메소드나 객체의 호출 작업을 내부에서 직접 관리하지 않고 외부에서 결정하도록 하는 원칙을 의미한다.
  • 이는 영화사의 연락(호출)을 기다리는 할리우드 배우의 상황에 비유하여 할리우드 원칙(Don't call us, we'll call you)라고 불리기도 한다.

 

왜 IoC를 사용하는가?

객체의 결합도를 줄임으로써 유연한 코드를 작성할 수 있도록 하여 유지 보수에 용이하다.

-> 객체 지향 원칙을 잘 지킬 수 있다.

 

+ DIP란?

DIP( Dependency Inversion Principle )는 의존 역전 원칙으로 상위 레벨 모듈이 하위 레벨 모듈에 의존하는 관계를 역전시키는 것을 의미한다.

이 때 지켜야 할 2가지 원칙으로 

 

1. 상위 모듈은 하위 모듈에 종속되는 것이 아닌 상,하위 모듈 모두 추상화에 의존한다.

2. 추상화가 세부사항에 의존하는 것이 아닌 세부사항이 추상화에 의존해야 한다.

등이 있다.

 

DI란?

  • DI( Dependency Injection)는 의존성 주입으로 외부에서 클래스간 의존성(한 클래스의 변경이 다른 클래스에 영향을 줌)을 주입하는 것을 의미한다. 
  • 의존성을 주입하는 방법에는 생성자 주입, setter 주입, 필드 주입 3가지가 존재한다.

 

왜 DI를 사용하는가?

코드의 재사용성 및 유연성이 높아지고 객체 간 결합도를 줄여 유지보수에 용이하다.

'Spring' 카테고리의 다른 글

HTTP Method  (1) 2023.11.06
Spring 3계층 속 DI  (0) 2023.11.05
직접 만들고 뜯어본 Controller  (1) 2023.11.03
스프링의 꽃, 3계층  (0) 2023.10.31
오버라이딩을 구현할 때 @Override 어노테이션은 반드시 필요할까?  (0) 2023.10.24