배포: 정적 사이트와 SSR 비교
nuxt generate로 완전히 정적인 사이트를 생성하고, SSR 앱을 Node 서버 또는 엣지 런타임에 배포하며, Nuxt nitro 엔진을 구성합니다.
배포: 정적 사이트와 SSR 비교은(는) CoddyKit의 무료 Frontend Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Frontend Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Frontend Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
Nuxt는 어디서나 렌더링됩니다
Nuxt 3은 네 가지 배포 모드를 지원합니다. 정적(nuxt generate), SSR(Node 서버), 엣지(Cloudflare Workers, Vercel Edge), 하이브리드(경로별)입니다.
정적 배포
nuxt generate는 모든 경로를 HTML 파일로 사전 렌더링합니다. .output/public 폴더를 정적 호스트(Netlify, Vercel, GitHub Pages, S3)에 배포할 수 있습니다.
npm run generate
# .output/public/ contains:
# index.html, about/index.html, blog/post-1/index.html, ...
# Deploy:
npx wrangler pages deploy .output/public
# or
rsync -av .output/public/ user@host:/var/www/동적 경로 생성하기
/blog/[slug]와 같은 경로의 경우 Nuxt가 모든 slug를 알아야 합니다. config의 nitro.prerender.routes를 통해 slug를 제공합니다.
// nuxt.config.ts
export default defineNuxtConfig({
nitro: {
prerender: {
routes: ['/blog/post-1', '/blog/post-2', '/blog/post-3']
}
}
});
// Or auto-discover: Nitro follows links from /, generating any it finds.Node에 SSR 배포하기
nuxt build는 Nitro 서버를 생성합니다. node .output/server/index.mjs를 실행하여 Render, Railway, Fly.io 또는 자체 VPS와 같은 Node 호스트에 배포합니다.
npm run build
# .output/server/index.mjs is the Nitro server
# .output/public/ contains static assets
node .output/server/index.mjs # starts on PORT (default 3000)Nitro — 범용 서버
Nuxt 3의 서버는 Nitro입니다. Node, Bun, Deno, Cloudflare Workers, Vercel, Netlify, AWS Lambda 등 모든 런타임을 대상으로 할 수 있는 이식 가능한 엔진입니다. nitro.preset으로 대상을 전환합니다.
엣지 배포(Cloudflare Workers)
프리셋을 cloudflare-pages 또는 cloudflare로 설정합니다. 빌드하면 Cloudflare의 엣지에서 실행되는 Worker가 생성됩니다.
// nuxt.config.ts
export default defineNuxtConfig({
nitro: { preset: 'cloudflare-pages' }
});
// Build, then:
npx wrangler pages deploy ./dist엣지 배포(Vercel Edge)
Vercel은 Nuxt를 자동으로 감지하고 올바른 프리셋을 사용합니다. 엣지 런타임을 강제로 사용하려면 preset: 'vercel-edge'로 설정합니다.
하이브리드 렌더링
경로마다 서로 다른 방식으로 렌더링할 수 있습니다. routeRules로 구성합니다.
// nuxt.config.ts
export default defineNuxtConfig({
routeRules: {
'/': { prerender: true }, // SSG
'/blog/**': { isr: 60 }, // ISR every 60s
'/dashboard/**': { ssr: false }, // SPA (client-only)
'/admin/**': { ssr: true } // SSR (per-request)
}
});정적 배포와 SSR 중 선택하기
정적: 콘텐츠가 거의 바뀌지 않고, 속도가 가장 중요하며, 저렴한 CDN 호스팅을 사용할 때 적합합니다(블로그, 마케팅 사이트, 문서). SSR: 사용자별 콘텐츠, 동적 데이터, 검색 결과에 적합합니다(대시보드, 전자상거래). 하이브리드를 사용하면 경로별로 방식을 섞을 수 있습니다.
환경 변수
nuxt.config.ts에서 runtimeConfig를 사용합니다. public은 클라이언트에 노출되고 나머지는 서버 전용으로 유지됩니다.
export default defineNuxtConfig({
runtimeConfig: {
apiSecret: '', // server-only, set via NUXT_API_SECRET env
public: {
apiBase: 'https://api.example.com' // accessible client-side
}
}
});
// In a component:
const config = useRuntimeConfig();
console.log(config.public.apiBase);CI에서 빌드 캐싱하기
빌드 속도를 높이려면 CI 실행 사이에 .nuxt/와 node_modules/를 캐시합니다. Vercel과 Netlify에서는 이 작업이 자동으로 수행됩니다.
성능 테스트
배포한 후에는 localhost가 아니라 배포된 URL을 대상으로 Lighthouse를 실행합니다. 실제 CDN, 실제 엣지 위치, 실제 CPU 조절 환경에서 측정해야 합니다.
빠른 확인
Netlify나 Cloudflare Pages 같은 CDN에 배포할 수 있도록 모든 경로를 정적 HTML로 사전 렌더링하는 Nuxt 3 명령은 무엇인가요?
복습: Nuxt 배포
nuxt generate → 정적 배포(.output/public 배포). nuxt build → SSR(Node로 배포). Nitro 프리셋은 Cloudflare, Vercel, Netlify, AWS 등을 대상으로 합니다. 하이브리드 렌더링에는 routeRules를 사용합니다(경로별 prerender, isr, ssr, spa). 환경 변수에는 runtimeConfig를 사용합니다(public은 클라이언트에 노출). 배포된 URL을 대상으로 Lighthouse로 테스트합니다.
AI 튜터와 함께 HTML을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 41
- 레슨
- 163
자주 묻는 질문
“배포: 정적 사이트와 SSR 비교” 강의는 무료인가요?
네 — “배포: 정적 사이트와 SSR 비교” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Frontend Academy 강의 전체를 잠금 해제할 수 있습니다. Frontend Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“배포: 정적 사이트와 SSR 비교”에서 뭘 배우나요?
nuxt generate로 완전히 정적인 사이트를 생성하고, SSR 앱을 Node 서버 또는 엣지 런타임에 배포하며, Nuxt nitro 엔진을 구성합니다. 브라우저에서 직접 실행하는 실습 코드로 Frontend Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Frontend Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Frontend Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“배포: 정적 사이트와 SSR 비교” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Frontend Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Frontend Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 파일 기반 라우팅과 자동 가져오기
- useFetch와 useAsyncData
- Nuxt 모듈: 이미지, 인증, 다국어
- 배포: 정적 사이트와 SSR 비교