← 블로그 목록
Next.js 앱을 Cloudflare Pages에 배포하는 방법
Edge Runtime 기반 Next.js 프로젝트를 Cloudflare Pages에 배포하면서 겪은 문제와 해결법을 정리합니다.
왜 Cloudflare Pages인가
Vercel은 편리하지만 무료 티어 제한이 빡빡합니다. Cloudflare Pages는 무제한 대역폭, 빠른 글로벌 CDN, 그리고 D1/R2/KV 같은 서버리스 스토리지와의 자연스러운 통합을 제공합니다.
핵심 설정
npm install @cloudflare/next-on-pagesnext.config.ts에서 Edge Runtime을 기본으로 설정하고, 모든 서버 컴포넌트에 export const runtime = "edge"를 추가합니다.
빌드 명령어
npx @cloudflare/next-on-pages출력 디렉토리는 .vercel/output/static입니다. Cloudflare Pages 프로젝트 설정에서 이 경로를 지정합니다.
자주 만나는 문제
1. Node.js API 사용 불가
Edge Runtime에서는 fs, path 등 Node.js 네이티브 모듈을 사용할 수 없습니다. 데이터는 D1, KV, 또는 정적 import로 처리합니다.
2. 빌드 시 환경변수
Cloudflare Pages 대시보드에서 환경변수를 설정하거나, wrangler.toml의 [vars]에 non-secret 값을 넣습니다.
3. middleware 제한
middleware.ts는 동작하지만, next/server의 일부 기능이 제한됩니다. 쿠키 기반 인증은 정상 동작합니다.
결론
초기 설정만 잘 잡으면 Cloudflare Pages는 Next.js 풀스택 앱을 무료로 운영할 수 있는 최고의 선택지입니다.