IoC (Inversion of Control) 제어의 역전. 기존의 코드는 어플리케이션 코드에서 객체를 생성한다. 하지만 스프링 컨테이너는 객체의 생명주기를 컨테이너가 관리하고 주입시킨다. 어플리케이션 코드가 아닌 스프링 컨테이너가 객체를 관리하므로 제어의 권한이 역전되었다. 이를 IoC라고 한다. IoC를 하는 이유? 객체의 생명주기 관리를 프레임워크에게 위임 비즈니스 로직만 신경 쓸 수 있음 Bean 생명주기? 스프링 컨테이너 생성 -> Bean 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 종료 초기화 콜백 : 빈 의존관계 주입 후 호출 @PostConstruct로 메서드 위에 지정 가능. 의존관계 주입 후 실행 소멸전 콜백 : 빈이 소멸되기 직전 호출 @PreDes..