
Module 캐싱Backend/Node.js2024. 12. 14. 23:52
Table of Contents
728x90
반응형
- Module 캐싱이란?
module에서 다른 module을 가져올 때 캐싱(caching)이 일어나게 된다.
module 하나를 여러 번 가져와 사용하더라도 module을 그때마다 새롭게 가져오지 않는다.
module을 한 번 가져와 사용하는 순간 캐싱이 되기 때문이다.
// request.js
const { read } = require("./response.js");
function encrypt(data) {
return "encrypted data";
}
function send(url, data) {
const encryptedData = encrypt(data);
console.log(`${encryptedData} is being sent to ${url}`);
}
module.exports = { send };
// response.js
function decrypt(data) {
return "decrypted data";
}
function read() {
return decrypt("data");
}
console.log("We are in the response module");
module.exports = { read, decrypt };
// https.js
const request = require("./request.js");
const response = require("./response.js");
function makeRequest(url, data) {
// 요청을 보내기
request.send(url, data);
// 복호화한 결과 데이터를 return 하기
return response.read();
}
const responseData = makeRequest("https://naver.com", "any data");
각각 response.js의 module을 request.js와 https.js로 가져왔을 때,
두 번 가져왔으니 콘솔에 "We are in the response module"이 두 번 찍혀야 할 것 같지만,
이미 한 번 load(module에 다른 module을 가져오는)한 것을 캐싱하고 있어 콘솔에 딱 한 번 찍히게 된다.
https.js에서 console.log(require.cache);를 해보면
이렇게 여러 가지 Module들이 나오는 것을 볼 수 있다.
이미 한 번이라도 다른 곳에서 가져다 사용한 module들은 loaded : true라고 뜨게 된다.
728x90
반응형
'Backend > Node.js' 카테고리의 다른 글
Node.js package 관리 (0) | 2024.12.15 |
---|---|
Index.js 파일 (0) | 2024.12.15 |
CommonJS와 ECMAScript module의 차이 (0) | 2024.12.14 |
module 생성하기 (0) | 2024.12.14 |
HTTP server 구축하기 (0) | 2024.12.14 |
@min' :: 개발을 하자
github : https://github.com/dnjfht
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!