{"id":470,"date":"2026-08-19T00:04:26","date_gmt":"2026-08-19T00:04:26","guid":{"rendered":"https:\/\/gilnas.synology.me\/wordpress\/470\/"},"modified":"2026-08-19T00:04:26","modified_gmt":"2026-08-19T00:04:26","slug":"nuxt%c2%b7vite%c2%b7h3-main-%eb%b8%8c%eb%9e%9c%ec%b9%98-3%ec%9d%bc-%eb%b3%80%ed%99%94-%eb%a6%ac%eb%8b%a4%ec%9d%b4%eb%a0%89%ed%8a%b8%c2%b7hmr%c2%b7%ed%94%84%eb%a1%9d%ec%8b%9c-%eb%b3%b4%ec%95%88","status":"publish","type":"post","link":"https:\/\/gilnas.synology.me\/wordpress\/470\/","title":{"rendered":"Nuxt\u00b7Vite\u00b7H3 main \ube0c\ub79c\uce58 3\uc77c \ubcc0\ud654: \ub9ac\ub2e4\uc774\ub809\ud2b8\u00b7HMR\u00b7\ud504\ub85d\uc2dc \ubcf4\uc548 \uc810\uac80 | Three-Day Nuxt, Vite, and H3 Main-Branch Checks"},"content":{"rendered":"<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/gilnas.synology.me\/wordpress\/wp-content\/uploads\/2026\/08\/nuxt-trend-hero-17.png\" alt=\"Nuxt\u00b7Vite\u00b7H3 main \ube0c\ub79c\uce58 3\uc77c \ubcc0\ud654: \ub9ac\ub2e4\uc774\ub809\ud2b8\u00b7HMR\u00b7\ud504\ub85d\uc2dc \ubcf4\uc548 \uc810\uac80 | Three-Day Nuxt, Vite, and H3 Main-Branch Checks\" \/><\/figure>\n<p><strong>\uc694\uc57d:<\/strong> 8\uc6d4 16~19\uc77c(KST) Nuxt\u00b7Vite\u00b7H3 \uc0dd\ud0dc\uacc4\uc758 \ucd5c\uadfc 72\uc2dc\uac04 \ud750\ub984\uc740 \uc0c8 \uae30\ub2a5 \ucd9c\uc2dc\ubcf4\ub2e4 <strong>SSR \uacbd\uacc4\uc758 \uc815\ud655\uc131, \uac1c\ubc1c \uc11c\ubc84 \ubcf5\uc6d0\ub825, \ud504\ub85d\uc2dc \uc2e0\ub8b0 \uacbd\uacc4<\/strong>\ub97c \ub2e4\ub4ec\ub294 main \ube0c\ub79c\uce58 \uc791\uc5c5\uc5d0 \uc9d1\uc911\ub410\ub2e4. Nuxt \ud504\ub860\ud2b8\uc5d4\ub4dc \uac1c\ubc1c\uc790\ub294 \uc9c0\uae08 \uc758\uc874\uc131\uc744 \uc989\uc2dc \uc62c\ub9ac\uae30\ubcf4\ub2e4 \ub9ac\ub2e4\uc774\ub809\ud2b8\u00b7CSP\u00b7HMR\u00b7\ud504\ub85d\uc2dc \uad6c\uc131\uc744 \ud14c\uc2a4\ud2b8 \uac00\ub2a5\ud55c \uc6b4\uc601 \uacc4\uc57d\uc73c\ub85c \ubc14\uafb8\ub294 \uac83\uc774 \uc6b0\uc120\uc774\ub2e4.<\/p>\n<h2>\ud575\uc2ec \ub2f5\ubcc0<\/h2>\n<p>\uc774\ubc88 3\uc77c \ub3d9\uc548 Nuxt\/Vue\/Vite\/Nitro \uacc4\uc5f4\uc5d0\uc11c \ud655\uc778\ud560 \uac00\uc7a5 \uc2e4\uc6a9\uc801\uc778 \ubcc0\ud654\ub294 \ubb34\uc5c7\uc778\uac00? <strong>\uc815\uc2dd \ubc30\ud3ec\ubcf8\uc740 \uc0c8\ub85c \ub098\uc624\uc9c0 \uc54a\uc558\uace0<\/strong>, Nuxt\u00b7Vite\u00b7H3\uc758 <strong>main \ube0c\ub79c\uce58<\/strong>\uc5d0\uc11c URL \uc778\ucf54\ub529 \ubcf4\uc874, \uac1c\ubc1c \uc911 HMR \ubcf5\uad6c, reverse proxy\/JSON-RPC \uc785\ub825 \uac80\uc99d\uc744 \uac15\ud654\ud558\ub294 \ucee4\ubc0b\uc774 \uc5f0\uc18d \ud655\uc778\ub410\ub2e4. \ub530\ub77c\uc11c \uc774\ub294 \ubc30\ud3ec \uc9c0\uc2dc\uac00 \uc544\ub2c8\ub77c <strong>\ub2e4\uc74c \ub9b4\ub9ac\uc988 \uc804 CI\u00b7\uc2a4\ud14c\uc774\uc9d5 \uc810\uac80 \ubaa9\ub85d<\/strong>\uc73c\ub85c \ud574\uc11d\ud574\uc57c \ud55c\ub2e4.<\/p>\n<ul>\n<li><strong>\ud655\uc778\ub41c \uc0ac\uc2e4:<\/strong> \uc544\ub798\uc758 8\uac1c \ubcc0\uacbd\uc740 72\uc2dc\uac04 \ucc3d\uc5d0 \uae30\ub85d\ub41c \uacf5\uc2dd GitHub main \ucee4\ubc0b\uc774\ub2e4.<\/li>\n<li><strong>\ud574\uc11d:<\/strong> \uc11c\ubc84 \ub80c\ub354\ub9c1\uacfc \uac1c\ubc1c \uc11c\ubc84, \uc5e3\uc9c0 \ud504\ub85d\uc2dc \uc0ac\uc774\uc5d0\uc11c \uc190\uc2e4\ub418\uae30 \uc26c\uc6b4 URL\u00b7\ud5e4\ub354\u00b7\uc624\ub958 \uacbd\ub85c\uac00 \ud604\uc7ac \uc720\uc9c0\ubcf4\uc218\uc758 \uc911\uc2ec\uc774\ub2e4.<\/li>\n<li><strong>\uc8fc\uc758:<\/strong> main \ucee4\ubc0b\uc740 \uc544\uc9c1 npm stable \ud0dc\uadf8\ub098 \uc815\uc2dd \ub9b4\ub9ac\uc988 \ub178\ud2b8\uac00 \uc544\ub2c8\ub2e4. \ud504\ub85c\ub355\uc158 \uc7a0\uae08\ud30c\uc77c\uc744 \uadfc\uac70 \uc5c6\uc774 \ubc14\uafb8\uc9c0 \ub9d0\uace0, canary\/preview\uc5d0\uc11c \uc7ac\ud604\ud55c\ub2e4.<\/li>\n<\/ul>\n<h2>3\uc77c \uacb0\ub860: \ud504\ub808\uc784\uc6cc\ud06c \uc5c5\ub370\uc774\ud2b8\ubcf4\ub2e4 \uacbd\uacc4 \uc870\uac74\uc744 \uba3c\uc800 \uc2dc\ud5d8\ud558\ub77c<\/h2>\n<p>Nuxt \ucd5c\uc2e0 stable\uc740 <a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.5.2\" target=\"_blank\" rel=\"noopener\">v4.5.2<\/a>, Vite \ucd5c\uc2e0 stable\uc740 <a href=\"https:\/\/github.com\/vitejs\/vite\/releases\/tag\/v8.2.1\" target=\"_blank\" rel=\"noopener\">v8.2.1<\/a>\uc774\uba70, Vue 3.6\uc740 <a href=\"https:\/\/github.com\/vuejs\/core\/releases\/tag\/v3.6.0-rc.4\" target=\"_blank\" rel=\"noopener\">RC.4<\/a> \uc0c1\ud0dc\ub2e4. \uc774 72\uc2dc\uac04\uc5d0\ub294 Nuxt\/Vite\/Vue\uc758 \uc0c8 stable \ub9b4\ub9ac\uc988\uac00 \ud655\uc778\ub418\uc9c0 \uc54a\uc558\ub2e4. \ub300\uc2e0 main\uc5d0\uc11c \ubc18\ubcf5\ub418\ub294 \uc218\uc815\uc740 \u2018\uc815\uc0c1 \uacbd\ub85c\u2019\ubcf4\ub2e4 \ub9ac\ub2e4\uc774\ub809\ud2b8\uc758 \uc778\ucf54\ub529, CSP nonce\uc758 \uc815\ud655\ud55c \uc18d\uc131 \ub9e4\uce6d, \uc21c\ud658 \ubaa8\ub4c8 HMR, \ud504\ub85d\uc2dc \ud5e4\ub354 \uc2e0\ub8b0\ucc98\ub7fc \uc6b4\uc601\uc5d0\uc11c\ub9cc \ub4dc\ub7ec\ub098\ub294 \uacbd\uacc4 \uc870\uac74\uc744 \uaca8\ub0e5\ud55c\ub2e4.<\/p>\n<p>\uc774\ub294 Nuxt \uc571\uc758 \uc131\ub2a5\uc774\ub098 \ubcf4\uc548\uc774 \ub2e8\uc77c \ud328\ud0a4\uc9c0 \ubc84\uc804\ub9cc\uc73c\ub85c \uacb0\uc815\ub418\uc9c0 \uc54a\ub294\ub2e4\ub294 \ub73b\uc774\ub2e4. Nuxt SSR\uacfc Nitro\/H3 \ub7f0\ud0c0\uc784, Vite \uac1c\ubc1c \uc11c\ubc84, CDN\u00b7reverse proxy\ub97c \ud558\ub098\uc758 \uc694\uccad \uacbd\ub85c\ub85c \ubcf4\uace0 \uac01 \uacbd\uacc4\ub97c \uc790\ub3d9 \ud14c\uc2a4\ud2b8\ud574\uc57c \ud55c\ub2e4. Vue 3.6 RC.4\ub3c4 Vapor compiler\/runtime\uc758 transition\u00b7v-for\u00b7props \ub3d9\uc791\uc744 \uacc4\uc18d \ubcf4\uc815\ud558\uace0 \uc788\uc5b4, Vue RC\ub97c \ud3c9\uac00 \uc911\uc778 \ud300\uc740 UI \uc804\ud658\uacfc \ubaa9\ub85d \ub80c\ub354\ub9c1\uc744 \ubcc4\ub3c4 \ud68c\uadc0\uad70\uc73c\ub85c \uc720\uc9c0\ud558\ub294 \ud3b8\uc774 \uc548\uc804\ud558\ub2e4.<\/p>\n<h2>\ud750\ub984 1 \u2014 Nuxt SSR: URL\u00b7CSP\u00b7\ube4c\ub4dc \uce90\uc2dc\uc758 \uc815\ud655\uc131<\/h2>\n<h3>\uc11c\ubc84 \ub9ac\ub2e4\uc774\ub809\ud2b8\uc5d0\uc11c percent-encoding \ubcf4\uc874<\/h3>\n<p><strong>\uc0ac\uc2e4:<\/strong> Nuxt main\uc740 \uc11c\ubc84 <code>navigateTo<\/code> \ub9ac\ub2e4\uc774\ub809\ud2b8\uc5d0\uc11c percent-encoding\uc744 \ubcf4\uc874\ud558\ub3c4\ub85d \uc218\uc815\ud588\ub2e4(<a href=\"https:\/\/github.com\/nuxt\/nuxt\/commit\/8927183f4683ac85d9e02336f58f88c640c13c56\" target=\"_blank\" rel=\"noopener\">\uacf5\uc2dd \ucee4\ubc0b<\/a>). \uacbd\ub85c \ud30c\ub77c\ubbf8\ud130\uc5d0 \uacf5\ubc31, \ud55c\uae00, \uc608\uc57d \ubb38\uc790, \uc774\ubbf8 \uc778\ucf54\ub529\ub41c \uc2dd\ubcc4\uc790\uac00 \uc11e\uc774\ub294 \uc11c\ube44\uc2a4\uc5d0\uc11c\ub294 \ub9ac\ub2e4\uc774\ub809\ud2b8 \ub2e8\uacc4\uc758 \uc7ac\uc778\ucf54\ub529\uc774 \ub77c\uc6b0\ud305 \ubd88\uc77c\uce58\ub098 \uc798\ubabb\ub41c \ubaa9\uc801\uc9c0\ub85c \uc774\uc5b4\uc9c8 \uc218 \uc788\ub2e4.<\/p>\n<p><strong>\uc2dc\uc0ac\uc810:<\/strong> \ub85c\uadf8\uc778 \ubcf5\uadc0 URL, locale prefix, \ud30c\uc77c\uba85\u00b7\uac80\uc0c9\uc5b4 \uae30\ubc18 slug\ub97c \uac00\uc9c4 Nuxt SSR \uc571\uc740 <code>%2F<\/code>, <code>%20<\/code>, UTF-8 \ud55c\uae00\uc744 \ud3ec\ud568\ud55c \ub9ac\ub2e4\uc774\ub809\ud2b8\ub97c \ud1b5\ud569 \ud14c\uc2a4\ud2b8\uc5d0 \ub123\uc5b4\uc57c \ud55c\ub2e4. \uc774 \ubcc0\uacbd\uc740 main \uc791\uc5c5\uc774\ubbc0\ub85c, \ud604\uc7ac stable\uc5d0 \uc774\ubbf8 \ub4e4\uc5b4\uac14\ub2e4\uace0 \uac00\uc815\ud558\uba74 \uc548 \ub41c\ub2e4.<\/p>\n<h3>\uc2a4\ud2b8\ub9ac\ubc0d CSP nonce\uc640 cache \uacbd\ub85c \ud310\uc815<\/h3>\n<p><strong>\uc0ac\uc2e4:<\/strong> \uac19\uc740 72\uc2dc\uac04 \ucc3d\uc5d0\uc11c Nitro\uc758 streaming CSP nonce\uac00 \uc815\ud655\ud55c nonce \uc18d\uc131\ub9cc \ub9e4\uce6d\ud558\ub3c4\ub85d \uace0\uccd0\uc84c\uace0, Nuxt build cache ignore \uac80\uc0ac\uc5d0\ub294 \uc808\ub300 \uacbd\ub85c\ub97c \ub118\uae30\ub3c4\ub85d \ubcf4\uc815\ub410\ub2e4(<a href=\"https:\/\/github.com\/nuxt\/nuxt\/commit\/f572e84cd6f44ccab6fdbd1ab96c28ee243408f2\" target=\"_blank\" rel=\"noopener\">CSP \ucee4\ubc0b<\/a>, <a href=\"https:\/\/github.com\/nuxt\/nuxt\/commit\/f25ba0a8ae5f9a787eb45d87edc93a6f798240a2\" target=\"_blank\" rel=\"noopener\">cache \ucee4\ubc0b<\/a>).<\/p>\n<p><strong>\uc2dc\uc0ac\uc810:<\/strong> nonce \uae30\ubc18 CSP\ub294 \ubb38\uc790\uc5f4 \uce58\ud658\ucc98\ub7fc \ubcf4\uc774\uc9c0\ub9cc SSR streaming \uc911 script\/style \uc0bd\uc785 \uc21c\uc11c\uc640 \uc18d\uc131 \ud30c\uc2f1\uc5d0 \uc601\ud5a5\uc744 \ubc1b\ub294\ub2e4. CI\uc5d0\uc11c\ub294 \uc751\ub2f5 \ud5e4\ub354\uc758 CSP nonce\uc640 HTML\uc758 nonce \uc18d\uc131\uc774 \uc77c\uce58\ud558\ub294\uc9c0, \uac1c\ubc1c\u00b7\ucee8\ud14c\uc774\ub108\u00b7\ubaa8\ub178\ub808\ud3ec \uacbd\ub85c\uc5d0\uc11c \ube4c\ub4dc \uce90\uc2dc\uac00 \uc758\ub3c4\uce58 \uc54a\uc740 \ud30c\uc77c\uc744 \ubb34\uc2dc\ud558\uc9c0 \uc54a\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4.<\/p>\n<h2>\ud750\ub984 2 \u2014 Vite \uac1c\ubc1c \ub8e8\ud504: \uc21c\ud658 import\uc640 lazy \uc624\ub958\ub97c \uc804\uccb4 \uc0c8\ub85c\uace0\uce68 \uc5c6\uc774 \ub2e4\ub8e8\uae30<\/h2>\n<h3>\uc21c\ud658 \uc758\uc874\uc131 HMR\uacfc lazy request \uc624\ub958<\/h3>\n<p><strong>\uc0ac\uc2e4:<\/strong> Vite main\uc5d0\ub294 \uc21c\ud658 import\ub97c \ud1b5\ud55c hot update\ub97c \uc804\uccb4 reload \ub300\uc2e0 \ucc98\ub9ac\ud558\ub824\ub294 \uc218\uc815\uacfc, bundled dev\uc758 lazy request \uc624\ub958 \ucc98\ub9ac\ub97c \ubcf4\uac15\ud558\ub294 \uc218\uc815\uc774 \ub4e4\uc5b4\uac14\ub2e4(<a href=\"https:\/\/github.com\/vitejs\/vite\/commit\/3dbddefaafc091a879b06f9279296f776691e455\" target=\"_blank\" rel=\"noopener\">circular-import HMR<\/a>, <a href=\"https:\/\/github.com\/vitejs\/vite\/commit\/3ba026dade4af56df08815310d3458fa110f5c5c\" target=\"_blank\" rel=\"noopener\">lazy request error<\/a>). HMR playground \ud14c\uc2a4\ud2b8\ub3c4 \ud568\uaed8 \ucd94\uac00\ub418\uc5b4 \uc774 \uacbd\ub85c\uac00 \uc2e4\uc81c \ud68c\uadc0 \ub300\uc0c1\uc73c\ub85c \uad00\ub9ac\ub418\uace0 \uc788\uc74c\uc744 \ubcf4\uc5ec \uc900\ub2e4.<\/p>\n<p><strong>\uc2dc\uc0ac\uc810:<\/strong> \ucef4\ud3ec\ub10c\ud2b8 barrel export, composable \uc0c1\ud638 \ucc38\uc870, \uc790\ub3d9 import\uac00 \uc788\ub294 Nuxt \ud504\ub85c\uc81d\ud2b8\ub294 \ub2e8\uc21c \ud398\uc774\uc9c0 \uc0c8\ub85c\uace0\uce68\uc73c\ub85c HMR \ud488\uc9c8\uc744 \ud310\ub2e8\ud558\uba74 \uc548 \ub41c\ub2e4. \uc0c1\ud0dc\uac00 \uc720\uc9c0\ub41c hot update, \uc624\ub958 overlay, \uc2e4\ud328 \ud6c4 \ub2e4\uc74c \uc218\uc815\uc5d0\uc11c\uc758 \uc815\uc0c1 \ubcf5\uad6c\ub97c \uac01\uac01 \uad00\ucc30\ud574\uc57c \ud55c\ub2e4. \ucd5c\uc2e0 stable <a href=\"https:\/\/github.com\/vitejs\/vite\/blob\/v8.2.1\/packages\/vite\/CHANGELOG.md\" target=\"_blank\" rel=\"noopener\">Vite 8.2.1 changelog<\/a>\uc740 \uc774\ubbf8 bundled-dev\uc640 CSS\/build \uc218\uc815 \ud750\ub984\uc744 \ubcf4\uc5ec \uc8fc\uc9c0\ub9cc, \uc774 \ub9ac\ud3ec\ud2b8\uc758 \ub450 \ucee4\ubc0b\uc740 \uadf8 \ub4a4 main\uc5d0\uc11c \uc9c4\ud589 \uc911\uc778 \uc791\uc5c5\uc774\ub2e4.<\/p>\n<h2>\ud750\ub984 3 \u2014 H3\/Nitro \ub7f0\ud0c0\uc784: \ud504\ub85d\uc2dc\u00b7JSON-RPC \uc785\ub825 \uacbd\uacc4 \uac15\ud654<\/h2>\n<h3>x-forwarded-* \uc6b0\uc120\uc21c\uc704\uc640 \ub0b4\ubd80 \ud504\ub85d\uc2dc \ub300\uc0c1<\/h3>\n<p><strong>\uc0ac\uc2e4:<\/strong> H3 main\uc740 proxy\uc5d0\uc11c \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \ubcf4\ub0b8 <code>x-forwarded-*<\/code> \ud5e4\ub354\uac00 \uc6b0\uc120\ud558\uc9c0 \uc54a\uac8c \ud558\uace0, proxy\uc758 \ub0b4\ubd80 target\uc774 \uc571 origin\uc744 \uc720\uc9c0\ud558\ub3c4\ub85d \uc218\uc815\ud588\ub2e4(<a href=\"https:\/\/github.com\/h3js\/h3\/commit\/0c7429e8b740d6ee9d54b0a4f8436b894eb83d21\" target=\"_blank\" rel=\"noopener\">xfwd \ucee4\ubc0b<\/a>, <a href=\"https:\/\/github.com\/h3js\/h3\/commit\/07d22ecdb175416231242f7ea1ae8553ca0cc1fe\" target=\"_blank\" rel=\"noopener\">internal target \ucee4\ubc0b<\/a>).<\/p>\n<p><strong>\uc2dc\uc0ac\uc810:<\/strong> CDN \u2192 load balancer \u2192 Nuxt\/Nitro\ucc98\ub7fc \ub2e4\ub2e8 \ud504\ub85d\uc2dc\ub97c \uc4f0\ub294 \ud658\uacbd\uc5d0\uc11c\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc2e0\ub8b0\ud560 \ud5e4\ub354\ub97c \u2018\uc678\ubd80 \ud074\ub77c\uc774\uc5b8\ud2b8\u2019\uac00 \uc544\ub2c8\ub77c \u2018\uac80\uc99d\ub41c \ud504\ub85d\uc2dc hop\u2019\uc5d0\uc11c\ub9cc \ubc1b\uac8c \ud574\uc57c \ud55c\ub2e4. \uc774 main \ubcc0\uacbd\uc744 \ubcf4\uc548 \ud328\uce58\uac00 \uc774\ubbf8 \ubc30\ud3ec\ub410\ub2e4\ub294 \uadfc\uac70\ub85c \uc4f0\uc9c0 \ub9d0\uace0, \ud604\uc7ac nginx\/Cloudflare\/\ud50c\ub7ab\ud3fc\uc758 header overwrite \ubc0f trust proxy \uc815\ucc45\uc744 \uc810\uac80\ud558\ub294 \uacc4\uae30\ub85c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<h3>JSON-RPC\u00b7\uc815\uc801 \uc790\uc0b0\uc758 \ubc29\uc5b4\uc801 \ucc98\ub9ac<\/h3>\n<p><strong>\uc0ac\uc2e4:<\/strong> H3 main\uc740 JSON-RPC\uc5d0 JSON Content-Type \uc694\uad6c, Origin \uac80\uc99d, batch \ud06c\uae30 \uc81c\ud55c\uc744 \ucd94\uac00\ud588\uace0, \uc815\uc801 asset id\uc5d0\uc11c \uc778\ucf54\ub529\ub41c backslash\ub97c \ubd88\ud22c\uba85\ud558\uac8c \uc720\uc9c0\ud558\ub3c4\ub85d \uc218\uc815\ud588\ub2e4(<a href=\"https:\/\/github.com\/h3js\/h3\/commit\/72d8e05fb8a9a0eb6941d0c6f11b69b543452260\" target=\"_blank\" rel=\"noopener\">JSON-RPC \ucee4\ubc0b<\/a>, <a href=\"https:\/\/github.com\/h3js\/h3\/commit\/ab3f23c879739fad867e4d8d4686af7a82c558a6\" target=\"_blank\" rel=\"noopener\">static asset \ucee4\ubc0b<\/a>).<\/p>\n<p><strong>\uc2dc\uc0ac\uc810:<\/strong> RPC endpoint \ub610\ub294 \ud30c\uc77c \uc81c\uacf5 endpoint\ub97c \uc571\uc5d0 \ub178\ucd9c\ud588\ub2e4\uba74 CORS\ub9cc\uc73c\ub85c \ub05d\ub0b4\uc9c0 \ub9d0\uace0 request Content-Type, \ud5c8\uc6a9 Origin, payload\/batch \uc0c1\ud55c, URL \uc815\uaddc\ud654 \uaddc\uce59\uc744 \uba85\uc2dc\ud574\uc57c \ud55c\ub2e4. \ud2b9\ud788 encoded separator\uc640 backslash\ub294 OS\u00b7proxy\u00b7runtime\ub9c8\ub2e4 \ud574\uc11d\uc774 \ub2ec\ub77c\uc9c8 \uc218 \uc788\uc73c\ubbc0\ub85c \uce68\ud22c \ud14c\uc2a4\ud2b8 \uc785\ub825\uad70\uc5d0 \ud3ec\ud568\ud55c\ub2e4.<\/p>\n<h2>Nuxt \ud504\ub860\ud2b8\uc5d4\ub4dc \uac1c\ubc1c\uc790 \uccb4\ud06c\ub9ac\uc2a4\ud2b8<\/h2>\n<ul>\n<li><strong>SSR \ub77c\uc6b0\ud305:<\/strong> \uc778\ucf54\ub529\ub41c slash, \uacf5\ubc31, \ud55c\uae00, query\/hash\ub97c \uac00\uc9c4 <code>navigateTo<\/code>\uc640 \uc778\uc99d \ubcf5\uadc0 \ub9ac\ub2e4\uc774\ub809\ud2b8\ub97c server\/client \ubaa8\ub450\uc5d0\uc11c \ud14c\uc2a4\ud2b8\ud55c\ub2e4.<\/li>\n<li><strong>CSP:<\/strong> streaming SSR \ud398\uc774\uc9c0\uc5d0\uc11c \uc751\ub2f5 CSP\uc758 nonce\uc640 \ubaa8\ub4e0 \ud5c8\uc6a9 script\/style nonce\uac00 \uc77c\uce58\ud558\ub294\uc9c0 \uc790\ub3d9 \uac80\uc99d\ud55c\ub2e4. \ubcf4\uace0 \ubaa8\ub4dc\ubd80\ud130 \uc801\uc6a9\ud574 \uc704\ubc18\uc744 \uc218\uc9d1\ud55c\ub2e4.<\/li>\n<li><strong>\uac1c\ubc1c \uacbd\ud5d8:<\/strong> \uc21c\ud658 import\uac00 \uc788\ub294 composable\u00b7barrel export\uc758 \ud30c\uc77c\uc744 \uc218\uc815\ud574 HMR\uc774 \uc0c1\ud0dc\ub97c \ubcf4\uc874\ud558\uace0 \uc624\ub958 \ud6c4 \ubcf5\uad6c\ub418\ub294\uc9c0 CI \ub610\ub294 preview\uc5d0\uc11c \ud655\uc778\ud55c\ub2e4.<\/li>\n<li><strong>\ud504\ub85d\uc2dc:<\/strong> \uc678\ubd80 <code>x-forwarded-*<\/code>\ub97c \uc571\uc774 \uc2e0\ub8b0\ud558\uc9c0 \uc54a\ub3c4\ub85d ingress\uc5d0\uc11c overwrite\ud558\uace0, \uc2e4\uc81c trusted proxy \ubaa9\ub85d\uacfc HTTPS redirect \uaddc\uce59\uc744 \ubb38\uc11c\ud654\ud55c\ub2e4.<\/li>\n<li><strong>API:<\/strong> JSON-RPC\/\uad00\ub9ac endpoint\uc5d0\ub294 JSON Content-Type, Origin allowlist, \uc694\uccad \ud06c\uae30\u00b7batch \uc81c\ud55c, \uc778\uc99d \uc2e4\ud328 \uad00\uce21 \ub85c\uadf8\ub97c \ub454\ub2e4.<\/li>\n<li><strong>\uc5c5\uadf8\ub808\uc774\ub4dc:<\/strong> main \ucee4\ubc0b\uc740 \ub9b4\ub9ac\uc988\uac00 \uc544\ub2c8\ub2e4. lockfile \ubcc0\uacbd \uc804 release tag\u00b7npm dist-tag\u00b7\uacf5\uc2dd changelog\ub97c \ud655\uc778\ud558\uace0, preview \u2192 canary \u2192 production \uc21c\uc11c\ub85c \uc9c4\ud589\ud55c\ub2e4.<\/li>\n<\/ul>\n<h2>\uc790\uc8fc \ubb3b\ub294 \uc9c8\ubb38 (FAQ)<\/h2>\n<h3>\uc9c0\uae08 Nuxt\u00b7Vite\u00b7H3 \ubc84\uc804\uc744 \uc62c\ub824\uc57c \ud558\ub098\uc694?<\/h3>\n<p>\uc544\ub2c8\ub2e4. \uc774 \ub9ac\ud3ec\ud2b8\uc758 \ud575\uc2ec \ucee4\ubc0b\uc740 \ubaa8\ub450 main \ube0c\ub79c\uce58\uc758 <strong>\ubbf8\ucd9c\uc2dc \uc791\uc5c5<\/strong>\uc774\ub2e4. \uc6b4\uc601 \uc5c5\uadf8\ub808\uc774\ub4dc\ub294 stable release notes\uc640 package dist-tag\uac00 \ud655\uc778\ub41c \ub4a4\uc5d0\ub9cc \uacb0\uc815\ud55c\ub2e4. \ub2e4\ub9cc \ud574\ub2f9 \ubcc0\uacbd\uc774 \uaca8\ub0e5\ud55c \uc785\ub825\u00b7\uacbd\uacc4 \uc870\uac74\uc740 \ud604\uc7ac \ubc84\uc804\uc5d0\uc11c\ub3c4 \ud14c\uc2a4\ud2b8\ud560 \uac00\uce58\uac00 \uc788\ub2e4.<\/p>\n<h3>Vue 3.6 RC\ub294 \uc6b4\uc601\uc5d0 \uc801\uc6a9\ud574\ub3c4 \ub418\ub098\uc694?<\/h3>\n<p>Vue 3.6 RC.4\ub294 \uc815\uc2dd stable\uc774 \uc544\ub2c8\ub77c release candidate\ub2e4. Vapor \uad00\ub828 transition, \ubaa9\ub85d, props \ubcf4\uc815\uc774 \ud3ec\ud568\ub41c \uacf5\uc2dd changelog\ub97c \uac80\ud1a0\ud558\uace0, \uc2e4\ud5d8 \ubd84\ub9ac\u00b7\ud68c\uadc0 \ud14c\uc2a4\ud2b8\u00b7\ub418\ub3cc\ub9ac\uae30 \uacc4\ud68d\uc774 \uc788\ub294 \uacbd\uc6b0\uc5d0\ub9cc \ud3c9\uac00 \ud658\uacbd\uc5d0\uc11c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n<h2>\uc8fc\uc694 \ucd9c\ucc98<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/commit\/8927183f4683ac85d9e02336f58f88c640c13c56\" target=\"_blank\" rel=\"noopener\">Nuxt main \u2014 server navigateTo percent-encoding \ubcf4\uc874<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vitejs\/vite\/commit\/3dbddefaafc091a879b06f9279296f776691e455\" target=\"_blank\" rel=\"noopener\">Vite main \u2014 circular import hot update<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/h3js\/h3\/commit\/0c7429e8b740d6ee9d54b0a4f8436b894eb83d21\" target=\"_blank\" rel=\"noopener\">H3 main \u2014 x-forwarded-* \uc2e0\ub8b0 \uacbd\uacc4<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/h3js\/h3\/commit\/72d8e05fb8a9a0eb6941d0c6f11b69b543452260\" target=\"_blank\" rel=\"noopener\">H3 main \u2014 JSON-RPC validation<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/vuejs\/core\/releases\/tag\/v3.6.0-rc.4\" target=\"_blank\" rel=\"noopener\">Vue 3.6.0-rc.4<\/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>\uc694\uc57d: 8\uc6d4 16~19\uc77c(KST) Nuxt\u00b7Vite\u00b7H3 \uc0dd\ud0dc\uacc4\uc758 \ucd5c\uadfc 72\uc2dc\uac04 \ud750\ub984\uc740 \uc0c8 \uae30\ub2a5 \ucd9c\uc2dc\ubcf4\ub2e4 SSR \uacbd\uacc4\uc758 \uc815\ud655\uc131, \uac1c\ubc1c \uc11c\ubc84 \ubcf5\uc6d0\ub825, \ud504\ub85d\uc2dc \uc2e0\ub8b0 \uacbd\uacc4\ub97c \ub2e4\ub4ec\ub294 main \ube0c\ub79c\uce58 \uc791\uc5c5\uc5d0 \uc9d1\uc911\ub410\ub2e4. Nuxt \ud504\ub860\ud2b8\uc5d4\ub4dc \uac1c\ubc1c\uc790\ub294 \uc9c0\uae08 \uc758\uc874\uc131\uc744 \uc989\uc2dc \uc62c\ub9ac\uae30\ubcf4\ub2e4 \ub9ac\ub2e4\uc774\ub809\ud2b8\u00b7CSP\u00b7HMR\u00b7\ud504\ub85d\uc2dc \uad6c\uc131\uc744 \ud14c\uc2a4\ud2b8 \uac00\ub2a5\ud55c \uc6b4\uc601 \uacc4\uc57d\uc73c\ub85c \ubc14\uafb8\ub294 \uac83\uc774 \uc6b0\uc120\uc774\ub2e4. \ud575\uc2ec \ub2f5\ubcc0 \uc774\ubc88 3\uc77c \ub3d9\uc548 Nuxt\/Vue\/Vite\/Nitro \uacc4\uc5f4\uc5d0\uc11c \ud655\uc778\ud560 \uac00\uc7a5 \uc2e4\uc6a9\uc801\uc778 \ubcc0\ud654\ub294 \ubb34\uc5c7\uc778\uac00? \uc815\uc2dd \ubc30\ud3ec\ubcf8\uc740 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-470","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\/470","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=470"}],"version-history":[{"count":0,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/470\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media\/469"}],"wp:attachment":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media?parent=470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/categories?post=470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/tags?post=470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}