[SpringBoot] IoC &DI

Woojin·2023년 8월 12일
0

SpringBoot

목록 보기
6/15

Object ⇒ 실체화가 가능한 것

Instance ⇒ 실체화 된 것

ex) 가구(추상적) ⇒ 의자, 침대 (Object) ⇒ 세상에 생겼을 때 Instance 가 되는 것

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

  • 프로그램의 제어 흐름 구조가 바뀌는 것
  • 일반적인 프로그램 흐름 구조 : 사용하는 쪽(개발자)에서 메서드(라이브러리) 호출
  • 역전된 프로그램 흐름 구조 : 기반이 되는 쪽(프레임워크)에서 사용하는 쪽의 메서드 호출
  • 즉, 어떠한 일을 하도록 프레임워크에 제어의 권한을 넘김으로써 개발자가 신경써야 할 것을 줄이는 전략
  • 프레임워크에 정의된 인터페이스, 추상타입을 개발자가 구현함으로써 객체를 프레임워크에 주입함(Dependency Injection, DI)

2) DI(Dependency Injection)

  • 의존성 주입
  • 클래스 사이의 의존 관계를 빈(Bean) 설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것

DI가 적용 안된 예 (개발자가 직업 인스턴스를 생성)

  class 엔진 {

  }

  class 자동차 {
       엔진 v5 = new 엔진();
  }

Spring에서 DI가 적용 된 예 (컨테이너가 v5 변수에 인스턴스를 할당해줌)

@Component
class 엔진 {
 
}
 
@Component
class 자동차 {
     @Autowired
     엔진 v5;
}

0개의 댓글

관련 채용 정보