웹 개발의 많은 부분이 서버 사이드 기술과 그 배포에 의존하고 있습니다. 이 강좌에서는 Express.js를 사용하여 백엔드 서버를 구축하고, 이를 Heroku, Vercel, 그리고 AWS 등 다양한 플랫폼에 배포하는 방법을 자세히 설명하겠습니다. 이 과정은 전체적인 워크플로우를 이해하는 데 도움이 되며, 좋은 개발 습관을 기르는 데 중요한 기초가 될 것입니다.
1. Express.js란?
Express.js는 Node.js 환경에서 작동하는 웹 애플리케이션 프레임워크로, 간단하고 유연한 API를 제공하여 개발자가 RESTful 웹 서비스를 쉽게 구축할 수 있게 돕습니다. 경량이며, 다양한 미들웨어와의 통합이 용이해 많은 개발자들이 선택하는 프레임워크입니다.
2. Express.js로 서버 구축하기
2.1. 기본 설정
먼저, Node.js와 npm이 설치되어 있는지 확인합니다. 그런 다음 새로운 프로젝트를 시작하여 필요한 패키지를 설치합니다.
mkdir express-backend
cd express-backend
npm init -y
npm install express
2.2. 간단한 서버 만들기
다음으로, Express.js를 사용하여 기본적인 서버를 만들어 보겠습니다.
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
위 코드는 기본적인 Express 서버를 설정합니다. `/` 경로로 요청을 보내면 “Hello World!” 메시지를 응답합니다. 서버는 기본적으로 포트 3000에서 실행됩니다.
3. 서버 배포 방법
Express 서버를 지역 환경에서 성공적으로 실행했다면, 이제는 클라우드 환경에 배포해야 합니다. 이 섹션에서는 Heroku, Vercel, 그리고 AWS를 이용한 배포 방법을 알아보겠습니다.
3.1. Heroku에 배포하기
3.1.1. Heroku CLI 설치
Heroku에 배포하기 위해서는 Heroku CLI를 설치해야 합니다. 아래 링크에서 설치 방법을 확인할 수 있습니다.
Heroku CLI 설치하기
3.1.2. Heroku로 앱 생성하기
터미널에서 아래의 명령어를 실행하여 새로운 Heroku 앱을 생성합니다.
heroku create your-app-name
3.1.3. 코드 조정
Heroku에서는 포트를 환경 변수로 관리하므로, 코드에서 포트를 설정하는 부분을 수정합니다.
const PORT = process.env.PORT || 3000;
3.1.4. 배포
코드를 Heroku에 배포하기 위해 Git을 사용하여 코드를 커밋한 후, 아래 명령어를 통해 푸시합니다.
git add .
git commit -m "Initial commit"
git push heroku master
3.1.5. 배포 확인
배포가 완료되면 아래 명령어를 통해 애플리케이션을 열 수 있습니다.
heroku open
3.2. Vercel에 배포하기
3.2.1. Vercel CLI 설치
Vercel에 배포하기 위해 Vercel CLI를 설치합니다. 아래 링크를 따라 설치합니다.
Vercel 다운로드
3.2.2. Vercel로 프로젝트 배포하기
프로젝트 루트 디렉토리에서 Vercel CLI를 사용하여 배포합니다.
vercel
3.2.3. 환경 변수 설정
Vercel 대시보드에서 환경 변수를 설정할 수 있으며, 포트 설정도 마찬가지로 환경 변수에 의해 관리됩니다.
3.3. AWS에 배포하기
3.3.1. AWS 계정 생성
AWS에서 배포하기 위해서는 AWS 계정을 생성해야 합니다. AWS 공식 사이트에서 계정을 생성합니다.
3.3.2. EC2 인스턴스 만들기
AWS Management Console에 로그인한 후 EC2 대시보드로 이동합니다. “Launch Instance” 버튼을 클릭하여 새로운 인스턴스를 생성합니다. 보안 그룹에서 HTTP(포트 80)와 SSH(포트 22) 접근을 허용합니다.
3.3.3. 서버 설정
SSH를 통해 EC2 서버에 접속한 뒤 Node.js와 필요한 패키지를 설치합니다.
sudo apt update
sudo apt install nodejs npm
3.3.4. 코드 올리기
로컬 서버에서 작성한 코드를 SCP를 통해 EC2 인스턴스로 복사합니다.
scp -i your-key.pem -r ./express-backend/ ec2-user@your-ec2-ip-address:/home/ec2-user/
3.3.5. 서버 실행
SSH로 EC2에 연결한 후, 애플리케이션 디렉토리로 이동하여 서버를 실행합니다.
cd express-backend
node app.js
3.3.6. 도메인 설정
공인 IP 주소 또는 도메인을 사용하여 애플리케이션에 접근할 수 있습니다. Route 53을 사용하여 도메인을 설정할 수 있습니다.
4. 배포 후 유지 관리
배포가 완료된 후에는 애플리케이션의 성능과 안정성을 지속적으로 모니터링하는 것이 중요합니다. 또한, 필요할 경우 애플리케이션을 업데이트하고 보안을 유지해야 합니다.
5. 결론
이번 강좌에서는 Express.js를 사용하여 서버를 구축하고, Heroku, Vercel, AWS와 같은 다양한 플랫폼에 배포하는 방법을 배웠습니다. 각 클라우드 서비스마다 운영 방식과 배포 가능성은 다릅니다. 본인의 프로젝트와 요구 사항에 맞는 플랫폼을 선택하여 배포하세요.
추가 자료나 샘플 코드는 GitHub에 업로드해두었으니 참고하시기 바랍니다. 귀하의 서버 배포 경험이 더 풍부해지길 바랍니다!