[리눅스 한 학기 살기] #5 Node.js & npm 설치

curric·2025년 5월 28일
post-thumbnail

Node.js란 무엇인가?


node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.

런타임(Runtime)이란?
코드를 실제로 실행해주는 환경을 말한다.

즉, 자바스크립트 코드는 사람이 쓰는 텍스트이기 때문에,
이걸 컴퓨터가 이해하고 실행할 수 있도록 도와주는 환경이 필요하다.

  • 웹 브라우저에는 이 역할을 해주는 JavaScript 엔진이 내장되어 있음 (예 : Chrome -> V8 엔진)
  • Node.js는 이 브라우저 밖에서도 자바스크립트를 실행할 수 있도록 V8 엔진을 독립시켜 만든 실행환경이다.

브라우저 없이도 자바스크립트를 서버에서 실행할 수 있게 한 도구 = Node.js


Node.js를 사용하는 이유


Node.js는 강력한 기능을 제공한다.

  • 빠른 실행 속도 : V8 엔진 기반으로 매우 빠르게 실행됨
  • 논블로킹 I/O 처리 : 파일, 네트워크 처리 시 병목없이 빠름
  • npm(Node Package Manager) : 전 세계 개발자들이 만든 모듈을 쉽게 가져다 쓸 수 있음
  • 풀스택 개발 가능 : 프론트엔트도 자바스크립트, 백엔드도 자바스크립트로 통일 가능

Node.js 설치 (Ubuntu 24.04 기준)


Node.js를 설치하는 방법은 NodeSource 저장소를 사용하는 방법, NVM(Node Version Manager)을 사용하는 방법, Ubuntu 기본 저장소를 사용하는 방법, 공식 웹사이트 바이너리 설치하는 4가지 방법이 있다.

여기서 Ubuntu 기본 저장소는 구버전일 수 있기때문에, 공식 NodeSource 저장소를 이용해 설치해보려 한다.

NodeSource를 통한 최신 버전 설치

자세한 부분 (https://github.com/nodesource/distributions?tab=readme-ov-file#debian-and-ubuntu-based-distributions) 참고

curl -fsSL https://deb.nodesource.com/setup_23.x -o nodesource_setup.sh
sudo -E bash nodesource_setup.sh
sudo apt-get install -y nodejs

버전체크

node -v
npm -v

Node.js 기본 실습


설치만 하고 넘어가기에 아쉽기 때문에, express 프레임워크를 활용해 간단한 웹 서버를 만들고, 리눅스에서 프로세스를 관리해보려 한다.

1. Express로 간단한 웹서버 만들기

mkdir node-server
cd node-server
npm init -y
npm install express

index.js 파일 생성:

nano index.js

nano 편집기 창에서 작성

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
  res.send('리눅스 한 학기 살기 - Node.js 서버!');
});

app.listen(port, () => {
  console.log(`서버가 http://localhost:${port} 에서 실행 중`);
});

작성후 저장 Ctrl +O -> enter,
종료 Ctrl + x

2. 서버 실행

node index.js

브라우저에서 http://localhost:3000 에 접속하면 메세지가 보인다.

3. 리눅스에서 Node.js 프로세스 관리

백그라운드 실행

node index.js &

-> &를 붙이면 백그라운드 실행 가능하다.
[1] 12345 이런 식으로 프로세스 ID(PID)가 출력된다.

실행중인 프로세스 확인

ps aux | grep node

*프로세스 종료

kill [PID] // 위에서 확인한 pid
profile
학생입니다

0개의 댓글