
Next.js 배포는 단순히 서버에 올리는 과정이 아니라
빌드, 최적화, 환경 분리, 실행까지 포함된 과정이다.
Next.js는 Vercel에서 가장 쉽게 배포할 수 있다.
/api) 지원next build)npm run build
빌드는 단순 번들링이 아니라
각 페이지의 렌더링 방식(SSR / SSG / ISR)을 결정하는 단계다.
.next/
이 폴더가 없으면 production 실행 불가
next start)npm run start
npm run build && npm run start
배포 전에 반드시 실행해서
production 환경에서 문제 없는지 확인해야 한다.
next dev)build + start)window.innerWidth
→ 서버에서는 실행 불가
if (typeof window !== "undefined") {
console.log(window.innerWidth);
}
.env.local은 로컬 전용이므로 배포 서버에 존재하지 않는다.
Vercel에서 직접 설정
NEXT_PUBLIC_API_URL=https://api.myapp.com
JWT_SECRET=xxxx
fetch("http://localhost:3000/api");
배포 환경에서는 동작하지 않는다.
fetch(`${process.env.NEXT_PUBLIC_API_URL}/api`);
또는
fetch("/api");
빌드 시 타입 오류 발생 → 타입 명확히 정의 필요
서버에서 실행되기 때문
서버와 클라이언트 렌더링 결과 불일치
const time = new Date();
useEffect(() => {
setTime(new Date());
}, []);
npm run build 성공npm run start 로컬 테스트next/image 사용git push → build → deploy → production
한 줄 요약
Next.js 배포는 코드보다
환경 변수, 렌더링 전략(SSR/SSG), 실행 환경 차이에 더 크게 영향을 받는다.