제어 역전(IoC)과 의존성 주입(DI)

Uhan33·2024년 3월 8일
0

TIL

목록 보기
43/72

오늘은 제어 역전과 의존성 주입에 대해 정리해보려 한다.

제어 역전 (IoC)

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

IoC 원칙을 사용하면, AppController는 AppService의 구체적인 구현보다는 인터페이스나 추상 클래스에 의존하게 된다. 즉, 서비스 자체가 변경되어도 관계 없이 사용할 수 있다는 뜻.

이로 인해 코드의 결합도가 감소하고, 다른 구현체로 쉽게 교체할 수 있게 된다.

의존성 주입(DI)

constructor(private readonly appService: AppService) {}

위의 코드는 Nest.js에서 제공하는 의존성 주입 (Dependency Injection, DI) 메커니즘을 사용하여 AppService를 AppController에 주입하는 예시이다.

constructor(private readonly appService: AppService)에서, AppService의 인스턴스는 Nest.js의 DI 컨테이너에 의해 생성되고 관리된다.
따라서, 개발자는 직접 new AppService()와 같이 객체를 생성하거나 관리할 필요가 없게 되고, 이는 코드의 결합도를 낮추고, 유연성과 테스트 용이성을 향상시킨다.

0개의 댓글