IoC : 제어의 역전
- 직접 객체를 생성하여 코드를 "제어"(관리)
- "역전" : 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것
- 역할과 관심을 분리해 응집도를 높이고 결합도를 낮추며, 이에 따라 변경에 유연한 코드를 작성할 수 있는 구조가 될 수 있다.
- 할리우드 법칙(Hollywood Principle) => "Don't call us, we'll call you."
DIP(Dependency Inversion Principle) : 의존 역전 원칙
- 상위 레벨의 모듈은 절대 하위 레벨의 모듈에 의존하지 않는다.
- 둘 다 추상화에 의존해야 한다.
IoC & DIP => 클래스 간 결합을 느슨히 하기 위함 => 애플리케이션을 지속 가능하고 확장성 있게 만든다.
IoC를 구현하는 방법 : Service Locator / Factory / Abstract Factory / Template Method / Strategy / Dependency Injection
DI(Dependency Injection) : 의존성 주입
- 클래스 간에 의존 관계가 있다는 것 => 한 클래스가 바뀔 때 다른 클래스가 영향을 받음
- 생성자 주입, Setter 주입, Interface 주입
- 의존성 분리 : DIP를 이용해 의존 관계를 분리시킨다.
Spring DI : 자동 주입
- 스프링 빈으로 등록되면 스프링이 자동으로 생성해주며, 이 때 필요한 의존성도 주입해준다.
- @Autowired => 생성자 주입, 필드 주입, Setter 주입
- @Qualifier
- @Primary
IoC는 원칙, DI는 IoC를 달성하는 디자인 패턴
'공부 기록 > 영상 후기' 카테고리의 다른 글
[10분 테코톡] 루피의 인증과 인가 (0) | 2023.05.05 |
---|---|
GPU는 어떻게 작동할까 (0) | 2023.05.05 |
CPU는 어떻게 작동할까? (0) | 2023.04.28 |
서브넷팅 보강 (0) | 2023.04.27 |
네트워크를 다시 또 내부로 자르는 서브넷팅 (0) | 2023.04.27 |