티스토리 뷰

TIL

[Spring Boot] IoC, DI, 컨테이너

호호홍얍얍 2022. 5. 23. 23:48

IoC

제어의 역전. 외부에서 제어의 흐름을 관리하는 것이다. 기존에는 클라이언트의 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고 연결하고 실행했다면, 제어의 역전을 적용한 후에는 구현 객체는 자신의 로직을 실행하는 역할만 담당하고, 외부에서 객체를 주입하여 프로그램의 흐름을 개발자가 아닌 외부에서 제어하는 것을 의미한다.

IoC는 어플리케이션 실행시점에 외부에서 실제 구현객체를 생성하고 클라이언트에 전달한다.

 

동적인 의존관계

import문을 통해 파악할 수 있는 정적인 의존관계가 아니라 어플리케이션 실행 시점에 생성된 객체 인스턴스의 참조가 연결된 의존관계이다. IoC가 객체를 주입해서 생성되는 관계라고 할 수 있다(DI).

 

컨테이너

컨테이너는 인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공하도록 하는 것이다.

  • BeanFactory: 빈을 등록/생성/조회/반환 등을 처리하는 빈을 관리해준다. getBean() 메서드로 빈을 인스턴스화한다.
  • ApplicationContext: BeanFactory의 확장 버전이다. 국제화가 지원되는 텍스트 관리, 이미지같은 파일 자원을 로드하는 관리 방법, 리스너로 등록된 빈에게 이벤트 발생을 알려주는 역할이 추가되었다. 모든 싱글톤 빈을 생성하여 어플리케이션 기동 후에는 지연 없이 객체를 얻을 수 있다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/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
글 보관함