node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다.
런타임(Runtime)이란?
코드를 실제로 실행해주는 환경을 말한다.
즉, 자바스크립트 코드는 사람이 쓰는 텍스트이기 때문에,
이걸 컴퓨터가 이해하고 실행할 수 있도록 도와주는 환경이 필요하다.
브라우저 없이도 자바스크립트를 서버에서 실행할 수 있게 한 도구 = Node.js
Node.js는 강력한 기능을 제공한다.
Node.js를 설치하는 방법은 NodeSource 저장소를 사용하는 방법, NVM(Node Version Manager)을 사용하는 방법, Ubuntu 기본 저장소를 사용하는 방법, 공식 웹사이트 바이너리 설치하는 4가지 방법이 있다.
여기서 Ubuntu 기본 저장소는 구버전일 수 있기때문에, 공식 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
설치만 하고 넘어가기에 아쉽기 때문에, 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
node index.js
브라우저에서 http://localhost:3000 에 접속하면 메세지가 보인다.
백그라운드 실행
node index.js &
-> &를 붙이면 백그라운드 실행 가능하다.
[1] 12345 이런 식으로 프로세스 ID(PID)가 출력된다.
실행중인 프로세스 확인
ps aux | grep node
*프로세스 종료
kill [PID] // 위에서 확인한 pid