Node.js Basics

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 명령어를 사용하여 실행합니다.

  1. 스크립트 파일 생성: hello.js 파일을 생성하고 다음 코드를 작성합니다.
   console.log('Hello, Node.js!');
  1. 터미널에서 실행: 다음 명령어를 사용하여 스크립트를 실행합니다.
   node hello.js
  1. 출력 확인: 터미널에 Hello, Node.js!가 출력됩니다.
REPL(Read-Eval-Print Loop)

REPL은 Node.js가 제공하는 대화형 콘솔로, JavaScript 코드를 입력하면 즉시 실행 결과를 확인할 수 있습니다.

  1. REPL 시작: 터미널에서 node 명령어를 입력합니다.
   node
  1. 코드 입력: REPL에서 JavaScript 코드를 입력하고 Enter를 누릅니다.
   > 1 + 1
   2
   > console.log('Hello, REPL!');
   Hello, REPL!
  1. REPL 종료: .exit를 입력하거나 Ctrl + C를 두 번 눌러 종료합니다.
   > .exit

모듈과 require/import

Node.js에서는 모듈 시스템을 사용하여 코드를 모듈화하고 재사용할 수 있습니다. 모듈은 독립적인 코드 단위로, 다른 파일이나 모듈에서 불러올 수 있습니다.

모듈 정의와 불러오기 (Defining and Requiring Modules)

모듈을 정의하려면, 해당 모듈에서 module.exports를 사용하여 내보낼 수 있습니다. 다른 파일에서 require를 사용하여 이 모듈을 불러올 수 있습니다.

  1. 모듈 정의: math.js 파일을 생성하고 다음 코드를 작성합니다.
   // math.js
   function add(a, b) {
     return a + b;
   }

   module.exports = { add };
  1. 모듈 불러오기: app.js 파일을 생성하고 math.js 모듈을 불러와 사용합니다.
   // app.js
   const math = require('./math');
   console.log(math.add(2, 3)); // Output: 5
ES6 import/export

Node.js는 ES6의 importexport 문법도 지원합니다. 이를 사용하려면 파일 확장자를 .mjs로 하거나 package.json에서 type: "module"을 설정해야 합니다.

  1. 모듈 정의: math.mjs 파일을 생성하고 다음 코드를 작성합니다.
   // math.mjs
   export function add(a, b) {
     return a + b;
   }
  1. 모듈 불러오기: app.mjs 파일을 생성하고 math.mjs 모듈을 불러와 사용합니다.
   // app.mjs
   import { add } from './math.mjs';
   console.log(add(2, 3)); // Output: 5
  1. 실행: 터미널에서 node 명령어를 사용하여 .mjs 파일을 실행합니다.
   node app.mjs

내장 모듈과 외부 모듈 사용 (Using Built-in and External Modules)

Node.js는 여러 유용한 내장 모듈을 제공하며, npm을 통해 외부 모듈을 설치하고 사용할 수 있습니다.

내장 모듈 사용 (Using Built-in Modules)

Node.js의 내장 모듈은 추가 설치 없이 바로 사용할 수 있습니다. 주요 내장 모듈로는 fs, http, path 등이 있습니다.

  1. 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를 설치하고 사용하는 방법입니다.

  1. npm 초기화: 프로젝트 디렉터리에서 npm init 명령어를 실행하여 package.json 파일을 생성합니다.
   npm init -y
  1. 모듈 설치: express 모듈을 설치합니다.
   npm install express
  1. 모듈 사용: 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를 사용하여 다양한 서버 사이드 애플리케이션을 효과적으로 개발할 수 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *