스프링 프레임워크의 핵심 개념 중 하나로, 객체(Bean)의 생성, 관리, 소멸을 담당하는 역할을 한다.
→ Bean 객체의 라이프사이클을 관리하는 역할
객체(Bean)의 생성, 초기화, 의존성 주입(DI, Dependency Injection), 소멸을 관리
설정 파일(XML, Java Config)이나 애노테이션(@Component, @Bean 등) 을 통해 객체를 정의
스프링이 객체를 싱글톤(Singleton)으로 관리하여 효율적으로 재사용

Spring Container의 최상위 인터페이스
Spring Bean을 관리하고 조회한다.
BeanFactory의 확장된 형태(implements)
Application 개발에 필요한 다양한 기능을 추가적으로 제공 (AOP, 이벤트 리스너, 국제화(i18n) 지원, 리소스 조회 등)
애플리케이션에서 일반적으로 많이 사용
➡️ 컨테이너는 객체를 싱글톤으로 관리하여 효율적으로 애플리케이션을 실행
➡️ BeanFactory는 단순한 컨테이너, ApplicationContext는 확장 기능이 포함된 고급 컨테이너