Spring 컨테이너는 어떻게 설계되었는가
BeanFactory의 최소 계약부터 BeanDefinition, BeanPostProcessor, ApplicationContext 계층, PropertySource 우선순위, Resource 추상화까지 — 스프링 컨테이너를 관통하는 설계 철학을 추적한다.
총 8편 · 순서대로 읽기를 권장
BeanFactory의 최소 계약부터 BeanDefinition, BeanPostProcessor, ApplicationContext 계층, PropertySource 우선순위, Resource 추상화까지 — 스프링 컨테이너를 관통하는 설계 철학을 추적한다.
바이트코드 레벨 차이부터 3단계 순환 참조 캐시, @Qualifier 결정 알고리즘, ObjectProvider, @Lazy 프록시까지 — Spring DI 내부 설계의 일관된 원칙을 추적한다.
doCreateBean()의 8단계 생성 흐름부터 소멸 콜백의 역순 실행, 3단계 순환 참조 캐시, Scope Proxy의 생명주기 불일치 해결까지, Spring Bean의 전 생애를 추적한다.
JDK Proxy와 CGLIB의 바이트코드 차이부터 @Transactional·@Cacheable의 Interceptor 체인, private 메서드 함정과 성능 측정까지, 프록시 AOP의 설계 결정을 추적한다.
클래스패스 스캔 파이프라인의 시작인 ConfigurationClassPostProcessor부터 BeanDefinition 등록과 인덱스 최적화까지, Spring이 Bean 후보를 선별하는 전체 흐름을 추적한다.
Full Mode와 Lite Mode의 구분 기준부터 CGLIB 서브클래스 생성, BeanMethodInterceptor의 인터셉션, @Import의 3가지 처리 경로까지, Spring Core의 설정 메커니즘을 추적한다.
publishEvent() 내부 구조부터 @TransactionalEventListener의 트랜잭션 바인딩까지, Spring ApplicationEvent 메커니즘의 실행 흐름을 추적한다.
SpEL 파싱 파이프라인과 ${...}/#{...} 처리 경로의 차이부터 PropertyEditor·Converter·GenericConverter 세 계층의 협력 구조까지, Spring Core의 값 주입 철학을 추적한다.