[내배캠 Spring TIL] IoC와 DI 썸네일

[내배캠 Spring TIL] IoC와 DI

IoC
DI
2024년 8월 14일

DI(Dependency Injection) #

의존성 주입(Dependency Injection, DI)은 클래스나 컴포넌트가 직접적인 의존성을 생성하거나 관리하지 않고, 외부에서 필요한 의존성을 주입받는 설계 패턴이다.

의존성 #

클래스가 기능을 수행하기 위해 필요로 하는 외부 자원이나 객체.

주입 #

필요한 의존성을 외부에서 제공(주입)하는 행위.

주입하는 법에는 크게 두가지가 있다.

생성자 주입 #

객체의 생성자에서 의존성을 주입받는 방법.

public class Service {
    private final Repository repository;

    public Service(Repository repository) {
        this.repository = repository;
    }
}

세터 주입 #

세터 메서드를 통해 의존성을 주입받는 방법.

public class Service {
    private Repository repository;

    public void setRepository(Repository repository) {
        this.repository = repository;
    }
}

Inversion of Control(IoC) #

만약 의존성을 주입받지 않고 내부에서 객체를 생성한다고 해보자. 그러면 객체가 변경될 때 내부 코드도 함께 변경되게 된다. Service -> Repository 순서로 제어된다.

DI릃 활용해 외부에서 의존성을 주입받게 되면 Service <- Repository 순서로 제어가 역전되게 된다. 이를 IoC라고 부른다.


최근 게시물

김진근 • © 2025