Node.js 기초 (Node.js Basics)
Node.js는 JavaScript를 서버 사이드에서 실행할 수 있게 해주는 런타임 환경입니다. 이 문서에서는 Node.js의 기본적인 실행 방법, REPL(Read-Eval-Print Loop), 모듈 시스템, 내장 모듈 및 외부 모듈의 사용, 파일 시스템 접근 등에 대해 소개하고 상세히 설명합니다.
Node.js 실행 방법과 REPL(Read-Eval-Print Loop)
Node.js는 다양한 방식으로 JavaScript 코드를 실행할 수 있습니다. 가장 기본적인 방법은 터미널에서 스크립트를 실행하거나 REPL을 사용하는 것입니다.
Node.js 스크립트 실행 (Running Node.js Scripts)
Node.js 스크립트를 실행하려면, .js 파일을 생성한 후 터미널에서 node 명령어를 사용하여 실행합니다.
- 스크립트 파일 생성:
hello.js파일을 생성하고 다음 코드를 작성합니다.
console.log('Hello, Node.js!');
- 터미널에서 실행: 다음 명령어를 사용하여 스크립트를 실행합니다.
node hello.js
- 출력 확인: 터미널에
Hello, Node.js!가 출력됩니다.
REPL(Read-Eval-Print Loop)
REPL은 Node.js가 제공하는 대화형 콘솔로, JavaScript 코드를 입력하면 즉시 실행 결과를 확인할 수 있습니다.
- REPL 시작: 터미널에서
node명령어를 입력합니다.
node
- 코드 입력: REPL에서 JavaScript 코드를 입력하고 Enter를 누릅니다.
> 1 + 1
2
> console.log('Hello, REPL!');
Hello, REPL!
- REPL 종료:
.exit를 입력하거나Ctrl + C를 두 번 눌러 종료합니다.
> .exit
모듈과 require/import
Node.js에서는 모듈 시스템을 사용하여 코드를 모듈화하고 재사용할 수 있습니다. 모듈은 독립적인 코드 단위로, 다른 파일이나 모듈에서 불러올 수 있습니다.
모듈 정의와 불러오기 (Defining and Requiring Modules)
모듈을 정의하려면, 해당 모듈에서 module.exports를 사용하여 내보낼 수 있습니다. 다른 파일에서 require를 사용하여 이 모듈을 불러올 수 있습니다.
- 모듈 정의:
math.js파일을 생성하고 다음 코드를 작성합니다.
// math.js
function add(a, b) {
return a + b;
}
module.exports = { add };
- 모듈 불러오기:
app.js파일을 생성하고math.js모듈을 불러와 사용합니다.
// app.js
const math = require('./math');
console.log(math.add(2, 3)); // Output: 5
ES6 import/export
Node.js는 ES6의 import와 export 문법도 지원합니다. 이를 사용하려면 파일 확장자를 .mjs로 하거나 package.json에서 type: "module"을 설정해야 합니다.
- 모듈 정의:
math.mjs파일을 생성하고 다음 코드를 작성합니다.
// math.mjs
export function add(a, b) {
return a + b;
}
- 모듈 불러오기:
app.mjs파일을 생성하고math.mjs모듈을 불러와 사용합니다.
// app.mjs
import { add } from './math.mjs';
console.log(add(2, 3)); // Output: 5
- 실행: 터미널에서
node명령어를 사용하여.mjs파일을 실행합니다.
node app.mjs
내장 모듈과 외부 모듈 사용 (Using Built-in and External Modules)
Node.js는 여러 유용한 내장 모듈을 제공하며, npm을 통해 외부 모듈을 설치하고 사용할 수 있습니다.
내장 모듈 사용 (Using Built-in Modules)
Node.js의 내장 모듈은 추가 설치 없이 바로 사용할 수 있습니다. 주요 내장 모듈로는 fs, http, path 등이 있습니다.
- fs 모듈 사용 예제:
fs모듈을 사용하여 파일을 읽고 쓰는 예제입니다.
const fs = require('fs');
// 파일 읽기
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
// 파일 쓰기
fs.writeFile('example.txt', 'Hello, Node.js!', (err) => {
if (err) throw err;
console.log('File written successfully');
});
외부 모듈 사용 (Using External Modules)
외부 모듈은 npm을 사용하여 설치하고 사용할 수 있습니다. 예를 들어, 인기 있는 웹 프레임워크인 express를 설치하고 사용하는 방법입니다.
- npm 초기화: 프로젝트 디렉터리에서
npm init명령어를 실행하여package.json파일을 생성합니다.
npm init -y
- 모듈 설치:
express모듈을 설치합니다.
npm install express
- 모듈 사용:
express를 사용하여 간단한 웹 서버를 설정합니다.
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, Express!');
});
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
파일 시스템 접근 (fs 모듈) (File System Access with fs Module)
Node.js의 fs 모듈을 사용하면 파일 시스템에 접근하여 파일을 읽고 쓰거나 수정할 수 있습니다.
파일 읽기 (Reading Files)
fs.readFile 메서드를 사용하여 파일을 비동기적으로 읽을 수 있습니다.
const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
파일 쓰기 (Writing Files)
fs.writeFile 메서드를 사용하여 파일에 데이터를 비동기적으로 쓸 수 있습니다.
const fs = require('fs');
fs.writeFile('example.txt', 'Hello, Node.js!', (err) => {
if (err) throw err;
console.log('File written successfully');
});
파일 추가 (Appending Files)
fs.appendFile 메서드를 사용하여 파일에 데이터를 추가할 수 있습니다.
const fs = require('fs');
fs.appendFile('example.txt', '\nAppended text', (err) => {
if (err) throw err;
console.log('File appended successfully');
});
파일 삭제 (Deleting Files)
fs.unlink 메서드를 사용하여 파일을 삭제할 수 있습니다.
const fs = require('fs');
fs.unlink('example.txt', (err) => {
if (err) throw err;
console.log('File deleted successfully');
});
이로써 Node.js의 기본 개념, 모듈 시스템, 내장 및 외부 모듈 사용, 그리고 파일 시스템 접근 방법에 대해 상세히 설명하였습니다. 이러한 기본 개념들을 이해하고 활용하면, Node.js를 사용하여 다양한 서버 사이드 애플리케이션을 효과적으로 개발할 수 있습니다.
