티스토리 뷰

면접 질문

[면접준비] IOC / DI

lkh's 2019. 3. 8. 12:50


1. IOC /DI


작업을 수행하는 쪽에서 객체를 직접 생성하는 것이 아닌, 주입받는 방식을 통해 제어 흐름 구조를 바꾸는 것을 의미한다. 즉, 모든 종류의 작업을 사용하는 쪽에서 제어하는 

구조이다. 의존성을 주입하는 방식에는 아래 두가지가 존재한다.


 - DL (Dependency Lookup) : 의존성 검색

    저장소에 저장되어 있는 Bean에 접근하기 위해 개발자들이 컨테이너에서 제공하는 API를 이용해서 Bean을 검색하는 방식


 - DI (Dependency Injection) : 의존성 주입

    : 클래스에서 필요한 의존 객체를 컨테이너가 자동으로 제공해주는 방식

    : Bean 설정 정보를 바탕으로 컨테이너가 자동으로 연결해주는 방식 (DL의 컨테이너 의존성을 줄인 방식)

   : DI 기반으로 개발을 하면 특정 인터페이스 규격만 맞추면 다양한 형태의 결과 생성 가능


2. IOC 용어


Bean : Spring이 제공하는 Container를 통해서 관리되는 인스턴스

 

Bean Factory : 스프링 IOC를 담당하는 컨테이너

 - Bean 등록, 생성, 조회, 반환, 관리 담당 Bean Factory를 바로 사용하지 않고 이를 확장한 application context 를 이용


Application context : Bean Factory를 확장한 IOC 컨테이너 (Bean Factory보다 부가 기능 제공)


Configuration metadata : application context, bean factory 가 Bean 생성하고, 주입하는데 필요한 설정 정보를 보유


Container : IOC 방식으로 Bean을 관리하는 의미에서 Bean Factory, application context를 의미

 - 객체를 관리하는 컨테이너, 컨테이너에서 객체를 담아 두고, 필요할 때 컨테이너로부터 객체를 가져와 사용할 수 있음


3. 의존성을 주입하는 방식


@Autowired, @Resource, property 비교 (https://lkhlkh23.tistory.com/72)



'면접 질문' 카테고리의 다른 글

[면접준비] HTTP, HTTPS, SSL  (0) 2019.03.09
[면접준비] JPA  (0) 2019.03.09
[면접준비] 스프링 정의  (0) 2019.03.08
[면접 준비] AOP  (0) 2019.03.08
[면접준비] TDD, Cookie & Session, OneToMany, public static void main()  (0) 2019.02.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/01   »
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
글 보관함