백엔드-노드

노드 실전

강사: 오백엔드 · 작성자: 이종춘 · 작성일: 2026-07-08 18:13:52 · 조회수: 6

25강. Node.js 프로젝트 배포하기
목록으로
25강. Node.js 프로젝트 배포하기

이번 강의에서는 React + Node.js + MySQL 프로젝트를 실제 서버에 배포하는 흐름을 정리합니다.

1. 배포란?

내 컴퓨터에서만 실행되던 프로젝트를 인터넷에서 접속 가능하게 만드는 과정입니다.

내 컴퓨터

서버

도메인

사용자 접속

2. 배포 전체 구조
사용자

도메인

Nginx

React 정적 파일

Node.js API

MySQL

3. 서버에서 필요한 것
Node.js
npm
MySQL
PM2
Nginx
Git
SSL 인증서

4. 환경 변수 관리

.env

PORT=3000
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=1234
DB_NAME=node_db
JWT_SECRET=mySecretKey

Node.js

require("dotenv").config();

const PORT = process.env.PORT;

5. dotenv 설치
npm install dotenv

6. 운영용 실행
node server.js

하지만 서버가 꺼지면 서비스도 종료됩니다.

그래서 실무에서는 PM2를 사용합니다.

7. PM2 설치
npm install -g pm2

8. PM2로 서버 실행
pm2 start server.js

확인

pm2 list

중지

pm2 stop server

재시작

pm2 restart server

9. 서버 자동 실행

서버 재부팅 후 자동 실행되게 설정합니다.

pm2 startup

저장

pm2 save

10. React 빌드

React 프로젝트에서 실행합니다.

npm run build

생성 결과

frontend

└── dist

또는 Create React App은

build

폴더가 생성됩니다.

11. React 정적 파일 배포

빌드된 파일을 서버에 업로드합니다.

/var/www/html

또는 Nginx 설정 경로에 배치합니다.

12. Nginx 역할

Nginx는 사용자의 요청을 받아서 알맞은 곳으로 보내는 역할을 합니다.

도메인

Nginx
├── React 화면
└── Node.js API

13. API 프록시 구조
https://example.com

React

https://example.com/api

Node.js

14. Nginx 설정 예시
server {
listen 80;
server_name example.com;

root /var/www/html;
index index.html;

location / {
try_files $uri /index.html;
}

location /api {
proxy_pass http://localhost:3000;
}
}

15. HTTPS 적용

보통 Let’s Encrypt 인증서를 사용합니다.

sudo certbot --nginx

적용 후

http://example.com

https://example.com

16. MySQL 배포 체크

확인할 것

DB 생성
테이블 생성
계정 권한
문자셋 utf8mb4
백업 설정

예시

CREATE DATABASE node_db DEFAULT CHARACTER SET utf8mb4;

17. 보안 체크
.env 외부 노출 금지
DB 비밀번호 강하게 설정
관리자 페이지 접근 제한
JWT_SECRET 복잡하게 설정
HTTPS 적용
업로드 파일 확장자 제한

18. 배포 후 점검
항목 확인
React 화면 정상 접속
API 정상 응답
DB 조회/등록 가능
이미지 업로드/출력 가능
로그인 JWT 정상 작동
HTTPS 보안 연결
PM2 서버 유지
모바일 반응형 확인

19. 실무 배포 흐름
GitHub 업로드

서버 접속

git clone

npm install

.env 설정

MySQL 세팅

React build

PM2 실행

Nginx 연결

HTTPS 적용

최종 테스트

20. 이번 강의 핵심 정리
도구 역할
.env 환경 변수 관리
PM2 Node 서버 유지
Nginx 웹 서버 / 프록시
MySQL 데이터 저장
Certbot HTTPS 인증서
GitHub 소스 관리
#25강. Node.js 프로젝트 배포하기

첨부 파일

0개
첨부된 파일이 없습니다.

댓글 / 답글

0개
댓글을 작성하려면 로그인하세요.
아직 댓글이 없습니다.