모듈
Node.js에서 module은 필요한 함수들의 집합을 의미한다. 사용하고자 하는 모든 기능을 다 자신이 처음부터 만들어서 사용할 수는 없다. 그래서 누군가가 이미 만들어 놓은 모듈을 이용해서 사용하면 된다.node.js에서 제공해주는 많은 모듈들을 손쉽게 사용할 수 있다. 모듈을 가져와서 사용할 떄는 require 메서드를 이용해서 다른 모듈을 가져올 수 있다.
모듈 종류
1. Core Module
2. Local Module
3. Thire Party Module
모듈을 불러오는 법
const module = require("module_name");
require() 함수를 이용해서 자바스크립트 파일을 읽고 그 파일을 실행시켜 객체를 반환한다. 이렇게 모듈을 가져와서 변수 또는 상수에 할당해서 사용할 수 있다.
Core Module
core module (built-in module)은 Node.js에서 기본적으로 제공하는 모듈을 의미한다.
http: http 모듈은 Node.js http 서버를 생성하기 위한 클래스, 메서드, 이벤트를 포함한다.
url: url 모듈에는 URL 확인 및 구문 분석을 위한 메서드가 포함되어 있다.
querystring: querystring 모듈에는 쿼리 문자열을 처리하는 메서드가 포함되어 있다.
path: path 모듈에는 파일 경로를 처리하는 메서드가 포함되어 있다.
fs: fs 모듈에는 파일 I/O 작업을 위한 클래스, 메서드 및 이벤트가 포함되어 있다.
util: util 모듈에는 프로그래머에게 유용한 유틸리티 기능이 포함되어 있다.
Node.js의 코어 모듈은 위에 적어둔 것 이외에, 더 많은 모듈이 존재한다.
Local Module
로컬 모듈은 Node.js 애플리케이션에서 로컬로 생성된 모듈이다. 이러한 모듈은 별도의 파일과 폴더에 애플리케이션의 다양한 기능을 포함한다. Node.js 커뮤니티에서 사용할 수 있도록 패키지로 만들어 NPM을 통해 배포할 수도 있다. 예를 들어 MongoDB애 연결하고 데이터를 가져와야 하는 경우 어플리케이션에서 재사용할 수 있는 모듈을 생성할 수 있다. (직접 만들어서 쓰는 경우)
// log.js
const log = {
info: function(info) {
console.log('info: '+ info);
},
warning: function(warning) {
console.log('warning: '+ warning);
},
error: function(error) {
console.log('error: '+ error);
}
}
module.exports = log;
// module.exports는 다른 파일로 내보내준다.
// test.js
const myLog = require('./log.js');
myLog.info('Node.js started');
// info: Node.js started
Third Party Module
Third Party Module은 NPM(Node Package Manager)을 사용하여 온라인에서 사용할 수 있는 모듈이다. 이러한 모듈은 프로젝트 폴더에 설치하거나 전역적으로 설치할 수 있다. 인기 있는 타사 모듈 중 일부는 mongoose, express이다.
모듈 캐싱
모듈은 처음 로딩 될때 캐싱된다. 한번만 로딩이 되어 여러 번 호출 한다해도 반환되는 모듈은 항상 동일하다.
모듈 시스템에서의 중요한 개념 중 하나는 모듈은 기본적으로 한 번만 로드되고 실행된다는 것이다.
이는 여러 번 모듈을 불러와 사용하더라도 해당 모듈은 최초 호출 시에만 로드되고 실행된다는 것을 의미한다.
모듈에서 다른 모듈을 가져올 때(load) ECMAScript 모듈을 사용하든지 CommonJS 모듈을 사용하든지 해당 모듈을 캐싱하게 된다.
console.log(require.cache); // 캐싱된 것을 확인할 수 있다.
'NODE.JS' 카테고리의 다른 글
[Node.js] 모듈을 사용하는 이유와 모듈 생성해보기 (0) | 2024.01.15 |
---|---|
[Node.js] 기초 http 서버 구축해보기 (0) | 2024.01.15 |
[Node.js] Event Emitter (0) | 2024.01.12 |
[Node.js] setImmediate()과 setTimeout(), 그리고 process.NextTick() (0) | 2024.01.12 |
[Node.js] Event Loop Phase 더 알아보기 (0) | 2024.01.12 |
모듈
Node.js에서 module은 필요한 함수들의 집합을 의미한다. 사용하고자 하는 모든 기능을 다 자신이 처음부터 만들어서 사용할 수는 없다. 그래서 누군가가 이미 만들어 놓은 모듈을 이용해서 사용하면 된다.node.js에서 제공해주는 많은 모듈들을 손쉽게 사용할 수 있다. 모듈을 가져와서 사용할 떄는 require 메서드를 이용해서 다른 모듈을 가져올 수 있다.
모듈 종류
1. Core Module
2. Local Module
3. Thire Party Module
모듈을 불러오는 법
const module = require("module_name");
require() 함수를 이용해서 자바스크립트 파일을 읽고 그 파일을 실행시켜 객체를 반환한다. 이렇게 모듈을 가져와서 변수 또는 상수에 할당해서 사용할 수 있다.
Core Module
core module (built-in module)은 Node.js에서 기본적으로 제공하는 모듈을 의미한다.
http: http 모듈은 Node.js http 서버를 생성하기 위한 클래스, 메서드, 이벤트를 포함한다.
url: url 모듈에는 URL 확인 및 구문 분석을 위한 메서드가 포함되어 있다.
querystring: querystring 모듈에는 쿼리 문자열을 처리하는 메서드가 포함되어 있다.
path: path 모듈에는 파일 경로를 처리하는 메서드가 포함되어 있다.
fs: fs 모듈에는 파일 I/O 작업을 위한 클래스, 메서드 및 이벤트가 포함되어 있다.
util: util 모듈에는 프로그래머에게 유용한 유틸리티 기능이 포함되어 있다.
Node.js의 코어 모듈은 위에 적어둔 것 이외에, 더 많은 모듈이 존재한다.
Local Module
로컬 모듈은 Node.js 애플리케이션에서 로컬로 생성된 모듈이다. 이러한 모듈은 별도의 파일과 폴더에 애플리케이션의 다양한 기능을 포함한다. Node.js 커뮤니티에서 사용할 수 있도록 패키지로 만들어 NPM을 통해 배포할 수도 있다. 예를 들어 MongoDB애 연결하고 데이터를 가져와야 하는 경우 어플리케이션에서 재사용할 수 있는 모듈을 생성할 수 있다. (직접 만들어서 쓰는 경우)
// log.js
const log = {
info: function(info) {
console.log('info: '+ info);
},
warning: function(warning) {
console.log('warning: '+ warning);
},
error: function(error) {
console.log('error: '+ error);
}
}
module.exports = log;
// module.exports는 다른 파일로 내보내준다.
// test.js
const myLog = require('./log.js');
myLog.info('Node.js started');
// info: Node.js started
Third Party Module
Third Party Module은 NPM(Node Package Manager)을 사용하여 온라인에서 사용할 수 있는 모듈이다. 이러한 모듈은 프로젝트 폴더에 설치하거나 전역적으로 설치할 수 있다. 인기 있는 타사 모듈 중 일부는 mongoose, express이다.
모듈 캐싱
모듈은 처음 로딩 될때 캐싱된다. 한번만 로딩이 되어 여러 번 호출 한다해도 반환되는 모듈은 항상 동일하다.
모듈 시스템에서의 중요한 개념 중 하나는 모듈은 기본적으로 한 번만 로드되고 실행된다는 것이다.
이는 여러 번 모듈을 불러와 사용하더라도 해당 모듈은 최초 호출 시에만 로드되고 실행된다는 것을 의미한다.
모듈에서 다른 모듈을 가져올 때(load) ECMAScript 모듈을 사용하든지 CommonJS 모듈을 사용하든지 해당 모듈을 캐싱하게 된다.
console.log(require.cache); // 캐싱된 것을 확인할 수 있다.
'NODE.JS' 카테고리의 다른 글
[Node.js] 모듈을 사용하는 이유와 모듈 생성해보기 (0) | 2024.01.15 |
---|---|
[Node.js] 기초 http 서버 구축해보기 (0) | 2024.01.15 |
[Node.js] Event Emitter (0) | 2024.01.12 |
[Node.js] setImmediate()과 setTimeout(), 그리고 process.NextTick() (0) | 2024.01.12 |
[Node.js] Event Loop Phase 더 알아보기 (0) | 2024.01.12 |