1.Ioc
1) IoC의 개념
IoC(제어권의 역전)이란, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는것을 의미한다.
제어권을 프레임워크의 컨테이너가 가지고 있다.
- IoC가 아닌경우 : 개발자가 new 통해 객체를 생성 관리한다.
- IoC인 경우 : 프레임워크의 컨테이너가 객체를 생성하여 개발자의 코드에 주입을 시켜준다.
2) IoC컨테이너
객체의 대한 생성 및 생성 주기를 관리한다.
- 객체의 생성을 책임지고, 의존관계를 관리해 준다.
- POJO의 생성, 초기화, 소멸에 대한 권한을 가진다.
- 개발자가 직접 POJO를 생성할수 있지만 컨테이너에게 맡긴다.
3) IoC의 분류
- DL(의존성 검색) : 특정 컨테이너에 종속된 API 사용(EJB, Spring), 저장소에 저장되어있는 Bean에 접근하기 위해 컨테이터가 제공하는 API를 이용하여 Bean을 Lookup 하는것
- DI(의존성 주입) : 주로 사용(Spring, PicoContainer), 각 클래스간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것
- DL 사용시 컨테이너 종속성이 증가하여, 주로 DI를 사용
2. DI
1) DI 개념
각 클래스간의 의존관계를 빈 설정(Bean Definition) 정보를 바탕으로 컨테이너가 자동으로 연결해주는 것을 말함
- 빈 설정파일에서 의존관계가 필요하다는 정보를 추가(xml or annotation)
- 실제 실행시에 컨테이너가 설정 정보를 읽어서 의존관계를 생성
- 컨테이너가 흐름의 주체가 되어 애플리케이션 코드에 의존관계를 주입해 주는것
- 장점 : 코드가 단순해지면 컨포넌트 간의 결합도가 제거
2) DI의 유형
- Setter Injection : setter 메서드를 만들고 이를 통해 의존성 주입
- Constructor Injection : 클래스의 생성자를 만들고 이를 통해 의존성 주입
- Method Injection : 일반 메서드를 만들고 이를 통해 의존성을 주입
3. Spring DI
1) Spring DI 컨테이너의 개념
Spring DI 컨테이너가 관리하는 객체를 빈(bean)이라고 하고, 이 빈(bean)을 관리한다는 의미로 컨테이너를 빈 팩토리(BeanFactory)라고 부름
- Bean Factory에 여러 가지 컨테이너 기능을 추가하여 애플리케이션 컨텍스(ApplicationContext)라고 부름
2) BeanFactory와 ApplicationContext
- BeanFactory : Beand을 등록, 생성, 조회 반환 관리, 이를 확장한 ApplicationContext를 사용
- ApplicationContext : BeanFactory기능에 추가적으로 Spring의 각종 부가서비스를 추가로 제공

'개발 기술 이야기 > spring' 카테고리의 다른 글
기본 스프링프로젝트 만들기 2/2 (0) | 2021.03.23 |
---|---|
기본 스프링프로젝트 만들기 1/2 (0) | 2021.03.23 |
[Spring 기본 - 4] jUnit와 Spring-Test (0) | 2021.03.22 |
[Spring 기본 - 2] 개발 툴 설명 (0) | 2021.02.24 |
[Spring 기본 - 1] Framework 정의 및 개념 (0) | 2021.02.24 |