생활정보

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 주소로 접속하여 결과를 확인할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다