IoC 와 DI #30
Replies: 1 comment
1. IoC(제어의 역전)란 무엇인가요? 쉬운 말로 설명해주세요.IoC(Inversion of Control, 제어의 역전) 은 프로그램의 실행 흐름을 내가 직접 관리하지 않고, 외부에서 관리하도록 맡기는 것이다. 보통 우리가 직접 요리를 한다고 생각해보자. 내가 무엇을 언제 할지 전부 직접 결정한다. 그런데 식당에 가면 다르다. 나는 "김치찌개를 만들어 달라"고만, 실제 요리 과정은 식당이 관리한다. 이것이 IoC의 핵심적인 느낌이다. 프로그래밍에서는, 예를 들어 객체가 다른 객체를 필요로 한다고 해보자. IoC가 없다면:
IoC를 적용하면: 이제 객체를 만드는 제어권이 그리고 IoC를 구현하는 대표적인 방법이 DI(Dependency Injection, 의존성 주입)이다. 2. DI(의존성 주입)란 무엇이며, 우리가 직접 객체를 만들지 않고 Spring이 대신 넣어주면 뭐가 좋은가요?DI(Dependency Injection, 의존성 주입) 는 쉽게 말하면, 객체가 필요한 객체(의존성)를 직접 만들지 않고, 외부에서 만들어서 넣어주는 것이다. 앞에서 설명한 IoC(제어의 역전)를 구현하는 대표적인 방법이라고 볼 수 있다. DI가 없다면? 예를 들어 여기서는 를 사용해서 객체를 만든다. 즉, DI를 사용하면? 이제 여기서 이것이 의존성 주입(DI)이다. Spring을 사용하면 우리가 일일이 객체를 생성하고 연결할 필요가 줄어든다. 예를 들어: Spring이 애플리케이션을 실행하면서 필요한 객체를 관리하고, 해준다. 즉, 개발자는 " 핵심적인 장점은 결합도를 낮추고 유지보수와 테스트를 쉽게 만든다는 것이다.
3. IoC와 DI는 서로 어떤 관계인가요?IoC는 "제어권을 외부에 맡기는 개념"이고, DI는 "그렇게 제어권을 넘기기 위해 사용하는 방법"이다. [ IoC — 큰 개념 ] 원래 객체가 직접 다른 객체를 만들고 관리한다.
IoC를 적용하면 이 제어권을 외부로 넘긴다. [ DI — IoC를 구현하는 방법 ]
Spring에서는 이 역할을 Spring 컨테이너가 담당한다. DI 외에도 템플릿 메서드, 이벤트 기반 구조 등 제어 흐름을 외부 프레임워크가 결정하는 다양한 형태가 IoC에 포함될 수 있다. |
Uh oh!
There was an error while loading. Please reload this page.
📆 일자: 26년 8월 16일(일) : 일주일 미루어졌는데 어제 깜박해서 지금이라도 발제합니다.
🤔오늘의 질문
All reactions