JavaBookStudy / JavaBook

책읽기 스터디
https://javabookstudy.github.io/
Apache License 2.0
19 stars 2 forks source link

[토비의 스프링] 1.7.1_SOLID의 DI와 스프링의 DI 차이 #71

Closed kjsu0209 closed 3 years ago

kjsu0209 commented 3 years ago

SOLID에서 Dependency Inversion(DI)와 스프링의 Dependency Injection 차이가 뭘까요? Dependency Inversion이 IoC의 개념이랑 동일하다고 볼 때, SOLID DI가 스프링 DI의 넓은 개념이라고 이해하면 될까요 👀

daebalprime commented 3 years ago

SOLID에서 의존성 역전의 원칙은 크게 2가지입니다.

  1. 상위 모듈은 하위 모듈에 의존하면 안된다.
  2. 추상화는 구체적인 사항에 의존해선 안된다. 객체지향 패러다임에서의 일종의 가이드라고 보시면 될 것 같습니다. 코드레벨에선 주로 인터페이스를 통해 그것을 구현한 객체를 이용하는 방식으로 수행됩니다.

반면에 의존성 주입은, IoC를 따르는 코드에서 의존관계를 동적으로 주입받는 행위를 이릅니다.

두 가지 내용이 얘기하는 것은 비슷한데..... 객체지향 디자인 원칙과 IoC에서 의존관계를 다루는 이야기라 같은 결은 아닌 것 같네요. 지난번 전략패턴 질문이 생각났습니다.

CS와 디자인패턴 마스터인 갓정수 선장님이 모르셔서 질문하신 것 같지는 않고 하꼬들 공부하라고 던져주신 이슈로 생각하겠습니다...👀👀