Next.js Application 배포
1. 운영 환경용으로 빌드하기
next build를 수행하면 운영 환경에 적합하게 애플리케이션이 최적화됨
HTML, CSS, JavaScript 파일들은 페이지에 맞게 생성되고, 성능을 최적화하고 대부분의 현대 브라우저에 지원되도록 JS는 컴파일되며, 브라우저 번들은 Next.js 컴파일러에 의해 minify됨
2. 애플리케이션 배포하기
Next.js로 개발한 애플리케이션은 Vercel을 통해 배포하거나, 직접 배포를 수행할 수 있음
2-1. Vercel 기반 배포
Next.js를 개발한 Vercel은 관리형(Managed) 인프라를 제공함
Vercel에 배포하는 것은 별도의 설정이 필요 없으며, 확장성과 가용성, 성능을 위한 점진적인 향상 기능들을 제공함
Vercel
Vercel은 Next.js 기반의 개발 경험(DX)을 향상시키기 위해 설계된 네이티브 Next.js 플랫폼
Next.js는 Vercel에 의해 유지보수됨
2-2. 자체적으로 호스팅하기
Vercel과 같은 관리형 인프라가 아닌 자체적으로 호스팅할 때도 모든 Next.js의 기능들이 지원됨 Next.js 애플리케이션을 직접 배포하는 방법은 크게 세 가지가 있음
2-1-1. Node.js server 프로세스로 배포
Next.js는 Node.js 프로세스로 동작하기 때문에 운영할 서버 인스턴스에서 Node.js 프로세스를 실행하면 호스팅이 완료됨
배포할 Next.js 애플리케이션을 프로세스를 실행하는 방법은
npm run build를 통해 애플리케이션을 빌드 후, npm run start로 Node.js 서버 프로세스를 시작하면 됨
{
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start"
}
}2-1-2. Docker container를 활용하여 배포
Next.js는 도커 컨테이너 형태로도 배포될 수 있음
Dockerfile 스크립트를 기반으로 도커 이미지 빌드
docker build -t nextjs-docker .생성된 이미지로 도커 컨테이너 실행
docker run -p 3000:3000 nextjs-docker그 외 정적 사이트 및 SPA 형태로 배포할 경우 A static export