{"id":249,"date":"2026-07-14T23:44:38","date_gmt":"2026-07-14T23:44:38","guid":{"rendered":"https:\/\/gilnas.synology.me\/wordpress\/249\/"},"modified":"2026-07-14T23:44:38","modified_gmt":"2026-07-14T23:44:38","slug":"nuxt-%ec%9a%b4%ec%98%81-%ea%b2%bd%ea%b3%84-%ec%a0%90%ea%b2%80-h3%c2%b7ssr%c2%b7nitro%c2%b7unhead-three-day-nuxt-runtime-boundaries-report","status":"publish","type":"post","link":"https:\/\/gilnas.synology.me\/wordpress\/249\/","title":{"rendered":"Nuxt \uc6b4\uc601 \uacbd\uacc4 \uc810\uac80: H3\u00b7SSR\u00b7Nitro\u00b7Unhead | Three-Day Nuxt Runtime Boundaries Report"},"content":{"rendered":"<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/gilnas.synology.me\/wordpress\/wp-content\/uploads\/2026\/07\/nuxt-trend-hero-3.png\" alt=\"Nuxt \uc6b4\uc601 \uacbd\uacc4 \uc810\uac80: H3\u00b7SSR\u00b7Nitro\u00b7Unhead | Three-Day Nuxt Runtime Boundaries Report\" \/><\/figure>\n<p><strong>\uc694\uc57d:<\/strong> 2026\ub144 7\uc6d4 12\uc77c~15\uc77c \uad00\ucc30 \ucc3d\uc758 Nuxt\/Vue\/Vite\/Nitro \ud750\ub984\uc740 \uc0c8 \uc548\uc815\ud310\uc744 \ud55c\uaebc\ubc88\uc5d0 \uc62c\ub9ac\ub77c\ub294 \uc2e0\ud638\uac00 \uc544\ub2c8\ub77c, <strong>SSR \uc2e0\ub8b0 \uacbd\uacc4(H3), \ub80c\ub354\ub9c1\u00b7\uba54\ud0c0\ub370\uc774\ud130 \uc2a4\ud2b8\ub9bc(Unhead), \ube4c\ub4dc\u00b7\ub77c\uc6b0\ud130 \ud1b5\ud569(Nuxt\/Vite\/Rspack), \uc11c\ubc84 \uc790\uc0b0 \ucc98\ub9ac(Nitro)<\/strong>\ub97c \ubd84\ub9ac\ud574 \uac80\uc99d\ud558\ub77c\ub294 \uc2e0\ud638\ub2e4. Nuxt \ud504\ub860\ud2b8\uc5d4\ub4dc \uac1c\ubc1c\uc790\ub294 \uc778\uc99d \ucfe0\ud0a4\u00b7\ud504\ub85d\uc2dc \ud5e4\ub354\u00b7\uc2a4\ud2b8\ub9ac\ubc0d SSR\u00b7typed router\u00b7\ubc30\ud3ec \uc0b0\ucd9c\ubb3c\uc758 \ud68c\uadc0 \uc2dc\ub098\ub9ac\uc624\ub97c \uc774\ubc88 \ubc30\ud3ec \uc8fc\uae30\uc5d0\uc11c \uba85\uc2dc\uc801\uc73c\ub85c \ud655\uc778\ud574\uc57c \ud55c\ub2e4.<\/p>\n<h2>\ud575\uc2ec \ub2f5\ubcc0<\/h2>\n<p>\ud604\uc7ac \ud504\ub85c\ub355\uc158 Nuxt \uc571\uc744 \uc989\uc2dc \uc5c5\uadf8\ub808\uc774\ub4dc\ud560 \uadfc\uac70\uac00 \ub418\ub294 \uc0c8 Nuxt\/Vite \uc548\uc815 \ub9b4\ub9ac\uc988\ub294 \uc774\ubc88 72\uc2dc\uac04\uc5d0 \ud655\uc778\ub418\uc9c0 \uc54a\uc558\ub2e4. \ubc18\uba74 \uacf5\uc2dd \uc5c5\uc2a4\ud2b8\ub9bc\uc5d0\ub294 H3\uc758 \ucfe0\ud0a4\u00b7CORS\u00b7\ud504\ub85d\uc2dc \uc2e0\ub8b0 \uacbd\uacc4 \ubcc0\uacbd, Nuxt\uc758 typed-router\u00b7Rspack \ud1b5\ud569 \uc791\uc5c5, Nitro\uc758 import attributes \uc9c0\uc6d0, Unhead 3.1.8\uacfc \uc2a4\ud2b8\ub9ac\ubc0d SSR \uc218\uc815\uc774 \uc5f0\uc18d\uc801\uc73c\ub85c \uc62c\ub77c\uc654\ub2e4. <strong>\ud655\uc778\ub41c \uc0ac\uc2e4<\/strong>\uc740 \uac01\uac01 \uacf5\uac1c \ub9b4\ub9ac\uc988 \ub610\ub294 main \ube0c\ub79c\uce58 \ucee4\ubc0b\uc5d0 \uae30\ub85d\ub3fc \uc788\uc73c\uba70, <strong>\uc6b4\uc601 \uc2dc\uc0ac\uc810<\/strong>\uc740 \uc774\ub97c \uace7\ubc14\ub85c \ubc30\ud3ec\ud558\uc9c0 \ub9d0\uace0 \uacbd\uacc4\ubcc4 canary\uc640 \ud14c\uc2a4\ud2b8\ub85c \ubc14\uafb8\ub77c\ub294 \uac83\uc774\ub2e4.<\/p>\n<ul>\n<li><strong>\uc6b0\uc120\uc21c\uc704 1:<\/strong> \ucfe0\ud0a4 \uc778\uc99d\u00b7reverse proxy\uac00 \uc788\uc73c\uba74 H3\uc758 SameSite, <code>x-forwarded-proto<\/code>, CORS \ub3d9\uc791\uc744 \uc2a4\ud14c\uc774\uc9d5\uc5d0\uc11c \uc7ac\ud604\ud55c\ub2e4.<\/li>\n<li><strong>\uc6b0\uc120\uc21c\uc704 2:<\/strong> SSR\uc744 \uc4f0\uba74 Vite\uc758 switch-case scope \uc218\uc815\uacfc Unhead \uc2a4\ud2b8\ub9bc \ucde8\uc18c\u00b7backpressure \ud750\ub984\uc744 \uc624\ub958 \uc218\uc9d1\u00b7\uc751\ub2f5 \uc911\ub2e8 \uc2dc\ub098\ub9ac\uc624\ub85c \ud655\uc778\ud55c\ub2e4.<\/li>\n<li><strong>\uc6b0\uc120\uc21c\uc704 3:<\/strong> typed router, Rspack, Nitro import attributes\ub294 main \ube0c\ub79c\uce58 \uc2e0\ud638\uc774\ubbc0\ub85c \uace0\uc815 \ubc84\uc804\uc758 \ud504\ub85c\ub355\uc158 \uc2b9\uaca9\uc774 \uc544\ub2c8\ub77c \uc2e4\ud5d8\/\uc5c5\uadf8\ub808\uc774\ub4dc \ube0c\ub79c\uce58\uc5d0\uc11c\ub9cc \ud3c9\uac00\ud55c\ub2e4.<\/li>\n<\/ul>\n<h2>3\uc77c \uacb0\ub860: \ud504\ub808\uc784\uc6cc\ud06c \ubc84\uc804\ubcf4\ub2e4 \u2018\uacbd\uacc4 \uacc4\uc57d\u2019\uc744 \uba3c\uc800 \ud14c\uc2a4\ud2b8\ud558\ub77c<\/h2>\n<p>\uc774\ubc88 3\uc77c\uc758 \ud575\uc2ec\uc740 \ud558\ub098\uc758 \ub300\ud615 \ub9b4\ub9ac\uc988\uac00 \uc544\ub2c8\ub77c \uc5ec\ub7ec \ud558\uc704 \uacc4\uce35\uc5d0\uc11c \ub3d9\uc2dc\uc5d0 \ub098\ud0c0\ub09c \uacc4\uc57d \ubcc0\uacbd\uc774\ub2e4. Nuxt main\uc5d0\ub294 <a href=\"https:\/\/github.com\/nuxt\/nuxt\/commit\/c8d7662e549177da82d6b50501b24bf5c08a9155\" target=\"_blank\" rel=\"noopener\">typed-router context\uc5d0 Nuxt rootDir\uc744 \uc804\ub2ec\ud558\ub294 \uc218\uc815<\/a>, <a href=\"https:\/\/github.com\/nuxt\/nuxt\/commit\/6cfe44bc00036067c206faa3360188e19ea32c2c\" target=\"_blank\" rel=\"noopener\">\ubaa8\ub4c8 \uc124\uce58 \ub4a4 mutation tracker\ub97c options\uc5d0\uc11c \ubd84\ub9ac\ud558\ub294 \uc218\uc815<\/a>, <a href=\"https:\/\/github.com\/nuxt\/nuxt\/commit\/d2545ba3f4c51b1a8c7cfd4577aa290734a48\" target=\"_blank\" rel=\"noopener\">Rspack \uc804\uc6a9 Vue loader \uc791\uc5c5<\/a>\uc774 \uae30\ub85d\ub410\ub2e4. \uc774\ub4e4\uc740 \uacf5\uc2dd \uc548\uc815 \ub9b4\ub9ac\uc988 \ub178\ud2b8\uac00 \uc544\ub2cc \uc5c5\uc2a4\ud2b8\ub9bc \uac1c\ubc1c \ud750\ub984\uc774\ub2e4. \ub530\ub77c\uc11c \u2018Nuxt\uac00 Rspack\uc73c\ub85c \ubc14\ub00c\uc5c8\ub2e4\u2019\uace0 \ub2e8\uc815\ud560 \uadfc\uac70\ub294 \uc544\ub2c8\uc9c0\ub9cc, \ub77c\uc6b0\ud130 \ud0c0\uc785 \uc0dd\uc131\u00b7\ubaa8\ub4c8 \uc124\uc815\u00b7\ub300\uccb4 \ubc88\ub4e4\ub7ec\ub97c \uc0ac\uc6a9\ud558\ub294 \ud300\uc774 \uc0ac\uc804 \ud68c\uadc0 \ud14c\uc2a4\ud2b8\ub97c \uc900\ube44\ud560 \uadfc\uac70\ub294 \ub41c\ub2e4.<\/p>\n<p>Vite main\uc5d0\ub3c4 <a href=\"https:\/\/github.com\/vitejs\/vite\/commit\/b59a73f76f5557492d83d097bb33b3dd02f27d51\" target=\"_blank\" rel=\"noopener\">SSR\uc5d0\uc11c switch-case \uc120\uc5b8 \ubc94\uc704\ub97c \ud568\uc218\uac00 \uc544\ub2cc switch\ub85c \uc81c\ud55c\ud558\ub294 \uc218\uc815<\/a>\uacfc Rolldown \uad00\ub828 \uc758\uc874\uc131 \uac31\uc2e0\uc774 \uc62c\ub77c\uc654\ub2e4. \uc774\ub294 \ucd5c\uc2e0 \uc548\uc815\ud310 <a href=\"https:\/\/github.com\/vitejs\/vite\/releases\/tag\/v8.1.4\" target=\"_blank\" rel=\"noopener\">Vite 8.1.4<\/a>\uc758 \uc0c8 \uae30\ub2a5 \ubc1c\ud45c\uac00 \uc544\ub2c8\ub2e4. \ub2e4\ub9cc SSR \ubcc0\ud658 \uacb0\uacfc\uc640 \ubbf8\ub798 \ubc88\ub4e4\ub7ec \uacbd\ub85c\ub97c \ub2e4\ub8e8\ub294 \ucf54\ub4dc\uac00 \uacc4\uc18d \uc870\uc815\ub418\uace0 \uc788\ub2e4\ub294 \uad00\ucc30 \uc2e0\ud638\uc774\ubbc0\ub85c, \uc624\ub958 \uc2a4\ud0dd\u00b7\uc870\uac74 \ubd84\uae30\u00b7\ub3d9\uc801 import\ub97c \uc2e4\uc81c \uc11c\ubc84 \ub80c\ub354\ub9c1\uc5d0\uc11c \uac80\uc99d\ud560 \uc774\uc720\uac00 \ub41c\ub2e4.<\/p>\n<h2>\ud750\ub984 1: H3\ub294 \ubcf4\uc548 \uae30\ubcf8\uac12\uacfc \ud504\ub85d\uc2dc \uc2e0\ub8b0\ub97c \ub354 \uba85\uc2dc\uc801\uc73c\ub85c \ub9cc\ub4e0\ub2e4<\/h2>\n<p>H3 main\uc5d0\uc11c 7\uc6d4 14\uc77c\uc5d0\ub294 <a href=\"https:\/\/github.com\/h3js\/h3\/commit\/acf8d77bf15d2f4432929959e869fa4ba2f1322d\" target=\"_blank\" rel=\"noopener\">\uc138\uc158 \ucfe0\ud0a4 \uae30\ubcf8\uac12\uc744 SameSite=Lax\ub85c \ud558\ub294 \ubcc0\uacbd<\/a>, <a href=\"https:\/\/github.com\/h3js\/h3\/commit\/a173e994e5fd192f8e6199728394147f43defa23\" target=\"_blank\" rel=\"noopener\"><code>x-forwarded-proto<\/code> \uc2e0\ub8b0\ub97c opt-in\uc73c\ub85c \ubc14\uafb8\ub294 breaking \ubcc0\uacbd<\/a>, <a href=\"https:\/\/github.com\/h3js\/h3\/commit\/029fde0ac30619de7f2e9e33216a1e4d323cf590\" target=\"_blank\" rel=\"noopener\">credentials\uc640 null origin \uc870\ud569\uc5d0 \uacbd\uace0\ub97c \ucd94\uac00\ud558\ub294 CORS \uc218\uc815<\/a>\uc774 \ubcf4\uc778\ub2e4. HTML tagged template\uc758 \ubcf4\uac04\uac12 \uc774\uc2a4\ucf00\uc774\ud504\uc640 Basic-auth UTF-8 \ub514\ucf54\ub529, \ub3c4\uba54\uc778 \ud45c\uae30\uac00 \uc11e\uc778 \ucfe0\ud0a4 \uc911\ubcf5 \uc81c\uac70\ub3c4 \uac19\uc740 \ud750\ub984\uc5d0 \uc788\ub2e4.<\/p>\n<p><strong>\uc0ac\uc2e4:<\/strong> \uc774 \ubcc0\uacbd\ub4e4\uc740 \ud604 \uc2dc\uc810\uc758 main \ube0c\ub79c\uce58 \ucee4\ubc0b\uc774\ub2e4. <strong>\ud574\uc11d:<\/strong> CDN\u00b7\ub85c\ub4dc\ubc38\ub7f0\uc11c\u00b7reverse proxy \ub4a4\uc758 Nuxt\/Nitro \uc11c\ube44\uc2a4\uc5d0\uc11c \u2018\uc804\ub2ec\ub41c \ud504\ub85c\ud1a0\ucf5c \ud5e4\ub354\ub97c \uc5b8\uc81c \ubbff\ub294\uac00\u2019\uc640 \u2018\uc678\ubd80 \ub3c4\uba54\uc778\uc5d0\uc11c \ucfe0\ud0a4\ub97c \uc5b8\uc81c \ubcf4\ub0b4\ub294\uac00\u2019\ub97c \ub77c\uc774\ube0c\ub7ec\ub9ac \uc554\ubb35\uac12\uc5d0\ub9cc \ub9e1\uae30\uc9c0 \ub9d0\ub77c\ub294 \ubc29\ud5a5\uc774\ub2e4. RC\/\uc548\uc815 \ub9b4\ub9ac\uc988\ub85c \uc2b9\uaca9\ub410\ub294\uc9c0\ub294 \ubcc4\ub3c4\ub85c \ud655\uc778\ud574\uc57c \ud558\uba70, \ud604\uc7ac npm \ucd5c\uc2e0 \ud0dc\uadf8\ub294 <a href=\"https:\/\/www.npmjs.com\/package\/h3\" target=\"_blank\" rel=\"noopener\">H3 2.0.1-rc.25<\/a>\ub2e4.<\/p>\n<h3>\uc6b4\uc601\uc5d0 \ubbf8\uce58\ub294 \uc601\ud5a5<\/h3>\n<p>\ub85c\uadf8\uc778 \ucf5c\ubc31, HTTPS \uac15\uc81c \ub9ac\ub2e4\uc774\ub809\ud2b8, cross-origin API, \uc11c\ube0c\ub3c4\uba54\uc778 \uc138\uc158\uc744 \uac00\uc9c4 \uc11c\ube44\uc2a4\ub294 \ud504\ub85d\uc2dc\uac00 \ub123\ub294 <code>X-Forwarded-Proto<\/code>\uc640 <code>Origin<\/code>, <code>Set-Cookie<\/code>\ub97c \uc2e4\uc81c ingress \uacbd\ub85c\uc5d0\uc11c \ucea1\ucc98\ud574 \ube44\uad50\ud574\uc57c \ud55c\ub2e4. SameSite=Lax\ub294 \uc77c\ubc18\uc801\uc778 \uae30\ubcf8 \ubc29\uc5b4\uc5d0\ub294 \uc720\ub9ac\ud560 \uc218 \uc788\uc9c0\ub9cc, \uc678\ubd80 \uacb0\uc81c\u00b7OAuth\u00b7\uc784\ubca0\ub4dc \uac19\uc740 \ud750\ub984\uc758 \uc694\uad6c\uc0ac\ud56d\uc744 \uc790\ub3d9\uc73c\ub85c \ucda9\uc871\ud55c\ub2e4\ub294 \ub73b\uc740 \uc544\ub2c8\ub2e4.<\/p>\n<h2>\ud750\ub984 2: \uc2a4\ud2b8\ub9ac\ubc0d SSR\uacfc \uba54\ud0c0\ub370\uc774\ud130\ub294 \ucde8\uc18c\u00b7\ubc88\ub4e4 \ud0c0\uae43\uae4c\uc9c0 \uad00\uce21 \ub300\uc0c1\uc774\ub2e4<\/h2>\n<p><a href=\"https:\/\/github.com\/unjs\/unhead\/releases\/tag\/v3.1.8\" target=\"_blank\" rel=\"noopener\">Unhead 3.1.8<\/a>\uc740 7\uc6d4 12\uc77c \uacf5\uac1c\ub410\ub2e4. \uc774\uc5b4 main\uc5d0\ub294 <a href=\"https:\/\/github.com\/unjs\/unhead\/commit\/6395a123a65668021aeb3e2cfa430321c2f08486\" target=\"_blank\" rel=\"noopener\">stream\uc5d0\uc11c backpressure\uc640 cancellation\uc744 \uc874\uc911\ud558\ub294 \uc218\uc815<\/a>, <a href=\"https:\/\/github.com\/unjs\/unhead\/commit\/ea14841b7cb7699cc9891cadf8a1b0d9b0ea7a3d\" target=\"_blank\" rel=\"noopener\">bundler transform\uc758 build-target \uac10\uc9c0 \ubcf4\uc815<\/a>, \uc2a4\ud2b8\ub9ac\ubc0d SSR benchmark \uc791\uc5c5\uc774 \uae30\ub85d\ub410\ub2e4. \ub9b4\ub9ac\uc988\uc640 \ud6c4\uc18d main \ucee4\ubc0b\uc744 \uac19\uc740 \uc548\uc815\uc131 \ubcf4\uc99d\uc73c\ub85c \ucde8\uae09\ud558\uba74 \uc548 \ub41c\ub2e4. \uadf8\ub7ec\ub098 Nuxt \uc571\uc5d0\uc11c head \ud0dc\uadf8\u00b7SEO \uba54\ud0c0\u00b7streaming response\uac00 \ub9cc\ub098\ub294 \uc601\uc5ed\uc744 \uad00\ucc30\ud574\uc57c \ud55c\ub2e4\ub294 \uadfc\uac70\ub85c\ub294 \ucda9\ubd84\ud558\ub2e4.<\/p>\n<p><strong>\uac1c\ubc1c\uc790 \uc561\uc158:<\/strong> \ub290\ub9b0 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc5f0\uacb0\uc744 \ub04a\ub294 \uc0c1\ud669, streaming SSR\uc5d0\uc11c title\/description\/canonical\uc774 \ubc14\ub00c\ub294 \uacbd\ub85c, \uc11c\ubc84\uc640 \ud074\ub77c\uc774\uc5b8\ud2b8 \ube4c\ub4dc \ud0c0\uae43\uc774 \ub2e4\ub978 \ubaa8\ub178\ub808\ud3ec\ub97c \ud14c\uc2a4\ud2b8\ud55c\ub2e4. \uc751\ub2f5\uc774 \ub05d\ub09c \ub4a4\uc5d0\ub3c4 \uc2a4\ud2b8\ub9bc \uc791\uc5c5\uc774 \ub0a8\uac70\ub098 meta \ud0dc\uadf8\uac00 \ub204\ub77d\ub418\ub294\uc9c0, crawler\uac00 \ubc1b\ub294 \ucd08\uae30 HTML\uc774 \uc758\ub3c4\ub300\ub85c\uc778\uc9c0 \ubcc4\ub3c4 \ub85c\uadf8\ub85c \ud655\uc778\ud55c\ub2e4.<\/p>\n<h2>\ud750\ub984 3: Nitro\uc640 Nuxt\uc758 \ube4c\ub4dc \uacbd\ub85c\ub294 \uc2e4\ud5d8\uc744 \ud504\ub85c\ub355\uc158 \uacc4\uc57d\uacfc \ubd84\ub9ac\ud55c\ub2e4<\/h2>\n<p>Nitro main\uc740 <a href=\"https:\/\/github.com\/nitrojs\/nitro\/commit\/c6e6168b87e627d69638bb81410fccde2ddf7237\" target=\"_blank\" rel=\"noopener\"><code>bytes<\/code>\uc640 <code>text<\/code> import attributes\ub97c \uc9c0\uc6d0\ud558\ub294 \ube4c\ub4dc \uae30\ub2a5<\/a>\uc744 \ucd94\uac00\ud588\ub2e4. \uc774\ub294 \ud14d\uc2a4\ud2b8\u00b7\ubc14\uc774\ub108\ub9ac \uc790\uc0b0\uc744 \uba85\uc2dc\uc801\uc73c\ub85c \ub2e4\ub8e8\ub824\ub294 \ubc29\ud5a5\uc744 \ubcf4\uc5ec\uc8fc\uc9c0\ub9cc, \ud604\uc7ac \uc571\uc758 asset import \ub3d9\uc791\uc774 \uc989\uc2dc \ubc14\ub010\ub2e4\ub294 \uacf5\uc9c0\ub294 \uc544\ub2c8\ub2e4. Nuxt main\uc758 Rspack \uc804\uc6a9 Vue loader \ubc0f webpack\/rspack dev test \uc7ac\ud65c\uc131\ud654 \uc5ed\uc2dc \ub300\uccb4 \ubc88\ub4e4\ub7ec \ud638\ud658\uc131\uc744 \ub2e4\ub4ec\ub294 \uacfc\uc815\uc73c\ub85c \uc77d\uc5b4\uc57c \ud55c\ub2e4.<\/p>\n<p><strong>\uc2dc\uc0ac\uc810:<\/strong> \uc774\ubbf8\uc9c0\u00b7WASM\u00b7raw text\u00b7i18n \ub9ac\uc18c\uc2a4\ub97c \ube4c\ub4dc \uc2dc \ucc98\ub9ac\ud558\ub294 Nuxt \ud504\ub85c\uc81d\ud2b8\ub294 Vite, Nitro, \ubcc4\ub3c4 loader\uc758 \ucc45\uc784\uc744 \ubb38\uc11c\ud654\ud560 \ud544\uc694\uac00 \uc788\ub2e4. \ud2b9\ud788 SSR \ubc30\ud3ec\uc640 edge\/serverless \uc5b4\ub311\ud130\ub97c \ud568\uaed8 \uc4f0\uba74 \ub85c\uceec dev \uacb0\uacfc\ub9cc\uc73c\ub85c \uc790\uc0b0 MIME\u00b7\uacbd\ub85c\u00b7\uce90\uc2dc \uaddc\uce59\uc744 \ud310\ub2e8\ud558\uc9c0 \ub9d0\uace0, preview \ubc30\ud3ec \uc0b0\ucd9c\ubb3c\uc5d0\uc11c \uac80\uc99d\ud574\uc57c \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>\uc778\uc99d\uacfc \ud504\ub85d\uc2dc:<\/strong> HTTPS \uc885\ub8cc \uc9c0\uc810, <code>X-Forwarded-Proto<\/code>, callback URL, <code>SameSite<\/code>\/<code>Secure<\/code> \ucfe0\ud0a4\ub97c \uc2e4\uc81c CDN\u2192ingress\u2192Nitro \uacbd\ub85c\ub85c \ud14c\uc2a4\ud2b8\ud55c\ub2e4.<\/li>\n<li><strong>CORS:<\/strong> credential \ud3ec\ud568 \uc694\uccad\uc5d0\uc11c \ud5c8\uc6a9 origin, preflight, <code>Vary: Origin<\/code>, <code>null<\/code> origin \ucc98\ub9ac \ubc29\uce68\uc744 \uba85\uc2dc\ud55c\ub2e4.<\/li>\n<li><strong>SSR:<\/strong> switch-case \uc548\uc758 \uc870\uac74\ubd80 \ucef4\ud3ec\ub10c\ud2b8, \ub3d9\uc801 import, \uc608\uc678 \uc2a4\ud0dd, \ud074\ub77c\uc774\uc5b8\ud2b8 \uc5f0\uacb0 \ucde8\uc18c\ub97c \ud3ec\ud568\ud55c smoke test\ub97c \ub9cc\ub4e0\ub2e4.<\/li>\n<li><strong>SEO\/Head:<\/strong> streaming SSR \ud398\uc774\uc9c0\uc5d0\uc11c canonical, robots, title, description, OG \ud0dc\uadf8\uac00 \ucd08\uae30 HTML\uacfc hydration \ud6c4 \ubaa8\ub450 \uc77c\uce58\ud558\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4.<\/li>\n<li><strong>\ube4c\ub4dc \uc2e4\ud5d8:<\/strong> typed router\/Rspack\/Nitro import attributes \uad00\ub828 \uc791\uc5c5\uc740 lockfile\uc744 \ubc14\uafb8\ub294 \ub3c5\ub9bd PR\uacfc preview \ud658\uacbd\uc5d0\uc11c\ub9cc \ud3c9\uac00\ud558\uace0, main \ucee4\ubc0b\uc744 \ud504\ub85c\ub355\uc158 \ubc84\uc804\uc73c\ub85c \uac04\uc8fc\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/li>\n<li><strong>\uad00\uce21\uc131:<\/strong> 3xx \ub9ac\ub2e4\uc774\ub809\ud2b8 scheme, CORS preflight \uc2e4\ud328, \uc138\uc158 \uc7ac\ubc1c\uae09, stream abort, \uc815\uc801 \uc790\uc0b0 404\ub97c \ubc30\ud3ec \uc804\ud6c4\ub85c \ub530\ub85c \uc9d1\uacc4\ud55c\ub2e4.<\/li>\n<\/ul>\n<h2>\ube60\ub978 Q&amp;A<\/h2>\n<h3>\uc9c0\uae08 Nuxt \ub610\ub294 Vite\ub97c \uc62c\ub824\uc57c \ud558\ub098?<\/h3>\n<p>\uc544\ub2c8\ub2e4. \uc774\ubc88 72\uc2dc\uac04\uc5d0\ub294 Nuxt\/Vite\uc758 \uc0c8 \uc548\uc815 \ub9b4\ub9ac\uc988\uac00 \ud655\uc778\ub418\uc9c0 \uc54a\uc558\ub2e4. main \ube0c\ub79c\uce58 \ubcc0\uacbd\uc740 \ub85c\ub4dc\ub9f5 \uc2e0\ud638\uc774\uc9c0 \uc989\uc2dc \uc2b9\uaca9 \uc9c0\uc2dc\uac00 \uc544\ub2c8\ub2e4. \ud604\uc7ac \uace0\uc815 \ubc84\uc804\uacfc \uc804\uc774 \uc758\uc874\uc131\uc744 \uba3c\uc800 \uae30\ub85d\ud558\uace0, \ubcc0\uacbd\uc740 \uc791\uc740 PR\u00b7canary\ub85c \ubd84\ub9ac\ud55c\ub2e4.<\/p>\n<h3>\uac00\uc7a5 \uba3c\uc800 \uc2e4\ud328\ub97c \ucc3e\uc544\ub0bc \ud14c\uc2a4\ud2b8\ub294 \ubb34\uc5c7\uc778\uac00?<\/h3>\n<p>\ucfe0\ud0a4 \uae30\ubc18 \ub85c\uadf8\uc778\uacfc \ud504\ub85d\uc2dc \ub9ac\ub2e4\uc774\ub809\ud2b8, credentialed CORS, streaming SSR \uc911 \uc5f0\uacb0 \ucde8\uc18c, typed route \uc0dd\uc131, preview \ubc30\ud3ec\uc758 \uc790\uc0b0 import\ub2e4. \uc774 \ub2e4\uc12f \uac00\uc9c0\ub294 \uc774\ubc88 \uad00\ucc30\ub41c \ubcc0\uacbd\uc774 \uc2e4\uc81c \uc0ac\uc6a9\uc790 \uacc4\uc57d\uc73c\ub85c \ub098\ud0c0\ub098\ub294 \uc811\uc810\uc774\ub2e4.<\/p>\n<h3>\uc774\ubc88 \ubcc0\ud654\uac00 \uc131\ub2a5 \ud5a5\uc0c1\uc744 \ubcf4\uc7a5\ud558\ub294\uac00?<\/h3>\n<p>\uc544\ub2c8\ub2e4. H3\uc758 \uacbd\ub85c \ucc98\ub9ac fast-path\ub098 Unhead \uc2a4\ud2b8\ub9ac\ubc0d \uad00\ub828 \ucee4\ubc0b\uc740 \uc131\ub2a5 \uc758\ub3c4\ub97c \ubcf4\uc5ec\ub3c4, \uac01 \uc571\uc758 \uc9c0\uc5f0\u00b7\ubc88\ub4e4 \ud06c\uae30\u00b7\ucc98\ub9ac\ub7c9 \uac1c\uc120 \uc218\uce58\ub97c \uc57d\uc18d\ud558\uc9c0 \uc54a\ub294\ub2e4. \uc2e4\uc81c \uc9c0\ud45c\ub294 \ub3d9\uc77c \ud2b8\ub798\ud53d\uacfc \ub3d9\uc77c \ubc30\ud3ec \ud658\uacbd\uc5d0\uc11c \uce21\uc815\ud574\uc57c \ud55c\ub2e4.<\/p>\n<h2>\ucd9c\ucc98\uc640 \uad00\ucc30 \ubc94\uc704<\/h2>\n<p>\uad00\ucc30 \ubc94\uc704\ub294 KST 2026\ub144 7\uc6d4 12\uc77c~15\uc77c\uc774\ub2e4. \uc6b0\uc120 \ucd9c\ucc98\ub294 <a href=\"https:\/\/github.com\/nuxt\/nuxt\/commits\/main\" target=\"_blank\" rel=\"noopener\">Nuxt \uacf5\uc2dd \ucee4\ubc0b<\/a>, <a href=\"https:\/\/github.com\/vitejs\/vite\/commits\/main\" target=\"_blank\" rel=\"noopener\">Vite \uacf5\uc2dd \ucee4\ubc0b<\/a>, <a href=\"https:\/\/github.com\/h3js\/h3\/commits\/main\" target=\"_blank\" rel=\"noopener\">H3 \uacf5\uc2dd \ucee4\ubc0b<\/a>, <a href=\"https:\/\/github.com\/nitrojs\/nitro\/commits\/main\" target=\"_blank\" rel=\"noopener\">Nitro \uacf5\uc2dd \ucee4\ubc0b<\/a>, <a href=\"https:\/\/github.com\/unjs\/unhead\/releases\" target=\"_blank\" rel=\"noopener\">Unhead \uacf5\uc2dd \ub9b4\ub9ac\uc988<\/a> \ubc0f npm \ub808\uc9c0\uc2a4\ud2b8\ub9ac\ub2e4. \ubcf8\ubb38\uc5d0\uc11c \uc548\uc815 \ub9b4\ub9ac\uc988\uc640 main \ube0c\ub79c\uce58 \uc791\uc5c5\uc744 \uad6c\ubd84\ud588\uc73c\uba70, \ud6c4\uc790\ub294 \ubc30\ud3ec \uad8c\uace0\uac00 \uc544\ub2c8\ub77c \uad00\ucc30\u00b7\uac80\uc99d \ub300\uc0c1\uc73c\ub85c \ud574\uc11d\ud588\ub2e4.<\/p>\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: 2026\ub144 7\uc6d4 12\uc77c~15\uc77c \uad00\ucc30 \ucc3d\uc758 Nuxt\/Vue\/Vite\/Nitro \ud750\ub984\uc740 \uc0c8 \uc548\uc815\ud310\uc744 \ud55c\uaebc\ubc88\uc5d0 \uc62c\ub9ac\ub77c\ub294 \uc2e0\ud638\uac00 \uc544\ub2c8\ub77c, SSR \uc2e0\ub8b0 \uacbd\uacc4(H3), \ub80c\ub354\ub9c1\u00b7\uba54\ud0c0\ub370\uc774\ud130 \uc2a4\ud2b8\ub9bc(Unhead), \ube4c\ub4dc\u00b7\ub77c\uc6b0\ud130 \ud1b5\ud569(Nuxt\/Vite\/Rspack), \uc11c\ubc84 \uc790\uc0b0 \ucc98\ub9ac(Nitro)\ub97c \ubd84\ub9ac\ud574 \uac80\uc99d\ud558\ub77c\ub294 \uc2e0\ud638\ub2e4. Nuxt \ud504\ub860\ud2b8\uc5d4\ub4dc \uac1c\ubc1c\uc790\ub294 \uc778\uc99d \ucfe0\ud0a4\u00b7\ud504\ub85d\uc2dc \ud5e4\ub354\u00b7\uc2a4\ud2b8\ub9ac\ubc0d SSR\u00b7typed router\u00b7\ubc30\ud3ec \uc0b0\ucd9c\ubb3c\uc758 \ud68c\uadc0 \uc2dc\ub098\ub9ac\uc624\ub97c \uc774\ubc88 \ubc30\ud3ec \uc8fc\uae30\uc5d0\uc11c \uba85\uc2dc\uc801\uc73c\ub85c \ud655\uc778\ud574\uc57c \ud55c\ub2e4. \ud575\uc2ec \ub2f5\ubcc0 \ud604\uc7ac \ud504\ub85c\ub355\uc158 Nuxt \uc571\uc744 \uc989\uc2dc \uc5c5\uadf8\ub808\uc774\ub4dc\ud560 \uadfc\uac70\uac00 \ub418\ub294 \uc0c8 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":248,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-249","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\/249","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=249"}],"version-history":[{"count":0,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/249\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media\/248"}],"wp:attachment":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media?parent=249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/categories?post=249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/tags?post=249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}