객체 지향 설계와 스프링 / 좋은 객체 지향 설계의 5가지 원칙(SOLID)
구현 코드에 객체 지향 원리를 적용하고, 기존 자바 코드를 스프링을 사용하는 코드로 전환(Spring Container)
스프링 컨테이너 생성 / 컨테이너에 등록된 모든 빈 조회 / 스프링 빈 조회 / BeanFactory와 ApplicationContext / 다양한 설정 형식 지원 - 자바 코드, XML / 스프링 빈 설정 메타 정보 - BeanDefinition
순수한 DI 컨테이너인 AppConfig의 객체 생성에 따른 메모리 낭비 문제를 해결하기 위해, 생성된 1개의 객체를 공유하는 Singleton Pattern 적용
컴포넌트 스캔 - 컴포넌트 스캔과 의존 관계 자동 주입 / 탐색 위치와 기본 스캔 대상 / 필터 / 중복 등록과 충돌