내배캠 90일차

·2023년 2월 11일
0

내일배움캠프

목록 보기
98/142
post-thumbnail

IoC와 DI

IoC

IoC는 Inversion of Control의 준말로서 제어 역전

지금까지는 개발자가 사용하고 싶은 객체가 있으면 이것은 개발자가 생성부터 소멸까지 직접 관리해야 했습니다. 이렇게 직접 생성하면 의존하는 서비스가 변경되면 개발자도 그에 맞추어서 코드를 수정해야 합니다.

하지만, IoC는 개발자가 사용하고 싶은 객체를 직접 생성하는 것이 아니라 객체의 생명주기 관리 자체를 외부(여기서는 Nest.js IoC 컨테이너)에 위임을 합니다! 즉, 객체의 관리를 컨테이너에 맡겨서 제어권이 넘어갔기 때문에 IoC(제어 역전)라고 하는 것입니다.

IoC는 모듈 간 결합도를 낮추기 때문에 하나의 모듈이 변경되어도 다른 모듈들에는 영향을 최소화되어 웹 어플리케이션을 지속 가능하고 확장성 있게 해줍니다!

DI

DI는 이런 IoC를 수행하는 방법의 하나이며 Nest.js에서는 생성자를 통한 DI를 가장 기본적인 IoC 테크닉으로 생각하고 있습니다.

profile
개발자 꿈나무

0개의 댓글