[NodeJS] 1장 Node.js의 탄생

 

2009년 5월 27일 라이언 라인하트 달(Ryan Linenhart Dahl)은 크로스플랫폼 오픈소스 자바스크립트 런타입 환경으로 윈도우, 리눅스, macOS를 지원하는 Node.js를 발표합니다. 자바스크립트 V8 엔진을 지원하며, 웹 브라우저 바깥에서 자바스크립트 코드를 실행할 수 있게 되었습니다.

 

Node.js는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임 환경으로 주로 서버 사이드 애플리케이션 개발에 사용되고, 비동기 I/O와 이벤트 기반 아키텍처를 통한 높은 성능과 확장성을 제공합니다.

 

Node.js는 현재까지도 업데이트와 유지보수가 진행중이며 파이썬으로 만든 트위스티드, 펄로 만들 펄 객체 환경, 루비로 만든 이벤트 머신과 용도가 비슷하게 사용됩니다. Node.js는 버전별 출시 및 관리를 규칙적인 주기를 가지고 이루어져 있으며 v4 버전 이후로 약 6개월 주기로 새로운 버전을 출시하고 있습니다.

 

Node.js의 장단점

 

Node.js의 장점

  • 비동기 I/O: 비동기 방식으로 I/O 작업을 처리해 블로킹이 발생하지 않고 높은 성능 유지
  • 이벤트 기반 아키텍쳐: 이벤트 드리블 방식으로 동작해 많은 수의 동시 연결을 효율적으로 처리함
  • 크로스 플랫폼: Windows, macOS, Linux 등 다양한 운영체제에서 실행 가능
  • NPM(Node Package Manager): 방대한 양의 오픈 소스 라이브러리와 패키지를 제공해 개발 생산성을 높임
  • 단일 언어 사용: 클라이언트와 서버 모두 Javascript를 사용해 개발 생산성을 높이고 코드 재사용에 용이

Node.js의 단점

  • 단일 스레드 모델: CPU 집약적인 작업에 적합하지 않을 수 있고, 멀티 스레드 처리가 필요할 경우 추가적인 설정이 필요
  • 콜백 지옥(Callback Hell): 비동기 코드의 중첩으로 인한 코드 가독성이 떨어짐, (Promise 나 async/awiat로 대체)
  • 에러 처리: 단일 스레드로 인한 에러 발생 시 전체 애플리케이션 중단 가능성
  • 상대적으로 젊은 생태계: 몇몇 라이브러리와 도구들에 성능 저하 의심

Node.js 설치하기

 

Node.js — 어디서든 JavaScript를 실행하세요

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

먼저 Node.js 공식홈페이지에서 Node.js를 설치해 줍니다. OS별 설치법은 아래와 같습니다.

  • macOS: brew install node
  • Linux/Ubuntu: sudo apt-get install nodejs npm
  • Windows: Chocolatey를 사용한 choco install nodejs

다음 코드를 이용해  Node.js 폴더 생성과 node.js 프로젝트를 세팅해줍니다.

mkdir nodejs-temple
cd nodejs-temple

 

다음은 node.js를 세팅할 package.json 파일을 만들어줍니다.

npm init -y

 

그 다음 폴더에 index.js 파일 하나를 만들어주고 아래 코드를 입력해줍니다.

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(8500, "127.0.0.1", () => {
  console.log("Server running at http://127.0.0.1:8500/");
});

 

다음 아래 코드를 입력해서 8500 포트에 접속해봅니다.

node index.js

8500 포트에 Hello, World! 가 출력된 것을 볼 수 있습니다. 다음은 npm을 이용해서 패키지를 설치해보겠습니다.

npm install eslint --save-dev && yarn add -D eslint

 

코드 스타일과 문법을 검사하는 ESLint를 설치해줍니다.

npm install nodemon --save-dev && yarn add -D nodemon

 

파일 변경 시 다시 실행하지 않고 새로고침하면 반영해주는 Nodemon을 설치해줍니다.

  "scripts": {
    "start": "node index.js",
    "dev": "nodemon index.js"
  },

 

package.json에 스크립트 부분에 nodemon을 이용해서 yarn dev && npm run dev로 실행할 수 있게 설정해줍니다.

LIST