46.Next.js와 Nest.js를 배포하는 방법, Next.js와 Nest.js 프로젝트를 배포하는 전체 흐름

웹 애플리케이션의 구축이 완료되었다면, 이제 사용자들에게 이 애플리케이션을 제공하기 위해 배포하는 단계가 필요합니다. 이번 글에서는 Next.jsNest.js 프로젝트를 배포하는 전체 흐름을 자세히 설명하겠습니다. 두 프레임워크의 조합은 강력한 Full Stack 애플리케이션을 개발하는 데 매우 유용합니다. 그러나 이러한 애플리케이션을 실제 운영 환경에 배포하는 과정은 조금 복잡할 수 있습니다.

1. 프로젝트 준비하기

1.1 Nest.js 프로젝트 준비하기

Nest.js는 Node.js를 기반으로 한 서버 측 애플리케이션 프레임워크입니다. Nest.js 애플리케이션을 운영 환경에 배포하기 위해서는 다음과 같은 단계를 거칩니다.

npm run build

먼저, 배포를 위해 Nest.js 애플리케이션을 빌드합니다. 이 명령어를 실행하면 dist 폴더가 생성되며, 이 폴더 내에 배포용 파일이 생성됩니다.

1.2 Next.js 프로젝트 준비하기

Next.js는 React 기반의 프레임워크로, 서버 사이드 렌더링(SSR)과 정적 사이트 생성(SSG)을 제공합니다. Next.js의 경우에도 마찬가지로 애플리케이션을 빌드해야 합니다. 다음 명령어를 실행하세요.

npm run build

이 명령어를 통해 /.next 폴더가 생성되고, 모든 페이지와 정적 자산이 최적화됩니다.

2. 배포 환경 선택하기

기본적으로 Next.js와 Nest.js 프로젝트를 배포할 수 있는 다양한 선택지가 있습니다. 주요 선택지는 다음과 같습니다.

  • 가상 사설 서버(VPS): AWS, DigitalOcean, Vultr 등에서 제공하는 서버를 이용하여 배포할 수 있습니다.
  • Platform as a Service (PaaS): Heroku, Vercel, Netlify 등의 플랫폼을 사용하여 손쉽게 배포할 수 있습니다.
  • Docker: 컨테이너 기반의 배포를 원할 경우, Docker를 이용하여 애플리케이션을 배포할 수 있습니다.

3. VPS에 배포하기

3.1 서버 준비하기

먼저, VPS를 선택하여 인스턴스를 생성합니다. 이 과정에서는 보통 Ubuntu를 사용하는 것이 일반적입니다.

ssh your_user@your_server_ip

SSH를 통해 서버에 연결합니다.

3.2 필수 패키지 설치하기

기본적으로 Node.js와 npm, PM2 등을 설치합니다.


sudo apt update
sudo apt install -y nodejs npm
sudo npm install -g pm2

3.3 애플리케이션 배포하기

애플리케이션 코드를 서버로 배포합니다. 이를 위해 Git을 사용하거나 FTP 클라이언트를 사용할 수 있습니다. 서버에 배포한 후, Nest.js와 Next.js 각각의 package.json 파일이 있는 디렉토리로 이동하여 다음과 같이 의존성을 설치합니다.


cd nest_project
npm install
cd ../next_project
npm install

3.4 Nest.js 서버 실행하기

이제 Nest.js 서버를 PM2를 통해 실행합니다.

pm2 start dist/main.js --name nest-app

위 명령어로 Nest.js 애플리케이션을 실행했습니다. PM2는 애플리케이션을 프로세스 관리하는 도구로, 서버가 재부팅되더라도 자동으로 실행할 수 있도록 설정할 수 있습니다. 다음과 같이 PM2의 설정을 저장합니다.

pm2 save

3.5 Next.js 애플리케이션 실행하기

Next.js도 PM2를 이용하여 실행할 수 있습니다. 먼저 빌드 후 아래의 명령어로 서버를 실행합니다.

pm2 start npm --name next-app -- run start

4. PaaS 플랫폼에 배포하기

4.1 Heroku를 이용한 배포

Heroku는 Node.js 및 Next.js, Nest.js 애플리케이션을 손쉽게 배포할 수 있는 플랫폼입니다. Heroku CLI를 설치한 후, 다음과 같은 명령어를 통해 Heroku 애플리케이션을 생성할 수 있습니다.

heroku create your-app-name

이제 프로젝트를 Git에 커밋하고 Heroku에 배포합니다.


git add .
git commit -m "Initial commit"
git push heroku master

4.2 Vercel을 이용한 Next.js 배포

Next.js의 공식 배포 플랫폼은 Vercel입니다. GitHub와 연동시켜 자동 배포가 가능합니다. Vercel에 로그인 후, “New Project”를 클릭하여 GitHub 저장소와 연결합니다.

5. 도메인 설정하기

웹 애플리케이션 배포 후, 자신의 도메인을 설정하는 것이 중요합니다. DNS 관리 도구를 통해 만든 서버의 IP 주소를 해당 도메인에 연결합니다. 일반적으로 A레코드를 추가하여 관리할 수 있습니다.

6. 정리

이 글에서는 Next.jsNest.js 애플리케이션을 배포하는 방법에 대해 알아보았습니다. VPS, PaaS, Docker 등을 활용한 다양한 배포 방법을 설명하였으며, 최종적으로 도메인을 설정하여 사용자에게 애플리케이션을 제공하는 과정을 다루었습니다. 이제 여러분도 쉽고 빠르게 애플리케이션을 배포할 수 있습니다!