Spring IoC 컨테이너는 객체의 생성과 의존성 주입을 관리하는 스프링 프레임워크의 핵심 요소이다.
IoC는 객체의 생성, 생명 주기 및 의존성 주입을 개발자가 아닌 프레임워크가 담당하는 것을 의미한다.
✅ 장점:
대표적인 IoC 구현 방식으로 DI(Dependency Injection, 의존성 주입)가 있다.

BeanFactory의 하위 인터페이스로, 더 많은 부가 기능을 제공key-value 형태로 빈을 저장 (key: 빈 이름, value: 실제 객체)💡 ApplicationContext는 객체를 미리 생성(Eager Loading)하므로 실행 속도가 빠르고, 대규모 애플리케이션에 적합
| 비교 항목 | BeanFactory | ApplicationContext |
|---|---|---|
| 객체 생성 시점 | 지연 로딩 (Lazy Loading) | 사전 로딩 (Eager Loading) |
| 메모리 사용 | 필요할 때만 객체 생성 (효율적) | 미리 객체 생성 (성능 최적화) |
| 부가 기능 | 기본적인 DI만 지원 | AOP, 트랜잭션 관리, 이벤트 리스너 등 지원 |
| 적합한 환경 | 메모리 최적화가 중요한 환경 (임베디드) | 일반적인 웹 애플리케이션 |
✅ BeanFactory → 메모리 효율이 중요할 때
✅ ApplicationContext → 성능이 중요한 일반적인 웹 애플리케이션
💡 일반적인 스프링 프로젝트에서는 ApplicationContext를 사용하는 것이 좋다! 🚀