-
[Spring Framework] 스프링 IOC란?백엔드/Spring 2020. 11. 14. 21:24
Spring IOC
IOC란 제어권의 역전이라는 뜻으로, 객체의 생성 생명주기의 관리까지
모든 객체에 대한 제어권이 바뀌었다는 것을 말합니다.
일반적으로 객체를 생성 및 제거를 하는 것은
비용이 매우 많이 들게 됩니다.
이에 따라서 스프링 컨테이너에서
IOC를 구현해주어 자주 사용하는 객체를 제어합니다.
IOC 컨테이너의 특징
스프링 프레임워크도 객체에 대한 생성 및 생명주기를 관리할 수 있는 기능을 제공하고 있습니다.
1. IOC 컨테이너는 객체의 생성을 책임지고, 의존성을 관리한다.
2. POJO의 생성, 초기화, 서비스, 소멸에 대한 권한을 가진다.
3. 개발자들이 직접 POJO를 생성할 수 있지만, 컨테이너에게 맡긴다.
IOC의 분류
DL은 Dependency LookUp이라는 뜻으로
클라이언트가 서버에게 자원을 요청할때, 찾는 행위로
객체의 아이디 및 타입을 통해서, Look up 해주는 것을 말합니다.
DI는 Dependency Injection이라는 뜻으로
클라이언트가 서버에게 요청한 자원을, 조립할때
클래스 A가 클래스 B를 조립하여 가지고 있어야 하는 경우
객체를 주입을 해줘야 하는데, 이와 같은 행위를 DI라고 합니다.
정리하라면
DL : 저장소에 저장되어 있는 Bean에 접근하기 위해서, 컨테이너가 제공하는 API를 사용하여 Bean을 Look Up하는 것을 말합니다.
DI : 각 클래스간의 의존관계를 빈 설정(XML 파일) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것을 말합니다
IOC 주요 용어
1. Managed Bean
스프링 컨테이너에서 관리하는 객체를 말합니다
스프링 설정 파일에서 등록되어서 사용되며
자동 등록 기능 사용이 가능합니다. (component autoScan, autowired..)
2. Spring Container
관리되어지는 (managed) 객체 들이 모여있는 곳을 말합니다.
IOC 컨테이너로서 Application Context 클래스로 구현됩니다.
(Spring의 Application Context는 실제 객체들을 관리하는 클래스입니다)
※ 본 글은 개인 포트폴리오 혹은 공부용으로 사용하기 때문에, 무단 복사 유포는 금지하지만, 개인 공부 용도로는 얼마든지 사용하셔도 좋습니다
반응형'백엔드 > Spring' 카테고리의 다른 글
[Spring Framework] Layered Architecture (0) 2020.11.16 [Spring Framework] DI란 무엇인가? (1) 2020.11.16 [Spring Framework] 스프링과 메이븐 (0) 2020.11.10 [Spring Framework] 스프링 프레임워크란 무엇인가? - 개요 (0) 2020.11.10