{"id":498,"date":"2026-08-25T12:31:02","date_gmt":"2026-08-25T12:31:02","guid":{"rendered":"https:\/\/gilnas.synology.me\/wordpress\/498\/"},"modified":"2026-08-25T12:31:02","modified_gmt":"2026-08-25T12:31:02","slug":"nuxt-3-%ec%a7%80%ec%9b%90-%ec%a2%85%eb%a3%8c-%ed%9b%84-nuxt-4-5%c2%b7vite-8-%eb%a7%88%ec%9d%b4%ea%b7%b8%eb%a0%88%ec%9d%b4%ec%85%98-%ea%b2%80%ec%a6%9d-nuxt-4-5-migration-verification","status":"publish","type":"post","link":"https:\/\/gilnas.synology.me\/wordpress\/498\/","title":{"rendered":"Nuxt 3 \uc9c0\uc6d0 \uc885\ub8cc \ud6c4 Nuxt 4.5\u00b7Vite 8 \ub9c8\uc774\uadf8\ub808\uc774\uc158 \uac80\uc99d | Nuxt 4.5 Migration Verification"},"content":{"rendered":"<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/gilnas.synology.me\/wordpress\/wp-content\/uploads\/2026\/08\/nuxt-2026-08-25.jpg\" alt=\"Nuxt 3 \uc9c0\uc6d0 \uc885\ub8cc \ud6c4 Nuxt 4.5\u00b7Vite 8 \ub9c8\uc774\uadf8\ub808\uc774\uc158 \uac80\uc99d | Nuxt 4.5 Migration Verification\" \/><\/figure>\n<p><strong>\ud575\uc2ec \ub2f5\ubcc0:<\/strong> 2026\ub144 7\uc6d4 31\uc77c\ubd80\ub85c Nuxt 3\ub294 \uacf5\uc2dd \uc9c0\uc6d0\uc774 \ub05d\ub0ac\uace0, \ud604\uc7ac active package\ub294 Nuxt 4\ub2e4. \uc774 \ubcc0\ud654\ub294 \ub2e8\uc21c\ud788 <code>nuxt<\/code> \ubc84\uc804\uc744 \uc62c\ub9ac\ub294 \ubb38\uc81c\uac00 \uc544\ub2c8\ub2e4. Nuxt 4.5\ub294 Vite 8, Rspack 2\/Rsbuild \uae30\ubc18 builder, experimental SSR streaming, Nuxt 5 \ud638\ud658 \uc900\ube44\ub97c \ub2f4\uc558\uace0, Nuxt 3\ub294 \ub354 \uc774\uc0c1 \ubc84\uadf8 \uc218\uc815\uc774\ub098 \ubcf4\uc548 \ud328\uce58\ub97c \ubc1b\uc9c0 \uc54a\ub294\ub2e4. \uc544\uc9c1 v3 \uc11c\ube44\uc2a4\uac00 \uc6b4\uc601 \uc911\uc774\ub77c\uba74 \ub2e4\uc74c \uc2a4\ud504\ub9b0\ud2b8\uc758 \uc6b0\uc120\uc21c\uc704\ub294 \uc2e0\uae30\ub2a5\uc774 \uc544\ub2c8\ub77c <strong>\uc9c0\uc6d0 \uc885\ub8cc \uc704\ud5d8\uc744 \uce21\uc815 \uac00\ub2a5\ud55c Nuxt 4 \ub9c8\uc774\uadf8\ub808\uc774\uc158\uc73c\ub85c \ubc14\uafb8\ub294 \uac83<\/strong>\uc774\ub2e4.<\/p>\n<p>Gil\ucc98\ub7fc Nuxt \ud504\ub860\ud2b8\uc5d4\ub4dc\uc640 \uc6b4\uc601\uc744 \ud568\uaed8 \ub9e1\ub294 \uac1c\ubc1c\uc790\uc5d0\uac8c \uc911\uc694\ud55c \uacb0\ub860\uc740 \uba85\ud655\ud558\ub2e4. \ube4c\ub4dc\uac00 \ud1b5\uacfc\ud55c\ub2e4\uace0 migration\uc774 \ub05d\ub09c \uac83\uc774 \uc544\ub2c8\ub2e4. Vite 8\uc758 Rolldown\/Oxc \uc804\ud658, browser target \uc0c1\uc2b9, custom Vite plugin, SSR hydration, route casing, \ubc30\ud3ec runtime\uc744 \ud568\uaed8 \uac80\uc99d\ud574\uc57c \ud55c\ub2e4. Nuxt 5\uc758 <code>future.compatibilityVersion: 5<\/code>\ub294 \ubbf8\ub9ac \ubcc0\ud654\ub7c9\uc744 \ub4dc\ub7ec\ub0b4\ub294 \uc88b\uc740 \ub3c4\uad6c\uc9c0\ub9cc, \uc544\uc9c1 \uac1c\ubc1c \uc911\uc778 \ub3d9\uc791\uc744 production \uae30\ubcf8\uac12\uc73c\ub85c \ubc14\uafb8\ub77c\ub294 \ub73b\uc740 \uc544\ub2c8\ub2e4.<\/p>\n<p><strong>\uc624\ub298\uc758 \uacb0\ub860:<\/strong> Nuxt 3 \uc571\uc740 v3 \ucd5c\uc2e0 \ud328\uce58\uc5d0 \uba38\ubb34\ub974\ub294 \ub300\uc2e0 Nuxt 4\uc758 \ubcc4\ub3c4 \ube0c\ub79c\uce58\u00b7preview \ud658\uacbd\uc744 \ub9cc\ub4e4\uace0, build\/SSR\/route\/cache\/security smoke test\ub85c \uc2b9\uaca9\ud55c\ub2e4. Nuxt 4.5\uc758 \uc0c8 \ube4c\ub4dc \uacc4\uce35\uacfc streaming\uc740 \uac01\uac01 \ub3c5\ub9bd flag\ub85c \ud3c9\uac00\ud558\uc790. \ud55c \ubc88\uc758 \uc5c5\uadf8\ub808\uc774\ub4dc\uc5d0 framework\u00b7bundler\u00b7rendering \uc804\ub7b5\uc744 \ubaa8\ub450 \ubc14\uafb8\uba74 \uc7a5\uc560 \uc6d0\uc778\uc744 \ubd84\ub9ac\ud560 \uc218 \uc5c6\ub2e4.<\/p>\n<h2>\ubb34\uc2a8 \uc77c\uc774 \uc788\uc5c8\ub098<\/h2>\n<p><strong>2026\ub144 7\uc6d4 18\uc77c, Nuxt \ud300:<\/strong> <a href=\"https:\/\/nuxt.com\/blog\/v4-5\" target=\"_blank\" rel=\"noopener\">Nuxt 4.5<\/a>\ub97c \ubc1c\ud45c\ud588\ub2e4. \uacf5\uc2dd \ub9b4\ub9ac\uc2a4 \uae00\uc740 Vite 8, Rspack 2\uc640 Rsbuild \uae30\ubc18 Rspack builder, experimental SSR streaming, stable error code system, <code>useLayout<\/code>, named views, Nuxt 5\ub97c \uc704\ud55c \ub0b4\ubd80 \uc758\uc874\uc131 \uc815\ube44\ub97c \ud575\uc2ec\uc73c\ub85c \ub4e0\ub2e4. \uac19\uc740 \uacf5\uc9c0\ub294 Nuxt 3\uc758 2026\ub144 7\uc6d4 31\uc77c EOL\uacfc v3.21.9 maintenance patch\ub97c \uc124\uba85\ud588\ub2e4.<\/p>\n<p><strong>2026\ub144 7\uc6d4 31\uc77c \uc774\ud6c4, Nuxt \uacf5\uc2dd Roadmap:<\/strong> <a href=\"https:\/\/nuxt.com\/docs\/4.x\/community\/roadmap\" target=\"_blank\" rel=\"noopener\">Nuxt 3\ub294 EOL\uc774\uba70 bug fix\uc640 security patch\ub97c \ub354 \uc774\uc0c1 \ubc1b\uc9c0 \uc54a\ub294\ub2e4<\/a>\uace0 \uba85\uc2dc\ud55c\ub2e4. \ud604\uc7ac active version\uc740 npm <code>latest<\/code> \ud0dc\uadf8\uc758 Nuxt 4\ub2e4. GitHub release \ubaa9\ub85d\uc0c1 \ucd5c\uc2e0 4.x \ud0dc\uadf8\ub294 <a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.5.2\" target=\"_blank\" rel=\"noopener\">v4.5.2<\/a>\uc774\uba70, \uc124\uce58 \uc804\uc5d0\ub294 lockfile\uacfc \ubaa8\ub4c8 \ud638\ud658 \ubc94\uc704\ub97c \uc2e4\uc81c\ub85c \ud655\uc778\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p><strong>\uc5c5\uc2a4\ud2b8\ub9bc \uc601\ud5a5:<\/strong> Nuxt 4.5\uc758 Vite 8 \ucc44\ud0dd\uc740 <a href=\"https:\/\/vite.dev\/guide\/migration.html\" target=\"_blank\" rel=\"noopener\">Vite 8 migration<\/a>\uc758 Rolldown\u00b7Oxc \uc804\ud658\uc744 \ud568\uaed8 \uac00\uc838\uc628\ub2e4. Vite\ub294 dependency optimizer\uac00 Rolldown\uc744 \uc0ac\uc6a9\ud558\uba70 <code>optimizeDeps.esbuildOptions<\/code>\ub294 \ud638\ud658 \ubcc0\ud658\uc740 \ub418\uc9c0\ub9cc deprecated\ub77c\uace0 \uc548\ub0b4\ud55c\ub2e4. default browser target\ub3c4 Chrome 111, Edge 111, Firefox 114, Safari 16.4\ub85c \uc62c\ub77c\uac14\ub2e4.<\/p>\n<h2>\uc65c \uc911\uc694\ud55c\uac00<\/h2>\n<p><strong>\ud655\uc778\ub41c \uc0ac\uc2e4:<\/strong> Nuxt 3 EOL, Nuxt 4 active status, Nuxt 4.5\uc758 Vite 8 \ubc0f experimental SSR streaming\uc740 \uacf5\uc2dd \ubb38\uc11c\uc5d0 \uba85\uc2dc\ub3fc \uc788\ub2e4. <strong>\ud574\uc11d:<\/strong> v3 \uc720\uc9c0 \ube44\uc6a9\uc740 \uc0c8 \uae30\ub2a5\uc744 \ub193\uce58\ub294 \ube44\uc6a9\uc744 \ub118\uc5b4 \uacb0\ud568\u00b7\ubcf4\uc548 \uc218\uc815\uc758 \uae30\ubcf8 \uacf5\uae09\ub9dd\uc5d0\uc11c \uc774\ud0c8\ud558\ub294 \ube44\uc6a9\uc774 \ub410\ub2e4. <strong>\ubd88\ud655\uc2e4\uc131:<\/strong> \uc571\ubcc4 module\u00b7custom plugin\u00b7Node runtime\u00b7hosting adapter\uac00 \uc5b4\ub5a4 \ud68c\uadc0\ub97c \ub0bc\uc9c0\ub294 \uc77c\ubc18 \ubc1c\ud45c\ub85c \uc54c \uc218 \uc5c6\ub2e4. \ud2b9\ud788 experimental \ud45c\uae30\uac00 \uc788\ub294 SSR streaming\uacfc Nuxt 5 future \uc635\uc158\uc740 \uc790\uccb4 traffic\uacfc observability\ub85c \uac80\uc99d\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p>\ud504\ub860\ud2b8\uc5d4\ub4dc\uc5d0\ub294 browser target \ubcc0\uacbd\uc774 \ubc88\ub4e4 \ud06c\uae30\uc640 \uad6c\ud615 \ube0c\ub77c\uc6b0\uc800 \uc9c0\uc6d0 \uc815\ucc45\uc744, \uc11c\ubc84\uc5d0\ub294 Nitro rendering\u00b7cache\u00b7edge adapter\uac00 \uc601\ud5a5\uc744 \uc900\ub2e4. \uac19\uc740 route\ub77c\ub3c4 \uac1c\ubc1c \uc11c\ubc84\u00b7CI\u00b7preview\u00b7production\uc5d0\uc11c Node \ubc84\uc804\uacfc \ud658\uacbd \ubcc0\uc218\uac00 \ub2e4\ub974\uba74 \ub9c8\uc774\uadf8\ub808\uc774\uc158 \uacb0\uacfc\ub3c4 \ub2ec\ub77c\uc9c4\ub2e4. \ub530\ub77c\uc11c \u201cnpm update \ud6c4 \ud398\uc774\uc9c0\ub97c \uc5f4\uc5b4 \ubd24\ub2e4\u201d\uac00 \uc544\ub2c8\ub77c URL \ub9e4\ud2b8\ub9ad\uc2a4\uc640 \uc751\ub2f5 \ud5e4\ub354\uae4c\uc9c0 \ube44\uad50\ud574\uc57c \ud55c\ub2e4.<\/p>\n<h3>1. Nuxt 3 EOL\uc740 \ubcf4\uc548 \ud328\uce58\uc758 \uc885\ub8cc\uc810\uc774\ub2e4<\/h3>\n<p><strong>\ubcc0\uacbd \ub0b4\uc6a9:<\/strong> Nuxt Roadmap\uc740 2026\ub144 7\uc6d4 31\uc77c\ubd80\ud130 v3\uac00 bug fix\uc640 security patch\ub97c \ubc1b\uc9c0 \uc54a\ub294\ub2e4\uace0 \ubc1d\ud78c\ub2e4. <strong>\uc2e4\uc81c \uc601\ud5a5:<\/strong> \uc0c8 \ucde8\uc57d\uc810\uc774\ub098 framework-level \ud68c\uadc0\uac00 \ubc1c\uacac\ub3fc\ub3c4 \uacf5\uc2dd v3 \uc218\uc815\uc73c\ub85c \ud574\uacb0\ud560 \uc218 \uc5c6\uc73c\uba70, downstream module \ud328\uce58\ub9cc \uae30\ub2e4\ub9ac\ub294 \uc804\ub7b5\uc740 \ubd88\uc644\uc804\ud558\ub2e4. <strong>\uc801\uc6a9\/\ud68c\ud53c \uc870\uac74:<\/strong> \uc989\uc2dc \ub300\uaddc\ubaa8 \uc7ac\uc791\uc131 \ub300\uc2e0 v3 \uc790\uc0b0 \ubaa9\ub85d, \uacf5\uac1c server route, auth\/session, image\/upload, cache \uacbd\ub85c\ub97c \uc704\ud5d8\ub3c4 \uc21c\uc73c\ub85c \ubd84\ub958\ud55c\ub2e4. \ub2e8\uae30\uc801\uc73c\ub85c \uc9c0\uc6d0 \uacc4\uc57d\uc744 \uc0ac\uc6a9\ud558\ub354\ub77c\ub3c4 Nuxt 4 \uc774\ub3d9 \uc77c\uc815\uacfc \uc18c\uc720\uc790\ub97c \uace0\uc815\ud55c\ub2e4. <strong>\uac80\uc99d \ubc29\ubc95:<\/strong> <code>package.json<\/code>\u00b7lockfile\u00b7\ubc30\ud3ec \uc774\ubbf8\uc9c0\uc5d0\uc11c Nuxt\uc640 Node \ubc84\uc804\uc744 \uc218\uc9d1\ud558\uace0, dependency audit, SAST, SSR route smoke test\ub97c \uae30\uc900\uc120\uc73c\ub85c \ub0a8\uae34\ub2e4.<\/p>\n<h3>2. Vite 8\uc740 plugin\uacfc transform \uc124\uc815\uc758 \ud638\ud658\uc131 \uc2dc\ud5d8\uc774 \ud575\uc2ec\uc774\ub2e4<\/h3>\n<p><strong>\ubcc0\uacbd \ub0b4\uc6a9:<\/strong> Nuxt 4.5\ub294 Vite 8\uc744 \uc0ac\uc6a9\ud558\uace0 Vite 8\uc740 Rolldown\/Oxc \uae30\ubc18 \ub3c4\uad6c\ub85c \uc774\ub3d9\ud55c\ub2e4. <strong>\uc2e4\uc81c \uc601\ud5a5:<\/strong> custom Vite plugin, <code>optimizeDeps<\/code>, JSX transform, legacy esbuild option\uc5d0 \uc758\uc874\ud55c \uc571\uc740 \uac1c\ubc1c \uc2dc\uc791\u00b7HMR\u00b7production bundle\uc5d0\uc11c \uc11c\ub85c \ub2e4\ub978 \ud68c\uadc0\ub97c \ub9cc\ub0a0 \uc218 \uc788\ub2e4. <strong>\uc801\uc6a9\/\ud68c\ud53c \uc870\uac74:<\/strong> plugin\uc744 \ucd5c\uc2e0 \uc9c0\uc6d0 \ubc94\uc704\uc640 peer dependency\ub85c \ubaa9\ub85d\ud654\ud558\uace0, deprecated \uc635\uc158\uc744 \ud638\ud658 \ub808\uc774\uc5b4\uc5d0\ub9cc \uc758\uc874\ud558\uc9c0 \uc54a\uac8c <code>rolldownOptions<\/code>\/<code>oxc<\/code> \uc774\uad00 \uacc4\ud68d\uc744 \ub9cc\ub4e0\ub2e4. Safari 16.4 \ubbf8\ub9cc\uc744 \uc9c0\uc6d0\ud574\uc57c \ud55c\ub2e4\uba74 target\uc744 \uba85\uc2dc\ud558\uace0 polyfill \uc804\ub7b5\uc744 \uc81c\ud488 \uc694\uad6c\uc640 \ud568\uaed8 \uc7ac\uac80\ud1a0\ud55c\ub2e4. <strong>\uac80\uc99d \ubc29\ubc95:<\/strong> clean install \ud6c4 <code>nuxi typecheck<\/code>, production build, cold dev start, HMR, chunk \ubd84\uc11d\uc744 CI\uc5d0\uc11c \ube44\uad50\ud558\uace0 \uc9c0\uc6d0 \ube0c\ub77c\uc6b0\uc800 \uc2e4\uc81c \uae30\uae30\ub85c e2e\ub97c \uc2e4\ud589\ud55c\ub2e4.<\/p>\n<h3>3. SSR streaming\uc740 TTFB \uac1c\uc120 \uac00\uc124\uc774\uba70 cache \uacc4\uc57d \ubcc0\uacbd\uc774\ub2e4<\/h3>\n<p><strong>\ubcc0\uacbd \ub0b4\uc6a9:<\/strong> Nuxt 4.5\ub294 SSR streaming\uc744 experimental\ub85c \uc81c\uacf5\ud55c\ub2e4. <strong>\uc2e4\uc81c \uc601\ud5a5:<\/strong> \ub290\ub9b0 \ub370\uc774\ud130 \uc77c\ubd80\ub97c \uae30\ub2e4\ub9ac\uc9c0 \uc54a\uace0 HTML\uc744 \uc804\uc1a1\ud560 \uc5ec\uc9c0\uac00 \uc788\uc9c0\ub9cc, CDN buffering, error boundary, SEO crawler, hydration \uc21c\uc11c, cache header\uac00 \uae30\uc874\uacfc \ub2ec\ub77c\uc9c8 \uc218 \uc788\ub2e4. <strong>\uc801\uc6a9\/\ud68c\ud53c \uc870\uac74:<\/strong> \uac1c\uc778\ud654 \ud398\uc774\uc9c0\u00b7\uacb0\uc81c\u00b7\uc778\uc99d callback\ucc98\ub7fc \uc644\uc804\ud55c \uc751\ub2f5\uacfc \uc624\ub958 \ucc98\ub9ac \uacc4\uc57d\uc774 \uc911\uc694\ud55c \uacbd\ub85c\uc5d0\ub294 \ucc98\uc74c\ubd80\ud130 \uc801\uc6a9\ud558\uc9c0 \uc54a\ub294\ub2e4. public content route \ud55c \uac1c\ub97c flag\ub85c \uace8\ub77c hosting provider\uac00 chunked response\ub97c \uc2e4\uc81c \uc804\ub2ec\ud558\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4. <strong>\uac80\uc99d \ubc29\ubc95:<\/strong> WebPageTest\/RUM\uc73c\ub85c TTFB\u00b7LCP\u00b7hydration error\ub97c \ube44\uad50\ud558\uace0 <code>curl -N<\/code>\ub85c \uccab bytes\uc640 \uc885\ub8cc \uc2dc\uc810\uc744 \uad00\ucc30\ud55c\ub2e4. \ubd07 user-agent\uc640 cache hit\/miss, 4xx\/5xx\ub97c \ubcc4\ub3c4 \ub300\uc2dc\ubcf4\ub4dc\ub85c \ubcf8\ub2e4.<\/p>\n<h3>4. Nuxt 5 compatibilityVersion\uc740 migration linter\ub85c \uc0ac\uc6a9\ud55c\ub2e4<\/h3>\n<p><strong>\ubcc0\uacbd \ub0b4\uc6a9:<\/strong> Nuxt 4.2+\uc5d0\uc11c\ub294 <a href=\"https:\/\/nuxt.com\/docs\/4.x\/getting-started\/upgrade\" target=\"_blank\" rel=\"noopener\">future.compatibilityVersion: 5<\/a>\ub85c Vite Environment API, case-sensitive routing, typed pages \ub4f1 Nuxt 5 \uae30\ubcf8 \ub3d9\uc791\uc744 \ubbf8\ub9ac \uc2dc\ud5d8\ud560 \uc218 \uc788\ub2e4. <strong>\uc2e4\uc81c \uc601\ud5a5:<\/strong> \ub300\uc18c\ubb38\uc790\uac00 \ub2e4\ub978 \ub0b4\ubd80 \ub9c1\ud06c\ub098 Options API, side-effect import\uac00 \uc228\uaca8\uc838 \uc788\uc5c8\ub2e4\uba74 preview\uc5d0\uc11c \uc870\uae30\uc5d0 \ubc1c\uacac\ud55c\ub2e4. <strong>\uc801\uc6a9\/\ud68c\ud53c \uc870\uac74:<\/strong> \uc124\uc815\uc740 \ubcc4\ub3c4 preview branch\/environment\uc5d0\uc11c\ub9cc \ucf1c\uace0 route canonical URL\uacfc redirect \uaddc\uce59\uc744 \uba3c\uc800 \uc815\uc758\ud55c\ub2e4. docs\uac00 \u201csubject to change\u201d\ub77c\uace0 \uba85\uc2dc\ud558\ubbc0\ub85c \uc774\ub97c \ud655\uc815 \ud638\ud658 \ubcf4\uc99d\uc73c\ub85c \uc4f0\uc9c0 \uc54a\ub294\ub2e4. <strong>\uac80\uc99d \ubc29\ubc95:<\/strong> sitemap URL \uc804\uc218\uc640 analytics \uc0c1\uc704 landing URL\uc744 casing \ud3ec\ud568\ud574 \uc694\uccad\ud558\uace0, 200\/301\/404 \ubd84\ud3ec, typed route typecheck, client hydration \uc624\ub958\ub97c \uae30\uc900 \ube0c\ub79c\uce58\uc640 \ube44\uad50\ud55c\ub2e4.<\/p>\n<h2>\uac1c\ubc1c\uc790 \uc2e4\ud589 \uacc4\ud68d<\/h2>\n<ol>\n<li><strong>P0:<\/strong> <code>package.json<\/code>, lockfile, Dockerfile\/hosting \uc124\uc815\uc5d0\uc11c Nuxt\u00b7Node\u00b7Vite\u00b7module \ubc84\uc804\uc744 inventory\ub85c \ucd94\ucd9c\ud55c\ub2e4.<\/li>\n<li><strong>P0:<\/strong> <code>docs\/nuxt3-eol-migration.md<\/code>\uc5d0 \uacf5\uac1c route, auth, server API, image, cache\uc758 \uc18c\uc720\uc790\u00b7\uc704\ud5d8\ub3c4\u00b7Nuxt 4 \ubaa9\ud45c\uc77c\uc744 \uae30\ub85d\ud55c\ub2e4.<\/li>\n<li><strong>P1:<\/strong> Nuxt 4.5.2 \ud6c4\ubcf4 \ube0c\ub79c\uce58\uc5d0\uc11c <code>npx nuxt upgrade<\/code>\ub97c \uc2e4\ud589\ud558\uace0 clean install, typecheck, lint, unit, build\ub97c CI artifact\ub85c \ubcf4\uad00\ud55c\ub2e4.<\/li>\n<li><strong>P1:<\/strong> <code>vite.plugins<\/code>, <code>optimizeDeps<\/code>, <code>esbuild<\/code> \uc124\uc815\uacfc peer dependency\ub97c audit\ud558\uace0 Vite 8 \uc9c0\uc6d0 \uc5ec\ubd80\ub97c \ud45c\ub85c \ub9cc\ub4e0\ub2e4.<\/li>\n<li><strong>P1:<\/strong> preview\uc5d0\uc11c SSR URL matrix(\uc815\uc0c1\u00b7404\u00b7redirect\u00b7\uc778\uc99d\u00b7\uc5d0\ub7ec)\uc640 response header\/cache policy\ub97c production \uae30\uc900\uc120\uacfc diff\ud55c\ub2e4.<\/li>\n<li><strong>P2:<\/strong> streaming\uc740 public route \ud558\ub098\uc5d0\ub9cc flag\ub85c \uc801\uc6a9\ud558\uace0 TTFB, LCP, hydration error, crawler \uc751\ub2f5\uc744 7\uc77c \ube44\uad50\ud55c\ub2e4.<\/li>\n<li><strong>P2:<\/strong> \ubcc4\ub3c4 CI job\uc5d0\uc11c <code>future.compatibilityVersion: 5<\/code>\ub97c \ucf1c\uace0 route casing\u00b7typed page\u00b7Options API \uacbd\uace0\ub97c backlog\ub85c \uc804\ud658\ud55c\ub2e4.<\/li>\n<\/ol>\n<h2>\ub9ac\uc2a4\ud06c\uc640 \ud55c\uacc4<\/h2>\n<p>Nuxt 4.5\uc758 SSR streaming\uc740 experimental\uc774\ubbc0\ub85c \uc131\ub2a5 \uac1c\uc120\uc744 \ubcf4\uc7a5\ud558\uc9c0 \uc54a\ub294\ub2e4. Vite 8 migration\uc740 plugin \uc0dd\ud0dc\uacc4\uc640 \ube0c\ub77c\uc6b0\uc800 \uc9c0\uc6d0 \uc815\ucc45\uc744 \ud568\uaed8 \ubc14\uafb8\uba70, \ud638\ud658 \ubcc0\ud658\uc774 \ud604\uc7ac \uc791\ub3d9\ud574\ub3c4 deprecated API\uc758 \uc7a5\uae30 \uc548\uc804\uc131\uc744 \ubcf4\uc7a5\ud558\uc9c0 \uc54a\ub294\ub2e4. \ub864\ubc31 \uc870\uac74\uc740 preview 5xx\/hydration error \uc99d\uac00, cache miss \uae09\uc99d, \ud575\uc2ec route\uc758 LCP \uc545\ud654, \uc9c0\uc6d0 \ube0c\ub77c\uc6b0\uc800 \uae30\ub2a5 \uc2e4\ud328\ub2e4. \uc774\ub54c production alias\ub97c \uc774\uc804 image\ub85c \ub418\ub3cc\ub9ac\uace0, framework upgrade\uc640 streaming flag\ub97c \ubd84\ub9ac\ud574 \uc6d0\uc778\uc744 \uc881\ud78c\ub2e4. Nuxt 5 \uad00\ub828 \uc635\uc158\ub3c4 \ucd9c\uc2dc \uc804 \ubcc0\uacbd\ub420 \uc218 \uc788\uc73c\ubbc0\ub85c production \uacc4\uc57d\uc73c\ub85c \uace0\uc815\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n<h2>FAQ<\/h2>\n<h3>Nuxt 3\ub294 2026\ub144 8\uc6d4\uc5d0\ub3c4 \uacc4\uc18d \uc368\ub3c4 \ub418\ub098?<\/h3>\n<p>\uc2e4\ud589\uc740 \uac00\ub2a5\ud558\uc9c0\ub9cc \uacf5\uc2dd \ubb38\uc11c\uc0c1 7\uc6d4 31\uc77c\ubd80\ud130 bug fix\uc640 security patch\ub97c \ubc1b\uc9c0 \uc54a\ub294\ub2e4. \uc704\ud5d8\ub3c4 \ud3c9\uac00\uc640 Nuxt 4 migration \uacc4\ud68d \uc5c6\uc774 \uc7a5\uae30 \uc6b4\uc601\ud558\ub294 \uac83\uc740 \uad8c\uc7a5\ub418\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n<h3>Nuxt 4.5\ub85c \uc62c\ub9ac\uba74 Vite \uc124\uc815\uc744 \ubb34\uc870\uac74 \uace0\uccd0\uc57c \ud558\ub098?<\/h3>\n<p>\ub300\ubd80\ubd84\uc758 \uc571\uc740 \ud22c\uba85\ud558\uac8c \uc5c5\uadf8\ub808\uc774\ub4dc\ub420 \uc218 \uc788\uc9c0\ub9cc custom plugin\u00b7\uc9c1\uc811 Vite \uc758\uc874\uc131\u00b7esbuild \uae30\ubc18 optimize \uc124\uc815\uc740 Vite 8 migration \ubb38\uc11c\ub97c \uae30\uc900\uc73c\ub85c \ubc18\ub4dc\uc2dc \ube4c\ub4dc\uc640 HMR\uc744 \uac80\uc99d\ud574\uc57c \ud55c\ub2e4.<\/p>\n<h3>SSR streaming\uc744 \ucf1c\uba74 SEO\uc640 \uc131\ub2a5\uc774 \ud56d\uc0c1 \uc88b\uc544\uc9c0\ub098?<\/h3>\n<p>\uc544\ub2c8\ub2e4. streaming\uc740 experimental\uc774\uba70 CDN buffering, crawler \ucc98\ub9ac, hydration, cache header\uc5d0 \uc88c\uc6b0\ub41c\ub2e4. public route\uc758 feature flag\uc640 \uc2e4\uce21 TTFB\/LCP\/HTML \uac80\uc99d\uc73c\ub85c\ub9cc \ud655\ub300\ud574\uc57c \ud55c\ub2e4.<\/p>\n<h2>\ucd9c\ucc98 \ubc0f \ucd94\uac00 \uc77d\uae30<\/h2>\n<ul>\n<li><a href=\"https:\/\/nuxt.com\/blog\/v4-5\" target=\"_blank\" rel=\"noopener\">Nuxt Blog \u2014 Nuxt 4.5 (2026-07-18)<\/a><\/li>\n<li><a href=\"https:\/\/nuxt.com\/docs\/4.x\/community\/roadmap\" target=\"_blank\" rel=\"noopener\">Nuxt Docs \u2014 Roadmap and support status<\/a><\/li>\n<li><a href=\"https:\/\/nuxt.com\/docs\/4.x\/getting-started\/upgrade\" target=\"_blank\" rel=\"noopener\">Nuxt Docs \u2014 Nuxt 4 upgrade and Nuxt 5 compatibility testing<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.5.2\" target=\"_blank\" rel=\"noopener\">Nuxt GitHub \u2014 v4.5.2 release<\/a><\/li>\n<li><a href=\"https:\/\/vite.dev\/guide\/migration.html\" target=\"_blank\" rel=\"noopener\">Vite Docs \u2014 Migration from v7 to Vite 8<\/a><\/li>\n<li><a href=\"https:\/\/nuxt.com\/docs\/4.x\/guide\/concepts\/rendering\" target=\"_blank\" rel=\"noopener\">Nuxt Docs \u2014 Rendering modes and SSR<\/a><\/li>\n<\/ul>\n<h2>\ub354 \uae4a\uac8c \uc77d\uae30: \uc2e4\uc804 \uac00\uc774\ub4dc<\/h2>\n<p>\uc774 \ub9ac\ud3ec\ud2b8\ub294 \ucd5c\uadfc \ud750\ub984\uc744 \ube60\ub974\uac8c \ud30c\uc545\ud558\uae30 \uc704\ud55c \uc694\uc57d\uc785\ub2c8\ub2e4. \uc2e4\uc81c \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc801\uc6a9\ud560 \ub54c\ub294 \uc544\ub798\uc758 \uae30\uc900 \uae00\uacfc \ud568\uaed8 \ud655\uc778\ud558\uba74 \ub354 \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n<ul>\n<li><a href=\"https:\/\/gilnas.synology.me\/wordpress\/113\/\">AI \uc5d0\uc774\uc804\ud2b8\ub780 \ubb34\uc5c7\uc778\uac00?<\/a><\/li>\n<li><a href=\"https:\/\/gilnas.synology.me\/wordpress\/114\/\">\ud504\ub86c\ud504\ud2b8 \uc778\uc81d\uc158 \ubcf4\uc548 \uccb4\ud06c\ub9ac\uc2a4\ud2b8<\/a><\/li>\n<li><a href=\"https:\/\/gilnas.synology.me\/wordpress\/115\/\">AI \ucf54\ub529 \ub3c4\uad6c \uc548\uc804 \uc6cc\ud06c\ud50c\ub85c<\/a><\/li>\n<li><a href=\"https:\/\/gilnas.synology.me\/wordpress\/116\/\">Nuxt SEO \uc124\uc815 \ubc29\ubc95<\/a><\/li>\n<li><a href=\"https:\/\/gilnas.synology.me\/wordpress\/117\/\">Nuxt\uc640 WordPress Headless CMS \uad6c\uc870<\/a><\/li>\n<li><a href=\"https:\/\/gilnas.synology.me\/wordpress\/118\/\">\uac1c\ubc1c\uc790 \ube14\ub85c\uadf8 \uc560\ub4dc\uc13c\uc2a4 \uc2b9\uc778 \uc804\ub7b5<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\ud575\uc2ec \ub2f5\ubcc0: 2026\ub144 7\uc6d4 31\uc77c\ubd80\ub85c Nuxt 3\ub294 \uacf5\uc2dd \uc9c0\uc6d0\uc774 \ub05d\ub0ac\uace0, \ud604\uc7ac active package\ub294 Nuxt 4\ub2e4. \uc774 \ubcc0\ud654\ub294 \ub2e8\uc21c\ud788 nuxt \ubc84\uc804\uc744 \uc62c\ub9ac\ub294 \ubb38\uc81c\uac00 \uc544\ub2c8\ub2e4. Nuxt 4.5\ub294 Vite 8, Rspack 2\/Rsbuild \uae30\ubc18 builder, experimental SSR streaming, Nuxt 5 \ud638\ud658 \uc900\ube44\ub97c \ub2f4\uc558\uace0, Nuxt 3\ub294 \ub354 \uc774\uc0c1 \ubc84\uadf8 \uc218\uc815\uc774\ub098 \ubcf4\uc548 \ud328\uce58\ub97c \ubc1b\uc9c0 \uc54a\ub294\ub2e4. \uc544\uc9c1 v3 \uc11c\ube44\uc2a4\uac00 \uc6b4\uc601 \uc911\uc774\ub77c\uba74 \ub2e4\uc74c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":497,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-498","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nuxt-trend"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/498","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/comments?post=498"}],"version-history":[{"count":0,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/498\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media\/497"}],"wp:attachment":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media?parent=498"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/categories?post=498"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/tags?post=498"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}