{"id":640,"date":"2026-10-19T13:18:25","date_gmt":"2026-10-19T13:18:25","guid":{"rendered":"https:\/\/gilnas.synology.me\/wordpress\/640\/"},"modified":"2026-10-19T13:18:25","modified_gmt":"2026-10-19T13:18:25","slug":"nuxt-4-6%c2%b74-6-1-cli-v4%ec%99%80-server-agnostic-%ec%a0%84%ed%99%98-%ec%a0%84%ec%97%90-%ec%a0%90%ea%b2%80%ed%95%a0-ssr%c2%b7ci%c2%b7%eb%b3%b4%ec%95%88-nuxt-4-6-4-6-1-operations","status":"publish","type":"post","link":"https:\/\/gilnas.synology.me\/wordpress\/640\/","title":{"rendered":"Nuxt 4.6\u00b74.6.1: CLI v4\uc640 server-agnostic \uc804\ud658 \uc804\uc5d0 \uc810\uac80\ud560 SSR\u00b7CI\u00b7\ubcf4\uc548 | Nuxt 4.6\/4.6.1 Operations"},"content":{"rendered":"<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/gilnas.synology.me\/wordpress\/wp-content\/uploads\/2026\/10\/2026-10-19-nuxt-card.png\" alt=\"Nuxt 4.6\u00b74.6.1: CLI v4\uc640 server-agnostic \uc804\ud658 \uc804\uc5d0 \uc810\uac80\ud560 SSR\u00b7CI\u00b7\ubcf4\uc548 | Nuxt 4.6\/4.6.1 Operations\" \/><\/figure>\n<p><strong>\ud575\uc2ec \ub2f5\ubcc0:<\/strong> 10\uc6d4 5\uc77c \uacf5\uac1c\ub41c Nuxt 4.6\uacfc 10\uc6d4 9\uc77c\uc758 4.6.1\uc740 \ub2e8\uc21c \ud328\uce58 \ubb36\uc74c\uc774 \uc544\ub2d9\ub2c8\ub2e4. \uac1c\ubc1c \uc11c\ubc84\ub97c \ubc14\ub77c\ubcf4\ub294 \ubc29\uc2dd, \uc11c\ubc84 \ucf54\ub4dc\ub97c \ubc30\ud3ec \ub300\uc0c1\uc5d0\uc11c \ub5bc\uc5b4\ub0b4\ub294 \ubc29\uc2dd, \ud0c0\uc785\uc774 \uc788\ub294 <code>$fetch<\/code>\uc640 \uc11c\ubc84 \ub77c\uc6b0\ud2b8\uc758 \uc5f0\uacb0\uc774 \ubc14\ub00c\ub294 \ub9b4\ub9ac\uc2a4\uc785\ub2c8\ub2e4. Nuxt 4\ub97c \uc6b4\uc601 \uc911\uc774\ub77c\uba74 \uc774\ubc88 \uc8fc\uc5d0\ub294 \uc5c5\uadf8\ub808\uc774\ub4dc \ubc84\ud2bc\ubcf4\ub2e4 \uba3c\uc800 Node \ubc84\uc804, <code>nuxt.config.ts<\/code>, CI\uac00 \uc2e4\ud589\ud558\ub294 dev\u00b7build\u00b7preview \uacbd\ub85c\ub97c \ud655\uc778\ud558\ub294 \ud3b8\uc774 \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n<p>4.6\uc740 \uc0c8 Nuxt CLI v4\ub97c \ud568\uaed8 \uac00\uc838\uc635\ub2c8\ub2e4. \ud130\ubbf8\ub110\uc5d0\uc11c \uc694\uccad\u00b7\uc624\ub958\u00b7\uc7ac\uc2dc\uc791 \uc774\uc720\ub97c \ubcf4\uc5ec\uc8fc\uace0, <code>.nuxt\/<\/code>\uc758 \uc7a0\uae08 \ud30c\uc77c\uc744 \ud1b5\ud574 \ub450 \ubc88\uc9f8 <code>nuxt dev<\/code>\uac00 \uae30\uc874 \uc11c\ubc84\ub97c \ub118\uaca8\ubc1b\uac70\ub098 \uae30\ub2e4\ub9b4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub85c\uceec\uc5d0\uc11c \uac1c\ubc1c\uc790\uc640 AI \uc5d0\uc774\uc804\ud2b8\uac00 \uac19\uc740 \ud504\ub85c\uc81d\ud2b8\ub97c \ub9cc\uc9c0\ub294 \ud300\uc5d0\ub294 \uaf64 \uc2e4\ubb34\uc801\uc778 \ubcc0\ud654\uc785\ub2c8\ub2e4. 4.6.1\uc740 \uc774\uc5b4\uc11c Vite 8.1+ \uc758\uc874\uc131 \ud78c\ud2b8, virtual import, SSR lifecycle, <code>nitropack\/types<\/code> \ud574\uc11d \uac19\uc740 \uac1c\ubc1c\u00b7\ube4c\ub4dc \uacbd\ub85c\uc758 \uc624\ub958\ub97c \uace0\ucce4\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\ub9cc \uc5c5\ub370\uc774\ud2b8\ub9cc\uc73c\ub85c \uc548\uc804\ud574\uc9c0\ub294 \uac83\uc740 \uc544\ub2d9\ub2c8\ub2e4. Nuxt\ub294 7\uc6d4\uc758 \ubcf4\uc548 \ud328\uce58\uc5d0\uc11c server islands, <code>routeRules<\/code>, \uce90\uc2dc\ub41c <code>_payload.json<\/code>, DevTools \ubb38\uc81c\ub97c \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4. \uc544\uc9c1 \uadf8 \ud328\uce58 \uacc4\uc5f4\uc744 \ubc18\uc601\ud558\uc9c0 \uc54a\uc558\ub2e4\uba74 4.6 \ud0d0\uc0c9\ubcf4\ub2e4 \ubcf4\uc548 \uc5c5\ub370\uc774\ud2b8\uc640 CDN \uce90\uc2dc \uc810\uac80\uc774 \uc6b0\uc120\uc785\ub2c8\ub2e4. \uc774\ubc88 \uae00\uc740 \uc0c8 \uae30\ub2a5\uc744 \ubb34\uc791\uc815 \uc801\uc6a9\ud558\uae30\ubcf4\ub2e4, SSR \uc11c\ube44\uc2a4\uc5d0\uc11c \uc2e4\uc81c\ub85c \uc5b4\ub5a4 \ud30c\uc77c\uacfc \ud14c\uc2a4\ud2b8\ub97c \ud655\uc778\ud560\uc9c0\uc5d0 \ucd08\uc810\uc744 \ub9de\ucda5\ub2c8\ub2e4.<\/p>\n<h2>\ubb34\uc2a8 \uc77c\uc774 \uc788\uc5c8\ub098<\/h2>\n<p>Nuxt \ud300\uc740 <a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.6.0\" target=\"_blank\" rel=\"noopener\">2026\ub144 10\uc6d4 5\uc77c Nuxt 4.6.0<\/a>\uc744 \ubc1c\ud45c\ud588\uc2b5\ub2c8\ub2e4. \uacf5\uc2dd \ube14\ub85c\uadf8\uc5d0 \ub530\ub974\uba74 \uc774\ubc88 \ub9c8\uc774\ub108 \ub9b4\ub9ac\uc2a4\ub294 4.5.2 \uc774\ud6c4 362\uac1c \uc774\uc0c1 \ucee4\ubc0b\uc744 \ud3ec\ud568\ud558\uba70, \uc11c\ubc84\uc5d0 \ub35c \ubb36\uc778 Nuxt\ub97c \ud5a5\ud55c \uccab \ub2e8\uacc4\ub85c <code>nuxt\/server<\/code>, \ub2e4\uc2dc \uad6c\uc131\ud55c typed <code>$fetch<\/code>, \uc138\uc158, Vue Vapor \uc9c0\uc6d0, \uac1c\ubc1c \uc624\ub958 \ud654\uba74\uc744 \ub2f4\uc558\uc2b5\ub2c8\ub2e4. \ud568\uaed8 \ubc30\ud3ec\ub41c <a href=\"https:\/\/nuxt.com\/blog\/v4-6\" target=\"_blank\" rel=\"noopener\">Nuxt CLI v4<\/a>\ub294 <code>nuxt dev<\/code>\uc758 \uc778\ud130\ub799\ud2f0\ube0c \ud130\ubbf8\ub110 UI, \uc694\uccad ID, \uc7ac\uc2dc\uc791 \uc6d0\uc778\u00b7\ubaa8\ub4c8 \ucd08\uae30\ud654 \uc2dc\uac04 \ud45c\uc2dc, <code>nuxt curl<\/code>\u00b7<code>nuxt task<\/code>\u00b7<code>nuxt docs<\/code> \uba85\ub839\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<p>CLI v4\ub294 Nuxt \uc758\uc874\uc131\uc73c\ub85c \ud3ec\ud568\ub418\ubbc0\ub85c Nuxt\ub97c \uc62c\ub9ac\uba74 \uac19\uc774 \ub4e4\uc5b4\uc635\ub2c8\ub2e4. \uacf5\uc2dd \ube44\uad50 \uc218\uce58\ub294 CLI \uc124\uce58 \ud06c\uae30 13.1MB\uc5d0\uc11c 3.5MB, Linux \uc720\ud734 \uba54\ubaa8\ub9ac 630MB\uc5d0\uc11c 440MB\ub85c\uc758 \uac10\uc18c\ub97c \uc81c\uc2dc\ud558\uc9c0\ub9cc, \uc774\ub294 Nuxt \ud300 \uce21\uc815 \ud658\uacbd\uc758 \uc218\uce58\uc785\ub2c8\ub2e4. \uac01 \ud504\ub85c\uc81d\ud2b8\uc758 \ubaa8\ub4c8 \uc218, Node \ubc84\uc804, \ud30c\uc77c \uac10\uc2dc \ud658\uacbd\uc5d0\uc11c \uac19\uc740 \uacb0\uacfc\uac00 \ub09c\ub2e4\uace0 \ub2e8\uc815\ud560 \uc218\ub294 \uc5c6\uc2b5\ub2c8\ub2e4. \ub610\ud55c 4.6\uc740 Node.js <code>^22.22.3 || ^24.15.0 || &gt;=26.0.0<\/code>\uc744 \uc694\uad6c\ud569\ub2c8\ub2e4.<\/p>\n<p><a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.6.1\" target=\"_blank\" rel=\"noopener\">10\uc6d4 9\uc77c Nuxt 4.6.1<\/a>\uc740 \ud6c4\uc18d \ud328\uce58\uc785\ub2c8\ub2e4. portable event\uc758 web view\ub97c \uccab \uc811\uadfc \ub54c \ub9cc\ub4e4\ub3c4\ub85d \ubc14\uafe8\uace0, Vite 8.1+ optimizer \uba54\uc2dc\uc9c0, \uc124\uce58\ub41c \ud328\ud0a4\uc9c0\uc758 virtual import\ub85c \uc778\ud55c dependency scan \uc911\ub2e8, non-SSR \ud658\uacbd\uc758 <code>outDir<\/code>, <code>useId<\/code> hydration\uacfc <code>onServerPrefetch<\/code> \ubcf4\uc874, <code>nitropack\/types<\/code>\uc758 nodenext \ud574\uc11d \ub4f1\uc744 \uc218\uc815\ud588\uc2b5\ub2c8\ub2e4. \uc989 \uc0c8 \uae30\ub2a5\ubcf4\ub2e4 \ube4c\ub4dc\u00b7\uac1c\ubc1c \uc11c\ubc84\u00b7SSR \uacbd\uacc4\uc758 \uc548\uc815\ud654\uac00 \uc911\uc2ec\uc785\ub2c8\ub2e4.<\/p>\n<h2>\uc65c \uc911\uc694\ud55c\uac00<\/h2>\n<p>Nuxt \uc571\uc740 <code>pages\/<\/code>\uc640 \ucef4\ud3ec\ub10c\ud2b8\ub9cc\uc73c\ub85c \ub05d\ub098\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. <code>server\/api<\/code>\uc5d0\uc11c \uc778\uc99d\uc744 \ucc98\ub9ac\ud558\uace0, <code>routeRules<\/code>\ub85c \uce90\uc2dc\ub97c \uc124\uc815\ud558\uba70, SSR \uacb0\uacfc\ub97c CDN\uc5d0 \ubcf4\ub0b4\uace0, CI\uc5d0\uc11c build\uc640 preview\ub97c \uac80\uc99d\ud569\ub2c8\ub2e4. 4.6\uc758 server-agnostic \ubc29\ud5a5\uc740 \uc774\ub7f0 \uc11c\ubc84 \ucf54\ub4dc\ub97c \ud2b9\uc815 \ub7f0\ud0c0\uc784 \uac00\uc815\uc5d0\uc11c \ubd84\ub9ac\ud560 \uae30\ud68c\ub97c \uc8fc\uc9c0\ub9cc, \ub3d9\uc2dc\uc5d0 Node API\u00b7\ud50c\ub7ab\ud3fc \uc804\uc6a9 \ud5e4\ub354\u00b7\ubc30\ud3ec \uc5b4\ub311\ud130 \uc758\uc874\uc744 \ucc3e\uc544\ub0b4\uc57c \ud55c\ub2e4\ub294 \ub73b\uc785\ub2c8\ub2e4.<\/p>\n<p>\uac1c\ubc1c \uacbd\ud5d8 \ubcc0\ud654\ub3c4 \uc6b4\uc601\uc5d0 \ub2ff\uc2b5\ub2c8\ub2e4. \uc694\uccad ID\uc640 \uc624\ub958 \uc6d0\uc778\uc774 \uc798 \ubcf4\uc774\uba74 \ub85c\uceec\uc5d0\uc11c \uc7ac\ud604\ud55c SSR \uc624\ub958\ub97c \ub85c\uadf8\uc640 \uc5f0\uacb0\ud558\uae30 \uc26c\uc6cc\uc9d1\ub2c8\ub2e4. \ubc18\uba74 \uac1c\ubc1c \uc11c\ubc84 \uc7a0\uae08\uacfc takeover\ub294 \ub3d9\uc2dc\uc5d0 \uc5ec\ub7ec \ud504\ub85c\uc138\uc2a4\ub97c \ub744\uc6b0\ub294 CI, IDE task, \ucf54\ub529 \uc5d0\uc774\uc804\ud2b8\uc5d0\uc11c \ud3ec\ud2b8\u00b7\uc0c1\ud0dc\ub97c \uc5b4\ub5bb\uac8c \uad00\ub9ac\ud560\uc9c0 \ub2e4\uc2dc \uc810\uac80\ud558\uac8c \ud569\ub2c8\ub2e4. \u201c\ub354 \ud3b8\ud574\uc84c\ub2e4\u201d\ub294 \uc774\uc720\ub9cc\uc73c\ub85c \uae30\uc874 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ubc14\uafb8\uc9c0 \ub9d0\uace0, \uc2e4\uc81c \uac1c\ubc1c\u00b7\ud14c\uc2a4\ud2b8 \ub8e8\ud504\uc5d0\uc11c \ucda9\ub3cc\uc774 \uc5c6\ub294\uc9c0 \ud655\uc778\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h3>Nuxt CLI v4: \ub85c\uadf8\ub97c \ubcf4\ub294 \uc2b5\uad00\uc744 \uc694\uccad \ub2e8\uc704\ub85c \ubc14\uafc9\ub2c8\ub2e4<\/h3>\n<p>\uae30\uc874\uc5d0\ub294 <code>nuxt dev<\/code> \ucd9c\ub825\uc774 \uae38\uc5b4\uc9c0\uba74 \uc5b4\ub290 \uc694\uccad\uc774 \uc624\ub958\ub97c \ub9cc\ub4e4\uc5c8\ub294\uc9c0 \ucd94\uc801\ud558\uae30 \uc5b4\ub824\uc6e0\uc2b5\ub2c8\ub2e4. CLI v4\ub294 \uc694\uccad\ub9c8\ub2e4 ID\ub97c \ubd99\uc774\uace0, URL\u00b7\uc7ac\uc2dc\uc791 \uc774\uc720\u00b7\ub290\ub9b0 \uc2dc\uc791 \uad6c\uac04\u00b7\ubaa8\ub4c8 \ucd08\uae30\ud654 \uc2dc\uac04\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 <code>server\/api\/products\/[id].get.ts<\/code>\uc5d0\uc11c\ub9cc 500\uc774 \ubc1c\uc0dd\ud55c\ub2e4\uba74, \ube0c\ub77c\uc6b0\uc800 \ub124\ud2b8\uc6cc\ud06c \ud0ed\uacfc \ud130\ubbf8\ub110\uc758 \uac19\uc740 \uc694\uccad ID\ub97c \uc5f0\uacb0\ud574 \uc7ac\ud604 \uc2dc\uac04\uc744 \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud300 \uacf5\ud1b5 \uc2a4\ud06c\ub9bd\ud2b8\ub294 \ubc14\ub85c \ubc14\uafb8\uc9c0 \ub9d0\uace0 <code>package.json<\/code>\uc758 <code>dev<\/code>, <code>dev:ci<\/code>, <code>preview<\/code>\ub97c \ub530\ub85c \uc2e4\ud589\ud574 \ubcf4\uc2ed\uc2dc\uc624. \ub85c\uadf8\ub97c \ud14d\uc2a4\ud2b8\ub85c \uc218\uc9d1\ud558\ub294 \uc790\ub3d9\ud654\uac00 \uc788\ub2e4\uba74 <code>--no-tui<\/code>\uac00 \ud544\uc694\ud55c\uc9c0\ub3c4 \ud655\uc778\ud569\ub2c8\ub2e4. \ub450 \ubc88\uc9f8 dev \uc11c\ubc84\ub97c \ub744\uc6b0\ub294 \ud14c\uc2a4\ud2b8 \ub3c4\uad6c\ub098 \uc5d0\uc774\uc804\ud2b8\uac00 \uc788\ub2e4\uba74 <code>.nuxt\/<\/code> \uc7a0\uae08 \ud30c\uc77c\uc758 takeover\u00b7defer \ub3d9\uc791\uc744 \ub85c\uceec\uc5d0\uc11c \uba3c\uc800 \uad00\ucc30\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>nuxt\/server\uc640 portable event: \uc11c\ubc84 \ucf54\ub4dc\ub97c \uc774\uc2dd \uac00\ub2a5\ud558\uac8c \ub9cc\ub4dc\ub294 \ucd9c\ubc1c\uc810\uc785\ub2c8\ub2e4<\/h3>\n<p>Nuxt 4.6\uc758 <code>nuxt\/server<\/code>\ub294 \uc11c\ubc84 \ucf54\ub4dc\ub97c \ub354 \uc774\uc2dd \uac00\ub2a5\ud55c \uc774\ubca4\ud2b8 \ubaa8\ub378 \uc704\uc5d0 \ub193\ub294 \ubc29\ud5a5\uc785\ub2c8\ub2e4. \uc774\ub294 \ub2f9\uc7a5 \ubaa8\ub4e0 <code>server\/api<\/code> \ud30c\uc77c\uc744 \uc62e\uae30\ub77c\ub294 \uc9c0\uc2dc\uac00 \uc544\ub2d9\ub2c8\ub2e4. \uba3c\uc800 Node \uc804\uc6a9 <code>fs<\/code>, raw socket, \ud2b9\uc815 \ud504\ub85d\uc2dc \ud5e4\ub354\ucc98\ub7fc \ubc30\ud3ec \ub300\uc0c1\uc5d0 \ubb36\uc778 \ucf54\ub4dc\ub97c \ucc3e\uc544 \uacbd\uacc4\ub97c \ubd84\uba85\ud788 \ud558\ub77c\ub294 \uc2e0\ud638\uc5d0 \uac00\uae5d\uc2b5\ub2c8\ub2e4. Cloudflare, Node \uc11c\ubc84, \uc11c\ubc84\ub9ac\uc2a4 \ub7f0\ud0c0\uc784\uc744 \uc11e\uc5b4 \uc4f0\ub294 \uc870\uc9c1\uc77c\uc218\ub85d \uc774 \uc791\uc5c5\uc758 \uac00\uce58\uac00 \ud07d\ub2c8\ub2e4.<\/p>\n<p>\ud30c\uc77c\ub7ff\uc73c\ub85c \uc77d\uae30 \uc804\uc6a9 API \ud558\ub098\ub97c \uace0\ub974\uc2ed\uc2dc\uc624. \uc608\ub97c \ub4e4\uc5b4 <code>server\/api\/health.get.ts<\/code> \ub610\ub294 \uc778\uc99d \uc5c6\ub294 \ucf58\ud150\uce20 \uc870\ud68c \ub77c\uc6b0\ud2b8\uac00 \uc801\ud569\ud569\ub2c8\ub2e4. Node\uc640 preview \ubc30\ud3ec\uc5d0\uc11c \uc0c1\ud0dc \ucf54\ub4dc, JSON \ubcf8\ubb38, cache-control, \uc624\ub958 \uc751\ub2f5\uc774 \uac19\uc740\uc9c0 \uacc4\uc57d \ud14c\uc2a4\ud2b8\ub85c \ube44\uad50\ud569\ub2c8\ub2e4. \ud30c\uc77c \uc5c5\ub85c\ub4dc, \uc138\uc158, \uc2a4\ud2b8\ub9ac\ubc0d, \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ud2b8\ub79c\uc7ad\uc158\ucc98\ub7fc \ub7f0\ud0c0\uc784 \ud2b9\uc131\uc774 \ud070 \uacbd\ub85c\ub294 \uc774\ud6c4 \ub2e8\uacc4\ub85c \ubbf8\ub8e8\ub294 \ud3b8\uc774 \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n<h3>typed $fetch: \ud3b8\ub9ac\ud568\uc740 \uc0dd\uc131\ub41c \ub77c\uc6b0\ud2b8\uc640 CI\uac00 \uac19\uc774 \ub9de\uc744 \ub54c \uc720\uc9c0\ub429\ub2c8\ub2e4<\/h3>\n<p>\uacf5\uc2dd \ub9b4\ub9ac\uc2a4 \ub178\ud2b8\ub294 \uc0dd\uc131\ub41c \uc11c\ubc84 \ub77c\uc6b0\ud2b8\uc5d0\uc11c <code>$fetch<\/code>\uc640 <code>useFetch<\/code>\uc758 \ud0c0\uc785\uc744 \uac15\ud654\ud55c\ub2e4\uace0 \uc124\uba85\ud569\ub2c8\ub2e4. \ud504\ub860\ud2b8\uc5d4\ub4dc\uc5d0\uc11c <code>await $fetch('\/api\/users')<\/code>\ub97c \uc4f8 \ub54c \uc751\ub2f5\uacfc \uba54\uc11c\ub4dc \uc624\ub958\ub97c \ub354 \uc774\ub974\uac8c \uc7a1\uc744 \uac00\ub2a5\uc131\uc774 \uc0dd\uae30\uc9c0\ub9cc, \ud0c0\uc785 \uc0dd\uc131\ubb3c\uc774 \uc624\ub798\ub418\uc5c8\uac70\ub098 monorepo\uc758 tsconfig \uacbd\ub85c\uac00 \uaf2c\uc774\uba74 \ube4c\ub4dc\uc640 \uc5d0\ub514\ud130\uac00 \ub2e4\ub978 \uacb0\ub860\uc744 \ub0bc \uc218 \uc788\uc2b5\ub2c8\ub2e4. 4.6.1\uc758 <code>nitropack\/types<\/code> nodenext \uc218\uc815\ub3c4 \uc774\ub7f0 \uacbd\uacc4\uac00 \uc2e4\uc81c\ub85c \ubb38\uc81c\uc600\uc74c\uc744 \ubcf4\uc5ec\uc90d\ub2c8\ub2e4.<\/p>\n<p>\uc5c5\uadf8\ub808\uc774\ub4dc PR\uc5d0\uc11c\ub294 <code>nuxi prepare<\/code> \ub610\ub294 \ud504\ub85c\uc81d\ud2b8\uc758 \ud0c0\uc785 \uc0dd\uc131 \ub2e8\uacc4\uac00 CI\uc5d0\uc11c \uc2e4\ud589\ub418\ub294\uc9c0 \ud655\uc778\ud558\uace0, <code>vue-tsc --noEmit<\/code>\uacfc production build\ub97c \ubaa8\ub450 \ub3cc\ub9ac\uc2ed\uc2dc\uc624. <code>server\/api<\/code>\uc758 \uc751\ub2f5 \ud0c0\uc785\uc744 \uc554\ubb35\uc801\uc73c\ub85c <code>any<\/code>\ub85c \ub118\uae30\ub294 \uacf3\uc740 \uc774\ubc88 \uae30\ud68c\uc5d0 \uba85\uc2dc\ud574 \ub450\uba74, \uc774\ud6c4 \ub77c\uc6b0\ud2b8 \ubcc0\uacbd\uc5d0\uc11c \ud074\ub77c\uc774\uc5b8\ud2b8 \uc624\ub958\ub97c \ub354 \uc77c\ucc0d \ucc3e\uc744 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>4.6.1\uc758 \ube4c\ub4dc\u00b7SSR \uc218\uc815: \uac1c\ubc1c\uc5d0\uc11c\ub9cc \uace0\uce58\uc9c0 \ub9d0\uace0 preview\uae4c\uc9c0 \ubd05\ub2c8\ub2e4<\/h3>\n<p>4.6.1\uc740 virtual import\uac00 \uc124\uce58\ub41c \ud328\ud0a4\uc9c0\uc5d0 \uc788\uc744 \ub54c dependency scan\uc744 \uc911\ub2e8\ud558\uc9c0 \uc54a\ub3c4\ub85d \uace0\ucce4\uace0, non-SSR target\uc5d0\uc11c \uc124\uc815\ud55c <code>outDir<\/code>\ub97c public directory\ub85c \uc0ac\uc6a9\ud558\ub3c4\ub85d \uc870\uc815\ud588\uc2b5\ub2c8\ub2e4. \ub610\ud55c <code>useId<\/code> hydration \uc804\uc758 <code>onServerPrefetch<\/code>\ub97c \ubcf4\uc874\ud558\uace0, dev server handler\uc5d0\ub294 RequestEvent\ub97c \ub118\uae41\ub2c8\ub2e4. \ubaa8\ub4c8\uc744 \ub9ce\uc774 \uc4f0\uac70\ub098 SSR\uacfc SPA target\uc744 \ud568\uaed8 \uc6b4\uc6a9\ud558\ub294 \uc571\uc774\ub77c\uba74 \u201c\ub85c\uceec dev\uac00 \ucf1c\uc9c4\ub2e4\u201d\ub9cc\uc73c\ub85c \ucda9\ubd84\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<p><code>nuxt build<\/code> \ub4a4 <code>nuxt preview<\/code>\uc5d0\uc11c \ub85c\uadf8\uc778 \uc804\u00b7\ud6c4 \ud398\uc774\uc9c0, dynamic import, \uc5d0\ub7ec \ud398\uc774\uc9c0, API proxy\ub97c \ud655\uc778\ud558\uc2ed\uc2dc\uc624. SSR \ud398\uc774\uc9c0\ub77c\uba74 \uc11c\ubc84 HTML\uacfc hydration \ud6c4 DOM\uc774 \ub2ec\ub77c\uc9c0\uc9c0 \uc54a\ub294\uc9c0, \uc5d0\ub7ec \uc218\uc9d1 \ub3c4\uad6c\uc758 stack trace\uac00 \uc6d0\ubcf8 \uc18c\uc2a4 \uc704\uce58\ub97c \uac00\ub9ac\ud0a4\ub294\uc9c0 \ubd05\ub2c8\ub2e4. static target\uc744 \uac00\uc9c4 \uc11c\ube44\uc2a4\ub294 \uc124\uc815\ud55c <code>nitro.output.publicDir<\/code>\uacfc CDN \uc5c5\ub85c\ub4dc \uacbd\ub85c\uac00 \uadf8\ub300\ub85c\uc778\uc9c0 \ubc30\ud3ec \uc0b0\ucd9c\ubb3c diff\ub85c \uac80\uc99d\ud558\ub294 \ud3b8\uc774 \ub0ab\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>\ubcf4\uc548 \ud328\uce58\uc640 routeRules: 4.6 \uacc4\ud68d\ubcf4\ub2e4 \uba3c\uc800 \ub0a8\uc740 \ub178\ucd9c\uc744 \ub2eb\uc2b5\ub2c8\ub2e4<\/h3>\n<p><a href=\"https:\/\/nuxt.com\/blog\/v4-5-security\" target=\"_blank\" rel=\"noopener\">Nuxt\uc758 \ubcf4\uc548 \ud328\uce58 \uc548\ub0b4<\/a>\ub294 4.5.1\uacfc 3.21.10\uc5d0\uc11c server island props RCE, route rule authorization bypass, server component DoS, \uce90\uc2dc\ub41c \ud398\uc774\uc9c0\uc758 \uad50\ucc28 \uc0ac\uc6a9\uc790 payload \ub178\ucd9c, dev server \uacbd\ub85c \ub178\ucd9c, DevTools RCE\ub97c \uace0\ucce4\ub2e4\uace0 \ubc1d\ud799\ub2c8\ub2e4. \ud2b9\ud788 \ub300\ubb38\uc790\uac00 \uc788\ub294 <code>routeRules<\/code> \ud0a4\uc5d0 <code>appMiddleware<\/code>\ub97c \uad8c\ud55c \uac8c\uc774\ud2b8\ub85c \uc4f4 \uacbd\uc6b0, \uae30\ubcf8 \ub300\uc18c\ubb38\uc790 \ube44\uad6c\ubd84 \ub77c\uc6b0\ud305\uc5d0\uc11c \uaddc\uce59\uc774 \uac74\ub108\ub6f0\uc5b4\uc9c8 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n<p><code>nuxt.config.ts<\/code>\uc758 <code>routeRules<\/code>\uacfc <code>pages\/Admin.vue<\/code>\ucc98\ub7fc \ub300\ubb38\uc790\uac00 \uc11e\uc778 \ud30c\uc77c\uba85\uc744 \uac80\uc0c9\ud574 \ubcf4\uc2ed\uc2dc\uc624. \uc778\uc99d\ub41c \ud398\uc774\uc9c0\uc5d0 <code>cache<\/code>, <code>swr<\/code>, <code>isr<\/code>\uc744 \uc801\uc6a9\ud588\ub2e4\uba74 \uc5c5\uadf8\ub808\uc774\ub4dc \ud6c4 CDN\u00b7edge\uc5d0 \ub0a8\uc740 <code>_payload.json<\/code>\ub3c4 \uc815\ub9ac\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774 \ud56d\ubaa9\uc740 \uc0c8 4.6 \uae30\ub2a5\uc758 \uc7a5\uc810\ubcf4\ub2e4 \uba3c\uc800 \ud574\uacb0\ud560 \uc6b4\uc601 \uc704\ud5d8\uc785\ub2c8\ub2e4.<\/p>\n<h2>\uac1c\ubc1c\uc790 \uc2e4\ud589 \uacc4\ud68d<\/h2>\n<ol>\n<li><strong>\ub7f0\ud0c0\uc784\uc744 \uace0\uc815\ud569\ub2c8\ub2e4.<\/strong> CI\uc640 \ubc30\ud3ec \uc774\ubbf8\uc9c0\uc758 Node\uac00 4.6 \uc694\uad6c \ubc94\uc704\uc778\uc9c0 <code>node -v<\/code>, <code>.nvmrc<\/code>, Dockerfile\uc5d0\uc11c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>\uc5c5\uadf8\ub808\uc774\ub4dc\ub97c \ubd84\ub9ac\ud569\ub2c8\ub2e4.<\/strong> <code>npx nuxt upgrade --dedupe<\/code>\ub97c \uae30\ub2a5 \ubcc0\uacbd PR\uacfc \uc11e\uc9c0 \uc54a\uace0 lockfile diff\ub97c \ub9ac\ubdf0\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>dev \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc810\uac80\ud569\ub2c8\ub2e4.<\/strong> <code>nuxt dev<\/code>, \ub85c\uadf8 \uc218\uc9d1\uc6a9 <code>--no-tui<\/code>, \ub450 \ubc88\uc9f8 \ud504\ub85c\uc138\uc2a4\uc758 takeover \ub3d9\uc791\uc744 \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>\ud0c0\uc785 \uc0dd\uc131\uacfc \ube4c\ub4dc\ub97c CI\uc5d0 \ub461\ub2c8\ub2e4.<\/strong> prepare\u00b7typecheck\u00b7production build\u00b7preview smoke test\ub97c \uac19\uc740 PR\uc5d0\uc11c \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>SSR \uacbd\ub85c\ub97c \ud14c\uc2a4\ud2b8\ud569\ub2c8\ub2e4.<\/strong> \ub85c\uadf8\uc778, redirect middleware, <code>useAsyncData<\/code>, dynamic import, hydration \uc624\ub958\ub97c \uc2e4\uc81c preview URL\uc5d0\uc11c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>\uc11c\ubc84 \uc774\uc2dd\uc131\uc740 \ud558\ub098\ubd80\ud130 \uc2dc\uc791\ud569\ub2c8\ub2e4.<\/strong> \uc77d\uae30 \uc804\uc6a9 <code>server\/api<\/code> \ub77c\uc6b0\ud2b8 \ud558\ub098\ub97c \uace8\ub77c Node\u00b7preview \ubc30\ud3ec\uc758 \uc751\ub2f5 \uacc4\uc57d\uc744 \ube44\uad50\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>\ubcf4\uc548 \uc124\uc815\uc744 \uc7ac\uac80\ud1a0\ud569\ub2c8\ub2e4.<\/strong> <code>routeRules<\/code> \ub300\uc18c\ubb38\uc790, authenticated cache, DevTools, server islands\uc640 CDN payload purge \uc808\ucc28\ub97c \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n<h2>\ub9ac\uc2a4\ud06c\uc640 \ud55c\uacc4<\/h2>\n<p>4.6\uc758 CLI \uc131\ub2a5 \uc218\uce58\ub294 \uacf5\uc2dd \ube44\uad50 \ud658\uacbd\uc758 \uacb0\uacfc\uc774\uba70 \ubaa8\ub4e0 \uc571\uc758 CI \uc2dc\uac04\uc774\ub098 \uba54\ubaa8\ub9ac \uac10\uc18c\ub97c \ubcf4\uc7a5\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. <code>nuxt\/server<\/code>\ub294 \uc774\uc2dd\uc131\uc744 \uc704\ud55c \uae30\ubc18\uc774\uc9c0, \uae30\uc874 Node \uc804\uc6a9 \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \uc790\ub3d9\uc73c\ub85c \ud638\ud658\uc2dc\ud0a4\ub294 \uae30\ub2a5\ub3c4 \uc544\ub2d9\ub2c8\ub2e4. \ub530\ub77c\uc11c \uc0c8 \ub7f0\ud0c0\uc784\uc73c\ub85c\uc758 \uc804\ud658\uc740 API \ud558\ub098\uc529 canary \ubc30\ud3ec\ud558\uace0 \uc0c1\ud0dc \ucf54\ub4dc\u00b7\uc9c0\uc5f0 \uc2dc\uac04\u00b7\uc624\ub958\uc728\uc744 \ube44\uad50\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<p>\uc5c5\uadf8\ub808\uc774\ub4dc \ub4a4 hydration \uc624\ub958, \uc11c\ubc84 route \ud0c0\uc785 \uc624\ub958, preview\uc5d0\uc11c\ub9cc \ubcf4\uc774\ub294 \uc790\uc0b0 \uacbd\ub85c \ubb38\uc81c\uac00 \ub098\uc624\uba74 lockfile\uacfc Node \ubc84\uc804\uc744 \ud3ec\ud568\ud574 \uc9c1\uc804 \uac80\uc99d\ub41c \ubc84\uc804\uc73c\ub85c \ub418\ub3cc\ub9b4 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uc778\uc99d \ud398\uc774\uc9c0\uc758 \uce90\uc2dc\ub098 routeRules \uad8c\ud55c \uacbd\ub85c\uac00 \ubc14\ub00c\uba74 \uc989\uc2dc \ub864\ubc31\u00b7\uce90\uc2dc purge \uc870\uac74\uc73c\ub85c \uc0bc\uc73c\uc2ed\uc2dc\uc624. \uc544\uc9c1 \uc801\uc6a9\ud558\uc9c0 \uc54a\uc740 \ubcf4\uc548 \ud328\uce58\uac00 \uc788\ub2e4\uba74 \uae30\ub2a5 \uc2e4\ud5d8\ubcf4\ub2e4 \uadf8 \uc5c5\ub370\uc774\ud2b8\ub97c \uba3c\uc800 \ubcc4\ub3c4 PR\ub85c \ucc98\ub9ac\ud558\ub294 \ud3b8\uc774 \ub0ab\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>FAQ<\/h2>\n<h3>Nuxt 4.6\uc73c\ub85c \uc62c\ub9ac\uba74 Nuxt CLI v4\ub3c4 \ub530\ub85c \uc124\uce58\ud574\uc57c \ud558\ub098\uc694?<\/h3>\n<p>\uc544\ub2d9\ub2c8\ub2e4. \uacf5\uc2dd \ubc1c\ud45c\uc5d0 \ub530\ub974\uba74 <code>@nuxt\/cli<\/code> v4\ub294 Nuxt \uc758\uc874\uc131\uc73c\ub85c \ud568\uaed8 \uc124\uce58\ub429\ub2c8\ub2e4. \ub2e4\ub9cc \ud300 \uc2a4\ud06c\ub9bd\ud2b8\uc640 CI \ub85c\uadf8 \uc218\uc9d1\uc774 \uc0c8 TUI \ucd9c\ub825\uc5d0 \uc601\ud5a5\uc744 \ubc1b\ub294\uc9c0 \ud655\uc778\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h3>Nuxt 4.6\uc758 Node.js \ucd5c\uc18c \ubc84\uc804\uc740 \ubb34\uc5c7\uc778\uac00\uc694?<\/h3>\n<p>\uacf5\uc2dd \ube14\ub85c\uadf8 \uae30\uc900 <code>^22.22.3 || ^24.15.0 || &gt;=26.0.0<\/code>\uc785\ub2c8\ub2e4. \ub85c\uceec\ubfd0 \uc544\ub2c8\ub77c CI runner\uc640 production image\uae4c\uc9c0 \uac19\uc740 \ubc94\uc704\ub97c \ub9de\ucd94\uc2ed\uc2dc\uc624.<\/p>\n<h3>routeRules\ub97c \uc4f0\ub294 Nuxt \uc571\uc740 \ubb34\uc5c7\uc744 \uc810\uac80\ud574\uc57c \ud558\ub098\uc694?<\/h3>\n<p>\ub300\ubb38\uc790\uac00 \ub4e4\uc5b4\uac04 \uaddc\uce59 \ud0a4\uc640 \ud398\uc774\uc9c0 \uacbd\ub85c, <code>appMiddleware<\/code> \uae30\ubc18 \uad8c\ud55c \ucc98\ub9ac, \uc778\uc99d \ud398\uc774\uc9c0\uc758 <code>cache<\/code>\u00b7<code>swr<\/code>\u00b7<code>isr<\/code>\uc744 \uc6b0\uc120 \uc810\uac80\ud558\uc2ed\uc2dc\uc624. \ubcf4\uc548 \ud328\uce58 \ud6c4\uc5d0\ub294 CDN\uc758 \uae30\uc874 payload\ub3c4 purge\ud574\uc57c \ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ucd9c\ucc98 \ubc0f \ucd94\uac00 \uc77d\uae30<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.6.0\" target=\"_blank\" rel=\"noopener\">Nuxt v4.6.0 \uacf5\uc2dd \ub9b4\ub9ac\uc2a4<\/a><\/li>\n<li><a href=\"https:\/\/nuxt.com\/blog\/v4-6\" target=\"_blank\" rel=\"noopener\">Nuxt 4.6 \uacf5\uc2dd \ube14\ub85c\uadf8<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.6.1\" target=\"_blank\" rel=\"noopener\">Nuxt v4.6.1 \uacf5\uc2dd \ub9b4\ub9ac\uc2a4<\/a><\/li>\n<li><a href=\"https:\/\/nuxt.com\/docs\/getting-started\/upgrade\" target=\"_blank\" rel=\"noopener\">Nuxt \uc5c5\uadf8\ub808\uc774\ub4dc \uac00\uc774\ub4dc<\/a><\/li>\n<li><a href=\"https:\/\/nuxt.com\/blog\/v4-5-security\" target=\"_blank\" rel=\"noopener\">Nuxt \ubcf4\uc548 \ud328\uce58 \uc548\ub0b4<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/security\/advisories\" target=\"_blank\" rel=\"noopener\">Nuxt GitHub Security Advisories<\/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>Nuxt 4.6\u00b74.6.1\uc758 CLI, SSR, typed fetch, \uc11c\ubc84 \uc774\uc2dd\uc131 \ubc0f \ubcf4\uc548 \uc810\uac80\uc744 \uc2e4\uc81c \ubc30\ud3ec \ud750\ub984\uc5d0 \ub9de\ucdb0 \uc815\ub9ac\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"author":1,"featured_media":639,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-640","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\/640","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=640"}],"version-history":[{"count":0,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/640\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media\/639"}],"wp:attachment":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media?parent=640"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/categories?post=640"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/tags?post=640"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}