Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- jest
- TypeScript
- Queue
- react
- MongoDB
- OCR
- nodejs
- typeORM
- 자료구조
- game
- Express
- JavaScript
- Python
- 공룡게임
- 정렬
- flask
- Dinosaur
- dfs
- GIT
- Nest.js
- nestjs
- cookie
- AWS
- Sequelize
- Bull
- MySQL
- 게임
- mongoose
- class
Archives
- Today
- Total
포시코딩
2월9일 - IoC와 DI - DIP 관련 작성중 본문
728x90
IoC
(Inversion of Control)
제어 역전. 이라는 뜻
class AppController {
appService;
constructor() {
this.appService = new AppService();
}
}
기존에는 위와 같이 사용하고 싶은 객체가 있으면 생성부터 소멸까지 직접 관리해야 됐었다.
이렇게 직접 생성하면 의존하는 서비스가 변경될 때 개발자도 그에 맞춰 코드를 수정해줘야 하는 번거로움이 있었다.
하지만 IoC는 개발자가 사용하고 싶은 객체를 직접 생성하는 것이 아니라
객체의 생명주기 관리 자체를 외부에 위임한다. ex) Nest.js IoC 컨테이너
즉, 객체의 관리를 컨테이너에 맡겨서 제어권이 넘어갔기 때문에 IoC(제어 역전)이라고 하는 것이다.
IoC는 모듈 간 결합도를 낮추기 때문에 하나의 모듈이 변경되어도 다른 모듈들에는 영향을 최소화되어
웹 어플리케이션을 지속 가능하고 확장성 있게 해준다.
DI
DI는 이러한 IoC를 수행하는 방법의 하나이며
Nest.js에서는 생성자를 통한 DI를 가장 기본적인 IoC 테크닉으로 생각하고 있다.
constructor(private readonly appService: AppService) {}
단 한줄로 끝나는 모습
SOLID 원칙의 DIP(의존 역전 원칙)
작성중
728x90
'TIL' 카테고리의 다른 글
2월12일 - JavaScript navigator.mediaDevices를 통한 카메라 제어 (0) | 2023.02.12 |
---|---|
2월10일 - JSDoc (0) | 2023.02.10 |
2월8일 - express에서 validation 다루기 (joi) (0) | 2023.02.09 |
2월6일 - Thuner Client에서 cookie 세팅하기 (0) | 2023.02.06 |
2월5일 - [CSS] 테이블 row에 마우스 오버 시 하이라이트 효과 주기 (0) | 2023.02.05 |