Node.js Express 웹 서버 구축 및 배포 방법
Node.js와 Express를 활용한 웹 서버 구축
최근에는 Node.js를 통해 서버 환경을 구축하는 작업이 급증하고 있습니다. 이 글에서는 Express.js를 활용하여 웹 서버를 설정하고 배포하는 방법에 대해 단계별로 안내드리겠습니다. Express.js는 Node.js에서 널리 사용되는 프레임워크로, 빠르고 유연하게 웹 애플리케이션을 개발할 수 있도록 돕습니다.
Node.js 소개
Node.js는 자바스크립트를 기반으로 한 서버 사이드 플랫폼으로, 비동기 방식의 이벤트 기반 아키텍처를 채택하고 있습니다. 이러한 구조 덕분에 고속의 웹 애플리케이션을 쉽게 구축할 수 있으며, 다음과 같은 장점이 있습니다:
- 자바스크립트 활용: 개발자는 동일한 언어로 클라이언트와 서버 코드를 작성할 수 있습니다.
- 풀스택 개발 가능: 프론트엔드와 백엔드 개발을 동시에 수행할 수 있는 능력을 가질 수 있습니다.
- 빠른 개발 속도: 고속으로 웹 애플리케이션을 개발하여 유지보수 비용을 절감할 수 있습니다.
Express.js란?
Express.js는 Node.js를 기반으로 한 웹 애플리케이션 프레임워크로, RESTful API 및 다양한 웹 서버를 구현할 때 자주 사용됩니다. 이 프레임워크는 간결하고 강력한 기능을 제공하여 신속하게 웹 서버를 구축할 수 있도록 도와줍니다.
Express 웹 서버 만들기
이제 본격적으로 Express.js를 이용해 웹 서버를 생성하는 과정을 살펴보겠습니다. 필요한 준비물로는 Node.js와 Visual Studio Code가 있습니다. 이 두 가지를 설치한 후 진행하시면 됩니다.
프로젝트 환경 설정
먼저, 새로운 프로젝트 폴더를 생성합니다. Visual Studio Code를 실행한 후 해당 폴더를 열고, 터미널을 열어 다음 명령어를 통해 package.json 파일을 생성합니다:
npm init
명령어를 입력하면 필요한 정보를 입력하라는 프롬프트가 뜹니다. 기본값을 사용하고 싶다면 -y 플래그를 추가하여 빠르게 진행할 수 있습니다.
npm init -y
Express 설치하기
Express 패키지를 설치하기 위해 아래의 명령어를 사용합니다:
npm install express
위 명령어를 입력하면 node_modules
라는 폴더가 생성되며, 그 안에 Express 관련 패키지들이 설치됩니다.
서버 코드 작성
이제 루트 디렉터리에서 app.js
라는 파일을 생성하고 다음과 같은 코드로 서버를 설정합니다:
const express = require('express');
const app = express();
const PORT = 3000; // 필요한 경우 포트 번호를 변경할 수 있습니다.
app.get('/', (req, res) => {
res.send('Hello, World!'); // 클라이언트 요청에 대한 응답
});
app.listen(PORT, () => {
console.log(서버가 http://localhost:${PORT}에서 실행되고 있습니다.);
});
서버 실행하기
서버를 실행하기 위해 제시된 명령어를 사용합니다:
node app.js
브라우저에서 http://localhost:3000
를 입력하면 “Hello, World!”라는 메시지를 확인할 수 있습니다.
라우팅 및 요청 처리
클라이언트의 다양한 요청을 처리하기 위해 Express는 라우팅 기능을 제공합니다. 기본적으로 HTTP 메서드에 따라 요청을 다룰 수 있습니다. 예를 들어, 특정 경로에 대한 GET 요청을 처리하는 코드는 다음과 같습니다:
app.get('/example', (req, res) => {
res.send('이곳은 예시 페이지입니다.');
});
정적 파일 제공 및 미들웨어 설정
Express는 정적 파일을 제공할 수 있는 기능도 제공합니다. 다음과 같이 public
폴더를 만들어 CSS, JavaScript 파일 등을 저장하고, 아래와 같이 정적 파일을 제공하도록 설정합니다:
app.use(express.static('public'));
이 설정 후, 브라우저를 통해 정적 파일에 접근할 수 있습니다.
POST 요청 처리
POST 요청을 처리하여 클라이언트로부터 데이터를 받을 수 있도록 하려면, 먼저 body-parser
미들웨어를 설치해야 합니다:
npm install body-parser
이제 다음과 같이 코드를 작성하여 POST 요청을 처리할 수 있습니다:
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/submit', (req, res) => {
const userData = req.body; // 클라이언트에서 보낸 데이터
res.send(제출된 데이터: ${JSON.stringify(userData)});
});
서버 배포하기
웹 서버를 구축한 후에는 이를 실제로 운영하기 위해 배포하는 과정이 필요합니다. 여러 클라우드 서비스가 있으며, 대표적으로 Heroku, AWS, Vercel 등을 사용할 수 있습니다. 이들 서비스를 통하여 제작한 서버를 쉽게 배포할 수 있습니다.
배포 준비
배포하기 전, package.json
파일에 start
스크립트를 추가해야 합니다:
"scripts": {
"start": "node app.js"
}
이후 선택한 호스팅 서비스에 따라 각기 다른 방법으로 배포를 진행하시면 됩니다.
결론
Node.js와 Express.js를 활용하여 간단한 웹 서버를 구축하는 방법을 살펴보았습니다. 이 과정에서 라우팅 처리, 정적 파일 서빙, POST 요청 처리 등의 기본 개념을 익힐 수 있었습니다. 이러한 기술은 여러분이 웹 애플리케이션 개발에 있어 더욱 효과적으로 활용할 수 있는 기초가 될 것입니다.
자주 묻는 질문과 답변
Node.js와 Express.js의 차이는 무엇인가요?
Node.js는 자바스크립트를 이용한 서버 환경을 제공하는 플랫폼이며, Express.js는 Node.js 위에서 작동하는 애플리케이션 프레임워크입니다. 즉, Express는 Node.js의 기능을 활용하여 웹 서버를 쉽게 구축할 수 있도록 도와줍니다.
Express.js를 설치하는 방법은 무엇인가요?
Express를 설치하려면 터미널에서 npm install express
명령어를 실행하면 됩니다. 이 명령어를 통해 필요한 패키지가 자동으로 다운로드되어 설치됩니다.
웹 서버를 어떻게 실행하나요?
서버를 실행하려면 터미널에서 node app.js
명령어를 사용하면 됩니다. 이렇게 하면 작성한 서버 코드가 실행되며, 웹 브라우저에서 http://localhost:3000
주소로 접속하여 결과를 확인할 수 있습니다.