Spring (3) 썸네일형 리스트형 [Spring] 스프링 컨테이너에 대하여 알아보자. IOC 컨테이너? DI 컨테이너란?AppConfig처럼 객체를 생성, 관리, 의존관계를 연결해 주는 것을 IoC 또는 DI 컨테이너라고 한다.IOC 컨테이너라고도 불리기도 하는데, 최근에는 의존관계 주입에 초점을 맞추어서 주로 DI 컨테이너라고 한다. 또는 어셈블러나 오브젝트 팩토리라고도 부른다.스프링 컨테이너의 생성 과정//스프링 컨테이너 생성ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);ApplicationContext를 스프링 컨테이너라고 하며, ApplicationContext는 인터페이스이다.ApplicationContext의 구현체ClassPathXmlApplicati.. [Spring] DI란? DI(Dependency Injection), 의존관계 주입의존관계는 정적인 클래스 의존 관계와, 실행 시점에서 결정되는 동적인 객체(인스턴스) 두 가지를 분리하여 생각해야 한다.클래스 의존 관계정적인 의존관계는 애플리케이션을 실행하지 않고 클래스가 사용하는 import 코드만 보아도 판단이 가능하다. 위의 클래스 다이어그램을 살펴보면, OrderService의 구현 객체인 OrderServiceImpl은 인터페이스 MemberRepository와 DiscountPolicy를 의존한다는 것을 알 수 있다.하지만 이런 클래스 의존관계만으로는 실제 어떤 객체가 OrderServiceImpl에 주입되는지 알 수 없다.객체 의존 관계동적인 객체(인스턴스) 의존 관계: 애플리케이션 실행 시점에 실제 생성된 객체 .. [Spring] IOC란? IOC, 제어의 역전이란 무엇인가.과거에는 클라이언트 구현 객체가 스스로 필요한 구현 객체를 생성해서 연결하고 실행하는, 즉 개발자가 직접 객체 간의 의존관계를 직접 설정하고, new 키워드를 통해 객체를 생성하고 연결했다. 이러한 구조는 구현체에 강하게 결합되어 DIP를 위반한다. IoC란, 객체의 생성과 그 객체에 대한 의존성 관리(주입)에 대한 제어권을 개발자가 아니라, 프레임워크(예: 스프링 컨테이너)가 가져가는 구조를 말한다. 하지만 IoC 컨테이너(DI 컨테이너)를 사용하면 개발자는 단순히 자신의 비즈니스 로직에만 집중하고, 객체 생성이나 의존성 주입 등의 책임은 AppConfig 같은 설정 파일이나 애노테이션 기반 설정에 위임한다.이렇게 제어의 흐름이 개발자 → 외부(프레임워크)로 넘어가는 .. 이전 1 다음