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를 사용하여 다양한 서버 사이드 애플리케이션을 효과적으로 개발할 수 있습니다.