본문 바로가기

전체 글56

제어의 역전 (Inversion Of Control, IoC) 제어의 역전(IoC)이란? 프로그램의 흐름(객체의 생성, 소멸과 같은 생명주기 등)을 개발자(Application)가 직접 제어하는 것이 아니라 외부(프레임워크)에서 제어할 수 있도록 하는 것입니다. 이를 위해 Spring Framework에서는 Application을 구성하는 객체(Bean)를 관리하는 데에 IoC Container를 이용합니다. 이 IoC Container를 이용하여 DI, AOP가 가능해집니다. 💡 DI는 IoC를 구현하기 위한 디자인 패턴 중 하나입니다. 1. IoC의 구현 1-1. 프로그래머가 직접 제어하는 방식 public class SampleController { private Book book; public SampleController() { this.book = new.. 2022. 11. 2.
의존성 주입 (Dependency Injection, DI) 의존성 주입이란? 객체를 직접 생성하는 것이 아니라 외부에서 생성 및 주입하는 방식을 의미합니다. 이를 통해 각 모듈 간의 결합도는 낮아지고, 유연성은 높아지게 됩니다. 1. Spring에서의 의존성 주입 강한 결합 객체 내부에서 다른 객체를 생성하는 구조를 말합니다. A 클래스에서 B 객체를 생성하고, B 객체를 C 객체로 바꾸려면 A 클래스를 수정해야 하기 때문입니다. 느슨한 결합 외부에서 생성된 객체를 인터페이스를 통해 넘겨받는 구조를 말합니다. 이렇게 하면 결합도를 낮추고, 런타임 시 의존 관계가 결정되기 때문에 유연한 구조를 가지게 됩니다. 이 때, SOLID 원칙 중 Open Closed Principle을 지키기 위해 전략 패턴(생성자 주입)을 사용합니다. 여기서 생성자 주입의 종류로는, F.. 2022. 10. 23.