토비의 스프링 공부 중 적어두면 도움이 될 것 같아 작성해본다
빈 또는 빈 오브젝트
스프링이 IoC 방식으로 관리하는 오브젝트
스프링에서 만들어지는 모든 오브젝트가 다 빈은 아니다
스프링이 직접 생성과 제어를 담당하는 오브젝트만을 빈이라 부른다
스프링 IoC를 담당하는 핵심 컨테이너
빈을 등록, 생성, 조회, 반환, 부가적 빈 관리 등의 기능을 담당
보통은 애플리케이션 컨텍스트를 이용
BeanFactory를 붙여서 사용하면 빈 팩토리가 구현하는 가장 기본적인 인터페이스 이름이 된다
빈 팩토리를 확장한 IoC 컨테이너
기본적인 기능은 빈 팩토리와 비슷하지만, 스프링이 제공하는 각종 부가 서비스를 추가로 제공한다
빈 팩토리 - 주로 빈의 생성과 제어 관점
애플리케이션 컨텍스트 - 스프링이 제공하는 애플리케이션 지원 기능을 모두 포함
ApplicationContext라고 적으면 애플리케이션 컨텍스트가 구현해야 하는 기본 인터페이스를 가리킨다
ApplicationContext는 BeanFactory를 상속
애플리케이션 컨텍스트 또는 빈 팩토리가 IoC를 적용하기 위해 사용하는 메타정보
컨테이너의 어떤 기능을 세팅하거나 조정하는 경우에도 사용하나, 주로 IoC 컨테이너에 의해 관리되는 애플리케이션 오브젝트를 생성하고 구성할 때 사용
애플리케이션의 형상정보 또는 청사진으로 부른다
IoC 방식으로 빈을 관리한다는 의미로 애플리케이션 컨텍스트 또는 빈 팩토리를 컨테이너 또는 IoC 컨테이너라 한다
보통 컨테이너 또는 스프링 컨테이너는 애플리케이션 컨텍스트를 의미
컨테이너 자체가 IoC 개념을 담고 있음
애플리케이션 컨텍스트 오브젝트는 하나의 애플리케이션에서 보통 여러개가 만들어져서 사용
이를 통틀어서 스프링 컨테이너라고 부를 수 있다
'스프링에 빈을 등록' / 스프링 = 스프링 컨테이너 또는 애플리케이션 컨텍스트를 의미
스프링 프레임워크는 IoC 컨테이너, 애플리케이션 컨텍스트를 포함해 스프링이 제공하는 모든 기능을 통틀어 말할 때 주로 사용