Node.js는 가볍고 빠른 서버 환경을 구축할 수 있는 JavaScript 런타임입니다.
특히 비동기 이벤트 기반 구조를 가지고 있어 실시간 처리가 필요한 애플리케이션에 적합합니다.
이번 글에서는 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를 활용하여 더 다양한 웹 애플리케이션을 개발해 보세요!
'프로그래밍 및 IT기술' 카테고리의 다른 글
모바일 앱 성능 최적화 방법: 부드럽고 빠른 앱을 만드는 전략 (0) | 2025.02.08 |
---|---|
React Native vs. Flutter: 크로스 플랫폼 앱 개발 비교 (0) | 2025.02.07 |
iOS vs. Android 앱 개발: 어떤 플랫폼이 유리할까? (0) | 2025.02.07 |
클라우드 서버와 호스팅: AWS, Azure, Google Cloud 비교 (0) | 2025.02.07 |
REST API와 GraphQL의 차이점과 활용 사례 (0) | 2025.02.06 |
MySQL vs. PostgreSQL vs. MongoDB: 데이터베이스 선택 가이드 (0) | 2025.02.06 |
WordPress vs. 직접 코딩: 나에게 맞는 웹사이트 제작 방법 (0) | 2025.02.06 |
백엔드 개발이란? 초보자를 위한 개념 정리 (0) | 2025.02.06 |