{"id":583,"date":"2026-10-09T00:03:51","date_gmt":"2026-10-09T00:03:51","guid":{"rendered":"https:\/\/gilnas.synology.me\/wordpress\/583\/"},"modified":"2026-10-09T00:03:51","modified_gmt":"2026-10-09T00:03:51","slug":"nuxt-%ec%84%9c%eb%b2%84-%ea%b2%bd%ea%b3%84%ec%99%80-vite-%eb%b0%b0%ed%8f%ac-%ea%b2%80%ec%a6%9d-nuxt-server-boundaries-and-vite-deployment-checks","status":"publish","type":"post","link":"https:\/\/gilnas.synology.me\/wordpress\/583\/","title":{"rendered":"Nuxt \uc11c\ubc84 \uacbd\uacc4\uc640 Vite \ubc30\ud3ec \uac80\uc99d | Nuxt Server Boundaries and Vite Deployment Checks"},"content":{"rendered":"<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/gilnas.synology.me\/wordpress\/wp-content\/uploads\/2026\/10\/nuxt-trend-hero-8.png\" alt=\"Nuxt \uc11c\ubc84 \uacbd\uacc4\uc640 Vite \ubc30\ud3ec \uac80\uc99d | Nuxt Server Boundaries and Vite Deployment Checks\" \/><\/figure>\n<p><strong>\ud575\uc2ec \ub2f5\ubcc0:<\/strong> \ucd5c\uadfc 72\uc2dc\uac04 Nuxt \uc0dd\ud0dc\uacc4\uc758 \ud575\uc2ec\uc740 \u2018\uc0c8 \uae30\ub2a5 \ub098\uc5f4\u2019\ubcf4\ub2e4 <strong>\uc11c\ubc84 \uacbd\uacc4\u00b7\uac1c\ubc1c \uc11c\ubc84\u00b7\ubc88\ub4e4 \ucd9c\ub825\uc758 \uc6b4\uc601 \uacc4\uc57d\uc744 \ud568\uaed8 \uc810\uac80\ud558\ub77c<\/strong>\ub294 \uc2e0\ud638\uc785\ub2c8\ub2e4. Nuxt 4.6\uc740 <code>nuxt\/server<\/code>\ub85c \uc11c\ubc84 API\uc758 \uc774\uc2dd\uc131\uc744 \uac15\ud654\ud588\uace0, H3 2.0.2\uc640 Vite 8.3.4\ub294 \uac01\uac01 \uc624\ub958 \ucc98\ub9ac\u00b7\ube4c\ub4dc\/HMR \uc548\uc815\uc131\uc744 \ubcf4\uc644\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p><strong>\uc694\uc57d:<\/strong> Nuxt\/Vue \ud504\ub860\ud2b8\uc5d4\ub4dc \ud300\uc740 \uc774\ubc88 3\uc77c \ub3d9\uc548 \uacf5\uac1c\ub41c Nuxt 4.6, Nuxt CLI v4, H3 2.0.2, Vite 8.3.4\ub97c \ud55c \ubb36\uc74c\uc73c\ub85c \uac80\ud1a0\ud574\uc57c \ud569\ub2c8\ub2e4. \uc989\uc2dc \uc804\uba74 \uc804\ud658\ud560 \ud544\uc694\ub294 \uc5c6\uc9c0\ub9cc Node \ub7f0\ud0c0\uc784, server handler import, HMR\u00b7\ube44\ub8e8\ud2b8 \ubc30\ud3ec\uc758 preload, CI \ub85c\uadf8 \ud615\uc2dd\uc744 \uc791\uc740 \uac80\uc99d \ube0c\ub79c\uce58\uc5d0\uc11c \ud655\uc778\ud558\ub294 \uac83\uc774 \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n<h2>3\uc77c \uacb0\ub860<\/h2>\n<p><strong>\ud655\uc778\ub41c \uc0ac\uc2e4:<\/strong> Nuxt 4.6(10\uc6d4 6\uc77c KST)\uc740 \uc11c\ubc84 \ucf54\ub4dc\ub97c Nitro\/H3\uc758 \uc9c1\uc811 import\uc5d0\uc11c \ubd84\ub9ac\ud560 \uc218 \uc788\ub294 <code>nuxt\/server<\/code>\uc640 CLI v4\ub97c \ud568\uaed8 \uc81c\uacf5\ud569\ub2c8\ub2e4. H3 2.0.2(10\uc6d4 7\uc77c KST)\ub294 Node stream \uc624\ub958\u00b7redirect\/no-content \uc751\ub2f5\u00b7\uc624\ub958 \ubbf8\ub4e4\uc6e8\uc5b4 \ucc98\ub9ac\ub97c \uace0\ucce4\uace0, Vite 8.3.4(10\uc6d4 8\uc77c KST)\ub294 chunk import map\uc758 non-root base preload\uc640 HMR\/restart\u00b7watcher \ubb38\uc81c\ub97c \ubcf4\uc644\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n<p><strong>\uc2e4\ubb34 \ud310\ub2e8:<\/strong> \uc774\ub294 \u2018\ubaa8\ub4e0 \uc571\uc744 \uc0c8 \ub7f0\ud0c0\uc784\uc73c\ub85c \uc62e\uae30\ub77c\u2019\ub294 \uacf5\uc9c0\uac00 \uc544\ub2d9\ub2c8\ub2e4. \uc0c8 API\uc640 \uacf5\uc6a9 \ubaa8\ub4c8\uc740 <code>nuxt\/server<\/code>\uc744 \uae30\ubcf8 \uacbd\uacc4\ub85c \uc0bc\uace0, Vite\ub97c \uc9c1\uc811 \ub610\ub294 Nuxt\ub97c \ud1b5\ud574 \uc4f0\ub294 \uc571\uc740 preview \ubc30\ud3ec\uc5d0\uc11c base path\u00b7CSS preload\u00b7HMR\uc744 \uc7ac\ud604\ud558\ub294 \ud3b8\uc774 \ube44\uc6a9 \ub300\ube44 \ud6a8\uacfc\uac00 \ud07d\ub2c8\ub2e4. Nitro\uc758 Vitest \ud1b5\ud569 \ucee4\ubc0b\uc740 \uc544\uc9c1 <strong>main \ube0c\ub79c\uce58\uc758 \ubbf8\ucd9c\uc2dc \uc791\uc5c5<\/strong>\uc774\ubbc0\ub85c \uc6b4\uc601 \uc758\uc874\uc131\uc73c\ub85c \ucc44\ud0dd\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc774\ubc88 72\uc2dc\uac04\uc5d0 \uc120\ubcc4\ud55c 6\uac1c \uc774\uc288<\/h2>\n<ul>\n<li><strong>Nuxt 4.6.0 \uc815\uc2dd:<\/strong> \uc11c\ubc84-agnostic \ubc29\ud5a5, <code>nuxt\/server<\/code>, portable request event \ubc0f typed <code>$fetch<\/code> \ud45c\uba74\uc744 \uacf5\uac1c\ud588\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>Nuxt CLI 4.0.0 \uc815\uc2dd:<\/strong> dev TUI, \uc694\uccad \ub2e8\uc704 \ub85c\uadf8\/\uc624\ub958 \uad00\ucc30, lock file \ubc0f <code>nuxt curl<\/code>\/<code>nuxt task<\/code>\ub97c \ucd94\uac00\ud588\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>H3 2.0.2 \uc815\uc2dd:<\/strong> Node handler stream \uc624\ub958\uc758 <code>onError<\/code> \ud638\ucd9c, redirect\/no-content reason phrase, handled response \uc804\ub2ec\uc744 \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>Vite 8.3.4 \uc815\uc2dd:<\/strong> non-root base + chunk import map preload, \uc7ac\uc2dc\uc791 \uc911 \uc7ac\uc2dc\uc791 \uc694\uccad, \uc815\uc801 alias \uacbd\uacc4, watcher \ubc0f dependency scan\uc744 \ubcf4\uc644\ud588\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>Nuxt main \ubbf8\ucd9c\uc2dc:<\/strong> <code>setPageLayout(false)<\/code> \ud0c0\uc785 \ud5c8\uc6a9 \ub4f1\uc758 \ud6c4\uc18d \uc218\uc815\uc774 \ubcd1\ud569\ub410\uc2b5\ub2c8\ub2e4. \ub2e4\uc74c patch \ud6c4\ubcf4\uc77c \uc218 \uc788\uc73c\ub098 \uc544\uc9c1 \ub9b4\ub9ac\uc2a4\uac00 \uc544\ub2d9\ub2c8\ub2e4.<\/li>\n<li><strong>Nitro main \ubbf8\ucd9c\uc2dc:<\/strong> Vite plugin\uc744 \ud1b5\ud55c Vitest\/Nitro runtime \ud14c\uc2a4\ud2b8 \uc9c0\uc6d0\uc774 \ubcd1\ud569\ub410\uc2b5\ub2c8\ub2e4. \ub9b4\ub9ac\uc2a4 \ub178\ud2b8\uac00 \ub098\uc624\uae30 \uc804\uae4c\uc9c0\ub294 \uad00\ucc30 \ub300\uc0c1\uc785\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2>\ud750\ub984 1 \u2014 Nuxt 4.6\uc758 \ud575\uc2ec\uc740 \u2018\uc11c\ubc84 \uad6c\ud604\u2019\uc774 \uc544\ub2c8\ub77c \u2018\uc11c\ubc84 \uacbd\uacc4\u2019<\/h2>\n<h3>\uc0ac\uc2e4\uacfc \uadfc\uac70<\/h3>\n<p>Nuxt 4.6\uc740 <a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.6.0\" target=\"_blank\" rel=\"noopener\">\uc815\uc2dd \ub9b4\ub9ac\uc2a4 \ub178\ud2b8<\/a>\uc5d0\uc11c <code>nuxt\/server<\/code>\ub97c handler\u00b7middleware\u00b7\uc11c\ubc84 \uc720\ud2f8\ub9ac\ud2f0\ub97c \uc704\ud55c \uc0c8 import surface\ub85c \uc124\uba85\ud569\ub2c8\ub2e4. \uae30\ubcf8 \uad6c\ud604\uc740 \uc5ec\uc804\ud788 Nitro\uc774\uc9c0\ub9cc, API\ub294 portable <code>RequestEvent<\/code>\uc640 web standard \uc911\uc2ec\uc73c\ub85c \uc124\uacc4\ub410\uc2b5\ub2c8\ub2e4. \uacf5\uc2dd \ubc1c\ud45c\ub294 \uc774 \uacbd\uacc4\uac00 Nuxt 5\uc758 Nitro v3\/H3 v2 \uc804\ud658\uc744 \ubd80\ub4dc\ub7fd\uac8c \ud558\uace0, \uc2e4\ud5d8\uc801 <code>@nuxt\/vite-server<\/code>\ub3c4 \uac00\ub2a5\ud558\uac8c \ud55c\ub2e4\uace0 \ubc1d\ud799\ub2c8\ub2e4.<\/p>\n<h3>\uc2dc\uc0ac\uc810<\/h3>\n<p><code>h3<\/code>\ub098 <code>nitropack<\/code>\uc744 \uc9c1\uc811 import\ud55c \ubaa8\ub4e0 \ud30c\uc77c\uc744 \uc77c\uad04 \uce58\ud658\ud560 \uc774\uc720\ub294 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub9cc \uc0c8 <code>server\/api<\/code>\uc640 \uc7ac\uc0ac\uc6a9\ub418\ub294 \ubaa8\ub4c8\uc740 \ubb38\uc11c\ud654\ub41c Nuxt \uacbd\uacc4\ub97c \uc6b0\uc120\ud558\uba74 \uc11c\ubc84 \uc5d4\uc9c4 major \ubcc0\ud654\uc5d0 \ub35c \ubb36\uc785\ub2c8\ub2e4. \ud30c\uc77c \uc5c5\ub85c\ub4dc \ub4f1 \uc0c8 \ud45c\uba74\uc5d0 \uc5c6\ub294 \uae30\ub2a5\uc740 \uae30\uc874 H3 API\ub97c \uc720\uc9c0\ud558\uace0, \uacbd\uacc4\ub97c \uc11e\ub294 \ud30c\uc77c\ub9cc \ubcc4\ub3c4\ub85c \ud14c\uc2a4\ud2b8\ud569\ub2c8\ub2e4.<\/p>\n<pre><code>import { defineEventHandler, getQuery } from 'nuxt\/server'\n\nexport default defineEventHandler((event) =&gt; {\n  const { locale = 'ko' } = getQuery&lt;{ locale?: string }&gt;(event)\n  return { locale }\n})<\/code><\/pre>\n<h3>\ubc14\ub85c \ud560 \uc77c<\/h3>\n<ul>\n<li><code>server\/api<\/code>, <code>server\/middleware<\/code>, \uc0ac\ub0b4 Nuxt module\uc5d0\uc11c <code>h3<\/code>\/<code>nitropack<\/code> \uc9c1\uc811 import\ub97c \ubaa9\ub85d\ud654\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc77d\uae30 \uc804\uc6a9 API \ud558\ub098\ub9cc <code>nuxt\/server<\/code>\ub85c \uc62e\uaca8 typecheck, SSR \uc694\uccad, preview smoke test\ub97c \ud1b5\uacfc\uc2dc\ud0b5\ub2c8\ub2e4.<\/li>\n<li>Nuxt 4.6\/CLI v4\ub294 Node.js 22.21+\u00b724.11+\u00b726+ \uc694\uad6c\uc0ac\ud56d\uacfc CI \uc774\ubbf8\uc9c0\uac00 \ub9de\ub294\uc9c0 \uba3c\uc800 \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<h2>\ud750\ub984 2 \u2014 CLI v4\uc640 Vite 8.3.4: \u2018\uac1c\ubc1c \uc11c\ubc84 \ubb38\uc81c\u2019\ub3c4 \ubc30\ud3ec \uc804 \uac80\uc99d \ud56d\ubaa9<\/h2>\n<h3>Nuxt CLI v4<\/h3>\n<p><a href=\"https:\/\/github.com\/nuxt\/cli\/releases\/tag\/v4.0.0\" target=\"_blank\" rel=\"noopener\">CLI v4 \ub9b4\ub9ac\uc2a4<\/a>\ub294 \uc694\uccad ID, \ub77c\uc6b0\ud2b8\u00b7\ub124\ud2b8\uc6cc\ud06c\u00b7\uc624\ub958\ub97c \ud0d0\uc0c9\ud558\ub294 \ud130\ubbf8\ub110 UI, source-mapped \uc5d0\ub7ec \ud654\uba74, \uc2e4\ud589 \uc911 \uc11c\ubc84\uc640 \ud1b5\uc2e0\ud558\ub294 <code>nuxt curl<\/code>\/<code>nuxt task<\/code>\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4. CI\ub098 non-TTY\uc5d0\uc11c\ub294 \uc77c\ubc18 \ub85c\uadf8\ub85c fallback\ud558\uba70 <code>--no-tui<\/code> \ub610\ub294 <code>NUXT_TUI=plain<\/code>\uc744 \uc4f8 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c \ub85c\uadf8 \ud30c\uc11c\uac00 TUI \ud14d\uc2a4\ud2b8\uc5d0 \uc758\uc874\ud558\uba74 \uc548 \ub429\ub2c8\ub2e4.<\/p>\n<h3>Vite 8.3.4<\/h3>\n<p><a href=\"https:\/\/github.com\/vitejs\/vite\/releases\/tag\/v8.3.4\" target=\"_blank\" rel=\"noopener\">Vite 8.3.4<\/a>\ub294 <code>chunkImportMap<\/code>\uacfc non-root base \uc870\ud569\uc758 preload, \uc9c4\ud589 \uc911 stylesheet preload, HMR \uae30\ubcf8\uac12 mutation, \uc7ac\uc2dc\uc791 \ub3c4\uc911\uc758 \uc7ac\uc2dc\uc791 \uc694\uccad, \uc815\uc801 alias path boundary \ub4f1\uc744 \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4. \uc774\ub294 \uae30\ub2a5 \ucd94\uac00\ubcf4\ub2e4 \uc815\uc801 \uc11c\ube0c\uacbd\ub85c\u00b7CDN\u00b7\ubb38\uc11c \uc0ac\uc774\ud2b8\u00b7\ub9c8\uc774\ud06c\ub85c\ud504\ub860\ud2b8\uc5d4\ub4dc\ucc98\ub7fc \ubc30\ud3ec URL\uc774 \ub8e8\ud2b8\uac00 \uc544\ub2cc \ud504\ub85c\uc81d\ud2b8\uc5d0 \uc2e4\ubb34\uc801\uc73c\ub85c \uc911\uc694\ud569\ub2c8\ub2e4.<\/p>\n<p><strong>\uac80\uc99d \ubc29\ubc95:<\/strong> <code>base<\/code>\uac00 <code>\/app\/<\/code> \uac19\uc740 preview \ud658\uacbd\uc5d0\uc11c build\u2192serve\ub97c \uc218\ud589\ud558\uace0, \ucf54\ub4dc \ubd84\ud560 \ub77c\uc6b0\ud2b8\uc758 CSS\/JS preload\uc640 \uc0c8\ub85c\uace0\uce68\uc744 \ube0c\ub77c\uc6b0\uc800 network \ud0ed \ubc0f e2e smoke test\ub85c \ud655\uc778\ud558\uc138\uc694. HMR\uc740 alias import \ubcc0\uacbd, CSS \ubcc0\uacbd, \uc5f0\uc18d \uc7ac\uc2dc\uc791\uc744 \uac01\uac01 \uc7ac\ud604\ud569\ub2c8\ub2e4.<\/p>\n<h2>\ud750\ub984 3 \u2014 H3 2.0.2\ub294 \uc11c\ubc84 \uc624\ub958\u00b7\uc751\ub2f5 \uacc4\uc57d\uc744 \uc881\ud600 \ubcf8\ub2e4<\/h2>\n<p><a href=\"https:\/\/github.com\/h3js\/h3\/releases\/tag\/v2.0.2\" target=\"_blank\" rel=\"noopener\">H3 2.0.2<\/a>\ub294 Node handler\uc758 stream \uc624\ub958\uc5d0\uc11c <code>onError<\/code>\ub97c \ud638\ucd9c\ud558\uace0, redirect\/no-content reason phrase \ubc0f \uc774\ubbf8 \ucc98\ub9ac\ub41c \uc751\ub2f5\uc758 \uc624\ub958 \ubbf8\ub4e4\uc6e8\uc5b4 \ud1b5\uacfc\ub97c \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4. \uc138\uc158\uc5d0\uc11c\ub294 legacy seal fallback\uc744 deprecated\ub85c \ud45c\uc2dc\ud588\uace0, route handler\ub294 validation schema\uc5d0\uc11c \uc785\ub825 \ud0c0\uc785\uc744 \ub354 \uc798 \ucd94\ub860\ud569\ub2c8\ub2e4.<\/p>\n<p><strong>\uac1c\ubc1c\uc790 \uad00\uc810:<\/strong> Nuxt 4.6\uc774 H3\/Nitro \uc9c1\uc811 \uacb0\ud569\uc744 \uc904\uc774\ub824\ub294 \uc774\uc720\uac00 \uc774 \ubcc0\ud654\uc5d0\uc11c \ub4dc\ub7ec\ub0a9\ub2c8\ub2e4. H3 v2\ub97c \uc9c1\uc811 \ub2e4\ub8e8\ub294 \uc11c\ubc84\u00b7\ubaa8\ub4c8\uc740 stream \uc2e4\ud328, redirect, \ube48 \uc751\ub2f5, session seal \ud68c\uc804\uc758 \ud1b5\ud569 \ud14c\uc2a4\ud2b8\ub97c \ucd94\uac00\ud558\uc138\uc694. Nuxt 4 \uc571\uc740 \uc758\uc874\uc131 \uac15\uc81c \uc0c1\ud5a5\ubcf4\ub2e4 Nuxt\uc758 \uc9c0\uc6d0 \uacbd\uacc4\ub97c \ub530\ub974\ub294 \uac83\uc774 \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n<h2>\ubbf8\ucd9c\uc2dc \uad00\ucc30 \u2014 \ubc30\ud3ec \uacc4\ud68d\uc5d0 \ub123\uc9c0 \ub9d0\uc544\uc57c \ud560 \uac83<\/h2>\n<p>Nuxt main\uc5d0\ub294 <a href=\"https:\/\/github.com\/nuxt\/nuxt\/commit\/48412f7a1610cb953d5b2310bfb03aa4eb5d1714\" target=\"_blank\" rel=\"noopener\"><code>setPageLayout(false)<\/code> \ud0c0\uc785 \uc218\uc815<\/a>\uc774, Nitro main\uc5d0\ub294 <a href=\"https:\/\/github.com\/nitrojs\/nitro\/commit\/cef5305050325a36601ff118b9651d43a0f9ba58\" target=\"_blank\" rel=\"noopener\">Vite \uae30\ubc18 Vitest\/Nitro test environment<\/a> \uc791\uc5c5\uc774 \ubcd1\ud569\ub410\uc2b5\ub2c8\ub2e4. \ub458 \ub2e4 \uc815\ud655\ud55c \ucee4\ubc0b\uc73c\ub85c \ud655\uc778\ub418\uc9c0\ub9cc <strong>\uc815\uc2dd \ub9b4\ub9ac\uc2a4\uac00 \uc544\ub2d9\ub2c8\ub2e4<\/strong>. \ucc38\uace0\u00b7\uc2e4\ud5d8\uc6a9 \ube0c\ub79c\uce58 \uc678\uc5d0\ub294 \ubc84\uc804 pin\uc774\ub098 \uc6b4\uc601 \uc77c\uc815\uc758 \uadfc\uac70\ub85c \uc0ac\uc6a9\ud558\uc9c0 \ub9c8\uc138\uc694.<\/p>\n<h2>\ud504\ub860\ud2b8\uc5d4\ub4dc \uac1c\ubc1c\uc790 \uccb4\ud06c\ub9ac\uc2a4\ud2b8<\/h2>\n<ul>\n<li><strong>P0:<\/strong> CI\/\ucee8\ud14c\uc774\ub108\uc758 Node \ubc84\uc804, package manager lockfile, <code>nuxi typecheck<\/code>\u00b7production build\ub97c \uc5c5\uadf8\ub808\uc774\ub4dc \uc804\ud6c4\ub85c \ube44\uad50\ud55c\ub2e4.<\/li>\n<li><strong>P0:<\/strong> preview\uc758 non-root base \uacbd\ub85c\uc5d0\uc11c lazy route, CSS\/JS preload, \uc0c8\ub85c\uace0\uce68, redirect\ub97c smoke test\ud55c\ub2e4.<\/li>\n<li><strong>P1:<\/strong> \uc0c8 API\u00b7\uacf5\uc6a9 Nuxt module\ubd80\ud130 <code>nuxt\/server<\/code> import\ub97c \ucc44\ud0dd\ud558\uace0 \uc9c1\uc811 H3 import\ub294 \uc778\ubca4\ud1a0\ub9ac\ub85c \uad00\ub9ac\ud55c\ub2e4.<\/li>\n<li><strong>P1:<\/strong> H3\ub97c \uc9c1\uc811 \uc4f0\ub294 \uc11c\ube44\uc2a4\ub294 stream error\u00b7redirect\u00b7no-content\u00b7session key rotation \ud14c\uc2a4\ud2b8\ub97c \ub9cc\ub4e0\ub2e4.<\/li>\n<li><strong>P1:<\/strong> CI\uc5d0\ub294 plain \ub85c\uadf8 \ubaa8\ub4dc\ub85c \uace0\uc815\ud558\uace0, \ub85c\uceec\uc5d0\uc11c\ub9cc CLI v4 TUI\/\uc694\uccad \ud0c0\uc784\ub77c\uc778\uc744 \ud65c\uc6a9\ud55c\ub2e4.<\/li>\n<li><strong>P2:<\/strong> Nitro\uc758 Vitest \ud1b5\ud569\uc740 \uc815\uc2dd release note\uac00 \ub098\uc628 \ub4a4 \ubcc4\ub3c4 spike\uc5d0\uc11c \ud3c9\uac00\ud55c\ub2e4.<\/li>\n<\/ul>\n<h2>FAQ<\/h2>\n<h3>Nuxt 4.6\uc73c\ub85c \uc62c\ub9ac\uba74 \ubaa8\ub4e0 server handler\ub97c \ubc14\uafd4\uc57c \ud558\ub098\uc694?<\/h3>\n<p>\uc544\ub2d9\ub2c8\ub2e4. \uae30\uc874 H3\/Nitro import\ub97c \uc720\uc9c0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc0c8 \ucf54\ub4dc\uc640 \uacf5\uc6a9 \ubaa8\ub4c8\ubd80\ud130 <code>nuxt\/server<\/code>\uc744 \uc0ac\uc6a9\ud558\uace0, \ud30c\uc77c\ubcc4 \ud14c\uc2a4\ud2b8\ub85c \uc810\uc9c4 \uc804\ud658\ud558\uc138\uc694.<\/p>\n<h3>Vite 8.3.4\ub294 \ubaa8\ub4e0 \ud504\ub85c\uc81d\ud2b8\uac00 \uae34\uae09 \uc801\uc6a9\ud574\uc57c \ud558\ub098\uc694?<\/h3>\n<p>\uae34\uae09 \ubcf4\uc548 \ub9b4\ub9ac\uc2a4\ub77c\ub294 \uadfc\uac70\ub294 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub9cc non-root base, chunk import map, HMR \uc7ac\uc2dc\uc791, alias\/watch \ubb38\uc81c\uac00 \uc788\ub294 \ud300\uc740 preview\uc5d0\uc11c \uc6b0\uc120 \uc7ac\ud604\u00b7\uac80\uc99d\ud560 \uac00\uce58\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>Nitro\uc758 Vitest \uc9c0\uc6d0\uc744 \uc9c0\uae08 \ub3c4\uc785\ud574\ub3c4 \ub418\ub098\uc694?<\/h3>\n<p>\uc544\uc9c1 main \ube0c\ub79c\uce58 \ucee4\ubc0b\uc785\ub2c8\ub2e4. \ucd9c\uc2dc\ub41c \ud328\ud0a4\uc9c0 \uae30\ub2a5\uc73c\ub85c \ud45c\ud604\ud558\uac70\ub098 production \ud45c\uc900\uc73c\ub85c \ucc44\ud0dd\ud558\uc9c0 \ub9d0\uace0, \uacf5\uc2dd \ub9b4\ub9ac\uc2a4\uc640 \ubb38\uc11c\ub97c \uae30\ub2e4\ub9ac\uc138\uc694.<\/p>\n<h2>\uc8fc\uc694 \ucd9c\ucc98<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.6.0\" target=\"_blank\" rel=\"noopener\">Nuxt 4.6.0 release notes<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/cli\/releases\/tag\/v4.0.0\" target=\"_blank\" rel=\"noopener\">Nuxt CLI 4.0.0 release notes<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/h3js\/h3\/releases\/tag\/v2.0.2\" target=\"_blank\" rel=\"noopener\">H3 2.0.2 release notes<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vitejs\/vite\/releases\/tag\/v8.3.4\" target=\"_blank\" rel=\"noopener\">Vite 8.3.4 release notes<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/commit\/48412f7a1610cb953d5b2310bfb03aa4eb5d1714\" target=\"_blank\" rel=\"noopener\">Nuxt main commit: setPageLayout type follow-up (unreleased)<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nitrojs\/nitro\/commit\/cef5305050325a36601ff118b9651d43a0f9ba58\" target=\"_blank\" rel=\"noopener\">Nitro main commit: Vitest support (unreleased)<\/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: \ucd5c\uadfc 72\uc2dc\uac04 Nuxt \uc0dd\ud0dc\uacc4\uc758 \ud575\uc2ec\uc740 \u2018\uc0c8 \uae30\ub2a5 \ub098\uc5f4\u2019\ubcf4\ub2e4 \uc11c\ubc84 \uacbd\uacc4\u00b7\uac1c\ubc1c \uc11c\ubc84\u00b7\ubc88\ub4e4 \ucd9c\ub825\uc758 \uc6b4\uc601 \uacc4\uc57d\uc744 \ud568\uaed8 \uc810\uac80\ud558\ub77c\ub294 \uc2e0\ud638\uc785\ub2c8\ub2e4. Nuxt 4.6\uc740 nuxt\/server\ub85c \uc11c\ubc84 API\uc758 \uc774\uc2dd\uc131\uc744 \uac15\ud654\ud588\uace0, H3 2.0.2\uc640 Vite 8.3.4\ub294 \uac01\uac01 \uc624\ub958 \ucc98\ub9ac\u00b7\ube4c\ub4dc\/HMR \uc548\uc815\uc131\uc744 \ubcf4\uc644\ud588\uc2b5\ub2c8\ub2e4. \uc694\uc57d: Nuxt\/Vue \ud504\ub860\ud2b8\uc5d4\ub4dc \ud300\uc740 \uc774\ubc88 3\uc77c \ub3d9\uc548 \uacf5\uac1c\ub41c Nuxt 4.6, Nuxt CLI v4, H3 2.0.2, Vite 8.3.4\ub97c \ud55c \ubb36\uc74c\uc73c\ub85c \uac80\ud1a0\ud574\uc57c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":582,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-583","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\/583","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=583"}],"version-history":[{"count":0,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/583\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media\/582"}],"wp:attachment":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media?parent=583"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/categories?post=583"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/tags?post=583"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}