Node.js와 Express 프레임워크를 통한 웹 서버 구축 방법
현대 웹 애플리케이션 개발에서 Node.js와 Express는 매우 강력한 도구로 자리잡고 있습니다. Node.js는 서버 측에서 자바스크립트를 실행할 수 있는 환경을 제공하며, Express는 Node.js 위에서 동작하는 웹 애플리케이션 프레임워크로, 개발자들이 애플리케이션을 효율적으로 구축할 수 있도록 돕습니다.

Node.js란 무엇인가?
Node.js는 Google의 V8 자바스크립트 엔진을 기반으로 하고 있으며, 비동기 I/O 처리 방식으로 높은 성능을 발휘합니다. 이를 통해 개발자는 클라이언트의 요청을 신속하게 처리할 수 있으며, 동시에 여러 요청을 처리할 수 있는 능력을 갖추게 됩니다. Node.js를 통해 서버 측 로직을 자바스크립트로 구현할 수 있어, 클라이언트와 서버 간의 코드 일관성을 유지할 수 있는 장점이 있습니다.
Express 프레임워크의 특징
Express는 Node.js에서 웹 애플리케이션을 구축하기 위해 고안된 경량 프레임워크로, 미들웨어와 라우팅 기능을 제공합니다. 주요 특징은 다음과 같습니다:
- 간편한 라우팅 처리: HTTP 메서드와 URL 경로에 따라 쉽게 요청 처리가 가능합니다.
- 미들웨어 지원: 요청과 응답 사이에 기능을 추가할 수 있는 미들웨어를 통해 유연한 확장이 가능합니다.
- 다양한 템플릿 엔진 지원: 개발자는 Pug, EJS 등 다양한 템플릿 엔진을 사용하여 동적 웹 페이지를 생성할 수 있습니다.
- npm 패키지 통합: 필요에 따라 다양한 npm 패키지를 추가하여 기능을 확장할 수 있습니다.
Express 설치하기
Express를 사용하기 위해서는 먼저 Node.js가 설치되어 있어야 합니다. Node.js와 함께 NPM(Node Package Manager)을 사용하여 Express를 설치할 수 있습니다. 터미널에서 아래 명령어를 입력하면 Express가 설치됩니다:
npm install express
이 명령어를 실행하면 프로젝트 폴더 내에 ‘node_modules’ 폴더가 생성되고, Express 모듈이 그 안에 설치됩니다. 또한, ‘package.json’ 파일의 dependencies 섹션에도 Express가 추가됩니다.
기본 웹 서버 설정하기
이제 기본적인 웹 서버를 설정해보겠습니다. 아래는 Express를 사용하여 기본적인 웹 서버를 구현하는 코드입니다:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('안녕하세요! Express 웹 서버입니다.');
});
app.listen(port, () => {
console.log(서버가 http://localhost:${port}에서 실행 중입니다.);
});
위 코드는 Express 모듈을 불러온 뒤, 새로운 앱 인스턴스를 생성하고, 루트 URL에 대한 GET 요청을 처리합니다. 서버가 시작되면 특정 포트에서 대기하게 됩니다.

라우팅 기능 활용하기
Express에서는 라우팅 기능을 통해 다양한 URL 요청에 대한 처리를 쉽게 할 수 있습니다. 다음은 GET 및 POST 요청을 처리하는 간단한 예시입니다:
// GET 요청 처리
app.get('/about', (req, res) => {
res.send('About 페이지입니다.');
});
// POST 요청 처리
app.post('/users', (req, res) => {
// 사용자 추가 로직
res.send('사용자가 추가되었습니다.');
});
GET 요청에 대한 라우팅은 URL 경로와 HTTP 메서드를 통해 설정되며, POST 요청은 데이터를 서버에 전송할 때 자주 사용됩니다.
미들웨어 사용하기
Express의 미들웨어는 요청이 서버에 도달하기 전 또는 응답이 클라이언트로 전송되기 전 추가적인 처리를 할 수 있도록 도와줍니다. 미들웨어는 다음과 같이 간단하게 설정할 수 있습니다:
app.use((req, res, next) => {
console.log(요청이 ${req.url}로 들어왔습니다.);
next(); // 다음 미들웨어 또는 요청 핸들러로 이동합니다.
});
위의 예시는 모든 요청에 대해 URL을 로그로 기록하는 미들웨어입니다. 이처럼 미들웨어를 활용하면 다양한 기능을 쉽게 추가할 수 있습니다.
JSON 처리하기
Node.js와 Express에서는 JSON 데이터를 손쉽게 처리할 수 있습니다. 기본적으로 Express는 JSON 형식의 요청 본문을 해석하기 위해 JSON 미들웨어를 제공합니다. 사용자가 JSON 형식으로 데이터를 전송할 때 이를 처리하는 예시는 다음과 같습니다:
app.use(express.json()); // JSON 형식의 요청 본문을 파싱합니다.
app.post('/data', (req, res) => {
console.log(req.body); // 클라이언트로부터 전송된 JSON 데이터
res.send('데이터가 수신되었습니다.');
});
위 코드는 JSON으로 전달된 데이터를 파싱하여 서버에서 사용할 수 있게 해줍니다. 이를 통해 클라이언트와의 데이터 교환이 용이해집니다.
서버 실행하기
서버를 실행하기 위해 아래 명령어를 입력합니다:
node server.js
명령어 실행 후, 웹 브라우저를 열고 설정한 포트(예: 3000)로 접속하면 웹 서버가 정상적으로 작동하는지 확인할 수 있습니다.

결론
Node.js와 Express를 활용하여 웹 서버를 구축하는 과정은 간단하지만 강력한 기능을 제공합니다. 이 글을 통해 기본적인 웹 서버 설정에서부터 라우팅, 미들웨어, JSON 처리까지의 흐름을 이해하셨을 것입니다. 이 기본 구조 위에 더 많은 기능을 추가하고, 자신만의 웹 애플리케이션 개발에 도전해보시기 바랍니다.
질문 FAQ
Node.js란 무엇인가요?
Node.js는 자바스크립트를 서버 사이드에서 실행할 수 있게 해주는 플랫폼으로, 비동기 I/O 방식을 이용하여 높은 성능을 자랑합니다. 이를 통해 다수의 요청을 효과적으로 처리할 수 있는 능력을 갖추고 있습니다.
Express 프레임워크의 주요 기능은 무엇인가요?
Express는 웹 애플리케이션을 구축하기 위한 경량 프레임워크로, 간단한 라우팅 처리 및 미들웨어 지원 기능을 제공합니다. 다양한 템플릿 엔진과의 호환성도 큰 장점 중 하나입니다.
Express를 어떻게 설치하나요?
Express를 설치하기 위해서는 먼저 Node.js가 필요합니다. 이후 터미널에서 ‘npm install express’ 명령어를 입력하면 손쉽게 설치할 수 있습니다.