본문 바로가기

프로그래밍 및 IT기술

Node.js를 활용한 간단한 서버 구축 방법

Node.js는 가볍고 빠른 서버 환경을 구축할 수 있는 JavaScript 런타임입니다.
특히 비동기 이벤트 기반 구조를 가지고 있어 실시간 처리가 필요한 애플리케이션에 적합합니다.
이번 글에서는 Node.js를 이용해 간단한 웹 서버를 구축하는 방법을 단계별로 설명하겠습니다.

Node.js를 활용한 간단한 서버 구축 방법

1. Node.js란? – 비동기 이벤트 기반 서버의 특징

Node.js 개념

Node.js는 Google의 V8 JavaScript 엔진 위에서 동작하는 서버 사이드 런타임 환경입니다.
기존에는 브라우저에서만 실행되던 JavaScript를 서버에서도 실행할 수 있도록 만들어졌습니다.

Node.js의 주요 특징

 비동기(Asynchronous) 이벤트 기반 – I/O 작업을 효율적으로 처리하여 높은 성능 제공
 싱글 스레드 모델 – 멀티 스레드보다 가벼우며, 비동기 방식으로 여러 요청을 처리
 NPM(Node Package Manager) 지원 – 다양한 오픈소스 라이브러리를 쉽게 설치 가능
 REST API, 웹소켓, 마이크로서비스 개발에 적합

Node.js 서버 활용 사례

 RESTful API 서버 – JSON 데이터를 주고받는 API 개발
 실시간 채팅 서비스 – WebSocket을 활용한 실시간 데이터 처리
 IoT 및 스트리밍 서비스 – 센서 데이터 수집 및 비디오 스트리밍 서버

 

2. Node.js 설치 및 기본 환경 설정

Node.js 설치 방법

Node.js를 설치하려면 공식 홈페이지에서 다운로드할 수 있습니다.
설치 후 터미널(명령 프롬프트)에서 아래 명령어로 설치를 확인합니다.

node -v  # Node.js 버전 확인
npm -v   # NPM 버전 확인​

새로운 프로젝트 생성

Node.js 프로젝트를 생성하려면 먼저 새로운 디렉토리를 만들고 초기 설정을 진행합니다.

 
mkdir my-node-server  # 새로운 폴더 생성
cd my-node-server     # 폴더로 이동
npm init -y           # package.json 파일 생성

 

 

3. Express를 활용한 간단한 웹 서버 만들기

Express.js 설치 및 기본 설정

Node.js에는 기본적으로 HTTP 서버 기능이 있지만, 더 편리하게 사용하기 위해 Express.js를 활용합니다.
Express.js는 가벼운 웹 프레임워크로, REST API 및 웹 서버 구축에 널리 사용됩니다.

npm install express  # Express 설치

간단한 서버 코드 작성

이제 server.js 파일을 만들고, Express를 이용해 간단한 웹 서버를 구현해 보겠습니다.

const express = require("express");
const app = express();
const PORT = 3000;

// 기본 라우트 설정
app.get("/", (req, res) => {
  res.send("Hello, Node.js Server!");
});

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

서버 실행 방법

아래 명령어를 입력하면 서버가 실행됩니다.

 
node server.js

 

4. REST API 서버 구축 – JSON 데이터 응답하기

REST API 엔드포인트 생성

Express를 활용하여 JSON 데이터를 반환하는 간단한 API를 만들어 보겠습니다.
아래 코드에서 GET, POST, DELETE 요청을 처리하는 API 엔드포인트를 정의합니다.

const express = require("express");
const app = express();
const PORT = 3000;

// JSON 요청을 처리하기 위한 미들웨어 추가
app.use(express.json());

let users = [
  { id: 1, name: "Alice" },
  { id: 2, name: "Bob" },
];

// 1. 모든 사용자 조회 (GET 요청)
app.get("/users", (req, res) => {
  res.json(users);
});

// 2. 새로운 사용자 추가 (POST 요청)
app.post("/users", (req, res) => {
  const newUser = { id: users.length + 1, name: req.body.name };
  users.push(newUser);
  res.json(newUser);
});

// 3. 특정 사용자 삭제 (DELETE 요청)
app.delete("/users/:id", (req, res) => {
  const userId = parseInt(req.params.id);
  users = users.filter((user) => user.id !== userId);
  res.json({ message: "User deleted successfully" });
});

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

REST API 테스트 방법

 모든 사용자 조회 (GET 요청)

curl http://localhost:3000/users

 

 새로운 사용자 추가 (POST 요청)

curl -X POST -H "Content-Type: application/json" -d '{"name":"Charlie"}' http://localhost:3000/users

 사용자 삭제 (DELETE 요청)

curl -X DELETE http://localhost:3000/users/1

 

 

결론 – Node.js 서버 구축 요약

🔹 Node.js는 가볍고 빠른 비동기 이벤트 기반 서버 환경을 제공하며, 실시간 애플리케이션 개발에 적합합니다.
🔹 Express.js를 사용하면 간단한 웹 서버를 빠르게 구축할 수 있으며, REST API 개발이 용이합니다.
🔹 JSON 데이터를 주고받는 RESTful API를 만들어 백엔드 서비스를 구현할 수 있습니다.

🚀 이제 Node.js를 활용하여 더 다양한 웹 애플리케이션을 개발해 보세요!