[Spring] DI에 대한 나름의 이해

2023. 9. 14. 23:55Spring

depency injection은 의존관계를 주입해주는 것이다. 이를 통해 DIP를 해결할 수 있다.

DIP를 해결하려면 오직 인터페이스(역할)에만 의존하도록 해야 한다. 

어떤 구현체를 사용해야 할지는 기획자가 해주어야 한다.

AppConfig와 같은 기획자를 통해 생성자 주입을 하게 된다. 생성자 주입이란 생성자를 통해 구현체를 주입해주는 것이다. 주입은 기획자가 한다. 배우와 같은 구현체는 오직 자기가 해야 할 일(실행)만 하면 된다. 

 

AppConfig에는 역할이 메소드를 통해 나타나게 되고 구현체가 return 값을 통해 나타나도록 한다. 그렇다. 이렇게 하면 역할과 구현이 구분되어 보여진다.

 

이렇게 구현하게 되면 사용영역은 인터페이스에만 의존하기 때문에 DIP가 지켜지고 확장을 해도 클라이언트 코드를 변경하지 않아도 되기 때문에 OCP도 지키게 된다. AppConfig는 구성 영역이기 때문에 여기서 바뀌는 건 OCP를 위반에 해당하지 않는다.

 

다형성을 사용하고 DIP를 지키면 OCP도 지킬 수 있게 된다.

 

Reference


https://www.inflearn.com/course/lecture?courseSlug=%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8&unitId=55344 

 

학습 페이지

 

www.inflearn.com