Node.js의 모듈 시스템을 이해하고, 내장 모듈과 외부 모듈을 가져와 사용하는 방법을 학습합니다.
1. 모듈이란?
모듈의 정의
· 모듈은 특정 기능을 가진 코드의 집합으로, 재사용이 가능하도록 독립된 파일이나 코드 블록으로 분리된 것을 의미한다.
· 모듈화를 통해 코드의 가독성, 유지보수성, 재사용성을 높일 수 있다.
Node.js의 모듈 시스템
· Node.js는 CommonJS 모듈 시스템을 사용한다. 이는 각 파일을 모듈로 취급하고, require 함수와 module.exports 객체를 사용하여 모듈을 불러오고 내보낼 수 있도록 한다.
2. 내장 모듈과 외부 모듈
내장 모듈
· Node.js는 자주 사용하는 기능을 제공하는 여러 내장 모듈을 포함하고 있다. 대표적인 내장 모듈로는 fs(파일 시스템), http, path, os 등이 있다.
외부 모듈
· NPM(Node Package Manager)을 통해 설치할 수 있는 모듈로, 전 세계의 개발자들이 작성한 다양한 모듈을 프로젝트에 추가할 수 있다.
· 예를 들어, lodash, express, moment 등이 있다.
3. 모듈 가져오기와 사용법
내장 모듈 가져오기
3-1. require 함수를 사용하여 내장 모듈을 가져올 수 있다.
// 파일 시스템 모듈을 가져온다.
const fs = require('fs');
// HTTP 모듈을 가져온다.
const http = require('http');
내장 모듈 사용 예제
3-2. 파일 시스템 모듈 (fs) 사용 예제
const fs = require('fs');
// 파일 읽기
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});
// 파일 쓰기
fs.writeFile('example.txt', 'Hello Node.js', (err) => {
if (err) {
console.error(err);
return;
}
console.log('File written successfully');
});
3-3. HTTP 모듈 사용 예제
const http = require('http');
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello World\n');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server running at http://127.0.0.1:3000/');
});
외부 모듈 설치 및 사용
3-4. NPM을 사용하여 외부 모듈을 설치할 수 있다.
npm install lodash
3-5. 설치된 외부 모듈을 require 함수로 가져와 사용할 수 있다.
const _ = require('lodash');
const array = [1, 2, 3, 4, 5];
const reversedArray = _.reverse(array.slice()); // 원본 배열은 보호하면서 역순으로
console.log(reversedArray); // [5, 4, 3, 2, 1]
모듈 내보내기
3-6. 모듈을 정의하고, 다른 파일에서 사용할 수 있도록 내보낸다.
// math.js 파일
function add(a, b) {
return a + b;
}
function subtract(a, b) {
return a - b;
}
module.exports = { add, subtract };
3-7. 모듈 가져오기
내보낸 모듈을 다른 파일에서 가져와 사용한다.
// app.js 파일
const math = require('./math');
console.log(math.add(2, 3)); // 5
console.log(math.subtract(5, 2)); // 3
- 이전 수업 목록
'프로그래밍 > Node.js' 카테고리의 다른 글
[Node.js 강의 시리즈] 6강 - 파일 시스템 모듈 (fs) (0) | 2024.07.01 |
---|---|
[Node.js 강의 시리즈] 5강 - Node.js의 비동기 처리 (0) | 2024.06.28 |
[Node.js 강의 시리즈] 3강 - 첫 번째 Node.js 프로그램 (0) | 2024.06.26 |
[Node.js 강의 시리즈] 2강 - Node.js 설치 (Windows, macOS, Linux) (0) | 2024.06.25 |
[Node.js 강의 시리즈] 1강 - Node.js란? (초보자용 가이드) (0) | 2024.06.24 |