[Spring] IoC와 DI

이열음·2022년 1월 31일
0
post-custom-banner

🌟 IoC와 DI

🎯IoC란?

프레임워크 자체에 제어 권한을 넘기는 전략입니다.
주로 개발자가 하던 객체 의존관계 제어역할을 프레임워크한테 넘김으로써
개발자는 큰 구조만 설계하고 세부적인 동작이나 호출을 신경쓰지 않을 수 있습니다. 추가적으로 객체 자체에 의존성을 직접적으로 명시하지 않으므로
유연한 유지보수또한 가능해진다는 장점을 가집니다.

스프링 안에서의 IoC를 예제로 들자면
스프링은 개발자가 생성한 객체를 관리 컨테이너가
개발자가 작성한 xml 설정에 따라 관리해주는 케이스를 들 수 있겠습니다.

정리하자면 프레임워크 내에 정의된 인터페이스나 추상타입을 상속받아 구현한 뒤
나머지는 너가 관리해주라~ 라고 하는게 IoC입니다.

🎯DI란?

DI란 의존성 주입을 의미합니다. 의존성을 가지고 있는 객체의 관계를 처리하기 위한 방법 중 하나인데, 의존적인 객체를 직접 생성하거나 제어하지 않고 앞서 말한 IoC를 통해
외부에서 주입하여 스프링 자체에서 실행합니다.

🎯IoC 컨테이너(스프링 컨테이너)란?

사람이 입력한 소스를 IoC 컨테이너가 받아서 사람대신 컴퓨터 안에서 동작해주고,
사람이 직접 작성하지 않은 객체의 생성과 소멸 또한 알아서 관리해주는 것입니다.
이렇게 IoC 컨테이너는 Bean을 관리하고 저장하기때문에 BeanFactory라고도 부른다고 합니다.

개인적인 감상으로는 개쩌는 개발자를 컴퓨터 안에 복사해놓은 듯 하네요.
짱 멋 져

🎯Bean이란?

컨테이너에서 생성, 관계설정 및 관리되는 객체를 통칭합니다.
Bean으로 등록하기 위해서는 설정 메타정보를 xml, annotation 등등으로 설정해줍니다.
이렇게 설정된 메타정보는 BeanDefinitionReader 인터페이스를 통해 BeanDefinition객체로 변환됩니다. 이 객체를 IoC Container가 받아서 DI작업을 수행하는 것입니다.

post-custom-banner

0개의 댓글