HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/
Spring
Spring
/
🎧
Spring Framework 핵심개념(Core)
/
🕢
IoC(Inversion of Control)
🕢

IoC(Inversion of Control)

IoC

notion image
  • 어떤 객체를 사용하는 객체가 그 객체를 직접 생성하는 것이 아닌 OrderContext라고 하는 객체(스프링 컨테이너)에서 생성을 다 해주고, 관계를 맺어주는 것을 해줌. 이것이 제어의 역전
  • 객체 생성, 객체 관계맺는 것에 대한 권한을 위임하는 것
  • OrderService에서도 어떠한 OrderRepository를 선택할지, 어떤 VoucherService를 생성할지 직접 하지 않음. OrderContext에서 다 알아서 해줌
  • IoC를 가능하게 하는 공간, 장소를 IoC 컨테이너. OrderContext가 일종의 IoC 컨테이너
    • 개별 객체들의 의존관계 설정이 이루어짐
    • 객체들의 생성과 파괴를 모두 관장함
    • IoC컨테이너에 이런 클래스 사용할 거다 라고 알려주면 객체화 시키면서 생성에 대한 필요한 의존관계를 맺어줌
  • 라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어하지만 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용됨. 프레임워크가 흐름을 주도하면서 개발자가 만든 애플리케이션 코드를 사용하는 것.