개발공부일지
NodeJS - 의존성 주입(DI), 제어의 역전(IoC), Overring, overloading 본문
목차
1. 의존성 주입 (DI)
2. 제어의 역전(IoC)
3. 오버라이딩 (overriding)
4. 오버로딩 (overloading)
1. 의존성 주입 (DI)
- 자원을 효율적으로 사용하여 확장성 있게 코드를 작성할 수 있다.
- MVC 계층으로 코드를 작성할때 하나의 service를 여러개의 controller가 사용해야할 경우
- 똑같은 코드인 service를 n번 사용하게 되어 비효율적이므로
( 프로젝트했을때 board.controller, notice.controller 했던것처럼)
- class를 만들고 module.exports로 내보내고
- module 파일을 만들어서 인스턴스를 생성만을 모아둔다.
- 만들어둔 class의 인스턴스 생성을하면서 인자에 넣어 조립해준다.
- 그걸 다른 파일에서 불러와서 사용!
2. 제어의 역전(IoC)
- 제어를 module 파일에서 하고있는데 만약 인자를 추가해야하는 상황마다 주입을 해줘야하는데 실행하는곳에서 바로 작성해주는것을 말한다고한다.
배운뒤에 더 적기로한다.
3. 오버라이딩 (overriding)
class Controller {
name;
constructor(name) {
this.name = name;
}
print() {
// console.log(` controller call`);
throw new Error("자식클래스에서 먼저 구현하고 사용하기");
}
}
class AuthController extends Controller {
constructor() {
super();
}
// print() {
// console.log(`auth controller call`);
// }
}
class UserController extends Controller {
constructor() {
super();
}
}
const authController = new AuthController();
const userController = new UserController();
authController.print();
VM324:8 Uncaught Error: 자식클래스에서 먼저 구현하고 사용하기
at AuthController.print (<anonymous>:8:15)
at <anonymous>:29:16
4. 오버로딩 (overloading)
- express 사용하면서 적었던 코드로 app.use()를 예를 들수있다.
app.use();
// 인자값의 수가 고정되어었지않아
// 2가지 데이터타입 -> string, handler
app.use(string, handler);
app.use((req, res, next) => {
req.user = "guniee";
next();
});
app.use("/");
※ instanceof
- 객체가 특정 클래스의 인스턴스인지 여부를 확인하는 데 사용하는데 맞다면 true, 아니면 false를 반환해준다.
'NodeJS' 카테고리의 다른 글
NodeJS - RESTful API, 회원가입 (Front, Back 분리) (1) | 2023.10.20 |
---|---|
NodeJS - Server 분리 (Front, Back), CORS Error (1) | 2023.10.19 |
NodeJS - Database - JWT 사용해서 LOGIN 구현하기 ② (0) | 2023.09.25 |
NodeJS - Database - JWT 사용해서 LOGIN 구현하기 ① (0) | 2023.09.22 |
NodeJS - Cookie, Set-Cookie, cookie-parser, 암호화 (0) | 2023.09.21 |