{"id":370,"date":"2026-07-26T12:16:35","date_gmt":"2026-07-26T12:16:35","guid":{"rendered":"https:\/\/gilnas.synology.me\/wordpress\/370\/"},"modified":"2026-07-26T12:16:35","modified_gmt":"2026-07-26T12:16:35","slug":"h3-rc%ec%9d%98-%ec%bf%a0%ed%82%a4%c2%b7%ed%94%84%eb%a1%9d%ec%8b%9c%c2%b7html-%ea%b2%bd%ea%b3%84-nuxt-%ec%9a%b4%ec%98%81-%ec%a0%90%ea%b2%80-h3-rc-cookie-and-proxy-checks","status":"publish","type":"post","link":"https:\/\/gilnas.synology.me\/wordpress\/370\/","title":{"rendered":"H3 RC\uc758 \ucfe0\ud0a4\u00b7\ud504\ub85d\uc2dc\u00b7HTML \uacbd\uacc4: Nuxt \uc6b4\uc601 \uc810\uac80 | H3 RC Cookie and Proxy Checks"},"content":{"rendered":"<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/gilnas.synology.me\/wordpress\/wp-content\/uploads\/2026\/07\/nuxt-2026-07-26.jpg\" alt=\"H3 RC\uc758 \ucfe0\ud0a4\u00b7\ud504\ub85d\uc2dc\u00b7HTML \uacbd\uacc4: Nuxt \uc6b4\uc601 \uc810\uac80 | H3 RC Cookie and Proxy Checks\" \/><\/figure>\n<p><strong>\ud575\uc2ec \ub2f5\ubcc0:<\/strong> 2026\ub144 7\uc6d4 22~24\uc77c Nuxt \uc778\uc811 \uc0dd\ud0dc\uacc4\uc758 \uc2e4\uc81c \ubcc0\ud654\ub294 \uc0c8 \uae30\ub2a5\uc744 \uc11c\ub458\ub7ec \uc4f0\ub294 \ubb38\uc81c\uac00 \uc544\ub2c8\ub77c <strong>\uc11c\ubc84 \uacbd\uacc4\u00b7\ucfe0\ud0a4\u00b7\ud504\ub85d\uc2dc\u00b7HTML \ucd9c\ub825\u00b7\ube4c\ub4dc \uccb4\uc778<\/strong>\uc744 \uc7ac\uac80\uc99d\ud558\ub294 \ubb38\uc81c\ub2e4. H3 2.0.1-rc.26\uc740 \uc138\uc158 \ucfe0\ud0a4 \uae30\ubcf8\uac12\uc744 <code>SameSite=Lax<\/code>\ub85c \ubc14\uafb8\uace0, HTML tagged template\uc758 \ubcf4\uac04\uac12 escaping, proxy\u00b7CORS\u00b7Basic auth\u00b7cookie \ucc98\ub9ac \ubcf4\uc644\uc744 \ud3ec\ud568\ud588\ub2e4. \ub3d9\uc2dc\uc5d0 Vite 8.2.0-beta.0, plugin-legacy 8.2.2, Vue 3.6.0-rc.2\uc640 Unhead 3.2.3\uc774 \ub098\uc654\ub2e4.<\/p>\n<p>Nuxt \uc6b4\uc601\uc790\uc5d0\uac8c \uac00\uc7a5 \uc6b0\uc120\uc778 \ud56d\ubaa9\uc740 H3 RC\ub2e4. Nuxt\/Nitro\uac00 \uc0ac\uc6a9\ud558\ub294 H3 \uacc4\uce35\uc744 \uc9c1\uc811 \uc62c\ub9ac\uac70\ub098 Nitro 3\u00b7\ud5a5\ud6c4 \ud504\ub808\uc784\uc6cc\ud06c \uc870\ud569\uc744 \uc2dc\ud5d8\ud558\ub294 \uc11c\ube44\uc2a4\ub77c\uba74, \ub85c\uadf8\uc778 \ud6c4 cross-site \uc774\ub3d9, reverse proxy\uc758 <code>X-Forwarded-Proto<\/code>, HTML \uc751\ub2f5, \uc2a4\ud2b8\ub9ac\ubc0d, \ud070 \ucfe0\ud0a4\uc640 API body \uc81c\ud55c\uc744 \ud568\uaed8 \uac80\uc0ac\ud574\uc57c \ud55c\ub2e4. \ubc18\uba74 Vite 8.2 beta\u00b7Vue 3.6 RC\ub294 \uc548\uc815 \ubc84\uc804 \uc804\uc81c\uc758 production \uc77c\uad04 \uc5c5\uadf8\ub808\uc774\ub4dc \ub300\uc0c1\uc774 \uc544\ub2c8\ub77c \ubcc4\ub3c4 canary\ub2e4.<\/p>\n<p><strong>\uc624\ub298\uc758 \uacb0\ub860:<\/strong> lockfile\uc5d0 \uc2e4\uc81c \uc804\uc774 \uc758\uc874\uc131\uc744 \uae30\ub85d\ud55c \ub4a4, H3\uc740 \uc778\uc99d\u00b7\ud504\ub85d\uc2dc smoke test\ubd80\ud130, Vite\/Vue\ub294 \ubcc4\ub3c4 \ube0c\ub79c\uce58\uc758 build\u00b7SSR\u00b7hydration \ud68c\uadc0\ubd80\ud130 \uc2dc\uc791\ud55c\ub2e4. \uc774\ubc88 \ub9b4\ub9ac\uc2a4\ub294 \uc131\ub2a5 \ud5a5\uc0c1\uc774\ub098 \ubcf4\uc548 \uc644\uacb0\uc744 \uc57d\uc18d\ud558\ub294 \uadfc\uac70\uac00 \uc544\ub2c8\ub77c, \ud604\uc7ac \uc11c\ube44\uc2a4\uc758 HTTP \uacc4\uc57d\uc744 \uba85\uc2dc\uc801\uc73c\ub85c \ud14c\uc2a4\ud2b8\ud560 \uc88b\uc740 \uacc4\uae30\ub2e4.<\/p>\n<h2>\ubb34\uc2a8 \uc77c\uc774 \uc788\uc5c8\ub098<\/h2>\n<p><strong>7\uc6d4 24\uc77c H3 \ud300<\/strong>\uc740 <a href=\"https:\/\/github.com\/h3js\/h3\/releases\/tag\/v2.0.1-rc.26\" target=\"_blank\" rel=\"noopener\">H3 v2.0.1-rc.26<\/a>\uc744 \uacf5\uac1c\ud588\ub2e4. \ub9b4\ub9ac\uc2a4 \ub178\ud2b8\uc5d0\ub294 session cookie\uc758 \uae30\ubcf8 <code>SameSite=Lax<\/code>, HTML tagged template\uc5d0\uc11c \ubcf4\uac04\uac12 escape, <code>resolveDotSegments<\/code>\uc758 <code>mergeSlashes<\/code> \uc635\uc158, validated handler\uc640 SSE API \uac1c\uc120\uc774 \ud3ec\ud568\ub41c\ub2e4. \ub610\ud55c cookie chunk \uc218 \uc0c1\ud55c, CORS\uc758 \ub2e8\uc77c \ud5e4\ub354 \ucc98\ub9ac\uc640 null origin+credentials \uacbd\uace0, Basic-auth UTF-8\/\ud0c0\uc774\ubc0d \ucc98\ub9ac, framing header\ub97c \ub36e\uc5b4\uc4f0\uc9c0 \uc54a\ub294 proxy, <code>x-forwarded-proto<\/code> \uc2e0\ub8b0\ub97c opt-in\uc73c\ub85c \ub9cc\ub4dc\ub294 \ubcc0\uacbd\uc744 \uba85\uc2dc\ud55c\ub2e4.<\/p>\n<p><strong>7\uc6d4 22~23\uc77c Vite \ud300<\/strong>\uc740 <a href=\"https:\/\/github.com\/vitejs\/vite\/releases\/tag\/v8.2.0-beta.0\" target=\"_blank\" rel=\"noopener\">Vite 8.2.0-beta.0<\/a>\uacfc <a href=\"https:\/\/github.com\/vitejs\/vite\/releases\/tag\/plugin-legacy%408.2.2\" target=\"_blank\" rel=\"noopener\">@vitejs\/plugin-legacy 8.2.2<\/a>\ub97c \ubc30\ud3ec\ud588\ub2e4. \ub450 \ub9b4\ub9ac\uc2a4\uc758 \uc0c1\uc138 \ubcc0\uacbd\uc740 tag\uc758 CHANGELOG\ub97c \uae30\uc900\uc73c\ub85c \ud655\uc778\ud574\uc57c \ud558\uba70, beta\uc640 plugin patch\ub77c\ub294 \uc131\uaca9\uc744 \uc548\uc815\ud310 \uc131\ub2a5 \ubcf4\uc7a5\uc73c\ub85c \uacfc\uc7a5\ud558\uba74 \uc548 \ub41c\ub2e4.<\/p>\n<p>\uac19\uc740 7\uc6d4 22\uc77c\uc5d0\ub294 <a href=\"https:\/\/github.com\/vuejs\/core\/releases\/tag\/v3.6.0-rc.2\" target=\"_blank\" rel=\"noopener\">Vue 3.6.0-rc.2<\/a>\uc640 <a href=\"https:\/\/github.com\/unjs\/unhead\/releases\/tag\/v3.2.3\" target=\"_blank\" rel=\"noopener\">Unhead 3.2.3<\/a>\uac00 \uacf5\uac1c\ub410\ub2e4. Vue\ub294 RC\uc774\uace0 Unhead 3.2.3\uc740 schema-org \uc870\uc9c1 identity\uc5d0\uc11c logo\ub97c \uc720\uc9c0\ud558\ub294 bug fix\ub97c \uae30\ub85d\ud55c\ub2e4. Nuxt \uc571\uc5d0\uc11c head\u00b7SEO \uba54\ud0c0\ub97c Unhead\ub85c \uad00\ub9ac\ud55c\ub2e4\uba74 \uc791\uc740 \uc218\uc815\uc774\uc5b4\ub3c4 \uad6c\uc870\ud654 \ub370\uc774\ud130 \uc2a4\ub0c5\uc0f7\uc744 \ud655\uc778\ud560 \uc774\uc720\uac00 \ub41c\ub2e4.<\/p>\n<p><strong>\ud655\uc778\ub41c \uc0ac\uc2e4:<\/strong> \uc704 \ubc84\uc804\u00b7\ub0a0\uc9dc\u00b7\ubcc0\uacbd \uc694\uc57d\uc740 \uac01 \ud504\ub85c\uc81d\ud2b8\uc758 \uacf5\uc2dd GitHub release\uc5d0\uc11c \ud655\uc778\ud588\ub2e4. <strong>\ud574\uc11d:<\/strong> Nuxt \uc571\uc758 \ucde8\uc57d \uc9c0\uc810\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8 \ucf54\ub4dc\ub9cc\uc774 \uc544\ub2c8\ub77c SSR \uc751\ub2f5\uc744 \ub9cc\ub4dc\ub294 HTTP \uc720\ud2f8\ub9ac\ud2f0\uc640 \ubc30\ud3ec \ud504\ub85d\uc2dc\uc758 \uc870\ud569\uc5d0 \uc788\ub2e4. <strong>\ubd88\ud655\uc2e4\uc131:<\/strong> H3 RC\uac00 \ud604\uc7ac \uc0ac\uc6a9 \uc911\uc778 Nuxt \uc548\uc815\ud310\uc5d0 \uc5b8\uc81c\u00b7\uc5b4\ub5a4 \ubc84\uc804\uc73c\ub85c \uc804\uc774\ub418\ub294\uc9c0\ub294 <code>pnpm why h3<\/code> \ub610\ub294 lockfile\ub85c \ud655\uc778\ud574\uc57c \ud558\uba70, RC\ub97c production\uc5d0 \ubc18\uc601\ud560 \ud544\uc694\ub294 \uc5c6\ub2e4.<\/p>\n<h2>\uc65c \uc911\uc694\ud55c\uac00<\/h2>\n<p>\uc138\uc158 cookie\uc758 <code>SameSite=Lax<\/code> \uae30\ubcf8\ud654\ub294 CSRF \ubc29\uc5b4\uc640 \uc778\uc99d UX\uc758 \uade0\ud615\uc744 \ubc14\uafb8\ub294 \ubcc0\uacbd\uc774\ub2e4. \uc77c\ubc18\uc801\uc778 top-level navigation\uc5d0\uc11c\ub294 \ucfe0\ud0a4\uac00 \ubcf4\ub0b4\uc9c8 \uc218 \uc788\uc9c0\ub9cc, iframe \uc548\uc758 \ub85c\uadf8\uc778, cross-site POST, \uc678\ubd80 \ub3c4\uba54\uc778\uc5d0\uc11c \uc2dc\uc791\ud55c \ud2b9\uc815 \uc778\uc99d \ucf5c\ubc31\uc740 \uae30\ub300\uc640 \ub2ec\ub77c\uc9c8 \uc218 \uc788\ub2e4. \u201cLax\uac00 \ub354 \uc548\uc804\ud558\ub2e4\u201d\ub294 \ub2e8\uc21c \ubb38\uc7a5\ub9cc\uc73c\ub85c \ucda9\ubd84\ud558\uc9c0 \uc54a\ub2e4. \uc11c\ube44\uc2a4\uc758 OAuth callback, \uacb0\uc81c \ub9ac\ub2e4\uc774\ub809\ud2b8, \uc11c\ube0c\ub3c4\uba54\uc778, embedded widget\uc744 \uc2e4\uc81c \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uac80\uc0ac\ud574\uc57c \ud55c\ub2e4.<\/p>\n<p>HTML \ubcf4\uac04 escaping\uacfc raw trust marker \ubcc0\uacbd\uc740 SSR\uc5d0\uc11c \uc0ac\uc6a9\uc790\u00b7CMS \ub370\uc774\ud130\uac00 HTML\ub85c \uc11e\uc77c \ub54c \ud2b9\ud788 \uc911\uc694\ud558\ub2e4. \uc774\ub97c H3 \ub9b4\ub9ac\uc2a4\ub294 \uac1c\uc120\uc73c\ub85c \uae30\ub85d\ud558\uc9c0\ub9cc, \uc774\ubbf8 <code>raw()<\/code> \ub610\ub294 \ubb38\uc790\uc5f4 \uc870\ud569\uc73c\ub85c \uc2e0\ub8b0 \uacbd\uacc4\ub97c \uc6b0\ud68c\ud55c \ucf54\ub4dc\uc758 \uc548\uc804\uc131\uc744 \uc790\ub3d9\uc73c\ub85c \ubcf4\uc7a5\ud558\uc9c0 \uc54a\ub294\ub2e4. WordPress headless API\uc5d0\uc11c \uc81c\ubaa9\u00b7excerpt\u00b7HTML\uc744 \uac00\uc838\uc624\ub294 Nuxt \uc11c\ube44\uc2a4\ub77c\uba74, \uc5b4\ub514\uc5d0\uc11c sanitize\ud558\uace0 \uc5b4\ub290 \uacc4\uce35\uc5d0\uc11c HTML\uc744 \uc758\ub3c4\uc801\uc73c\ub85c \ud5c8\uc6a9\ud558\ub294\uc9c0 \ucf54\ub4dc \ub9ac\ubdf0 \uae30\uc900\uc744 \uba85\ud655\ud788 \ud574\uc57c \ud55c\ub2e4.<\/p>\n<p><code>x-forwarded-proto<\/code> \uc2e0\ub8b0 opt-in\uc740 reverse proxy \ub4a4\uc5d0\uc11c URL\u00b7secure cookie\u00b7redirect\ub97c \uad6c\uc131\ud558\ub294 \ubc30\ud3ec\uc5d0 \uc9c1\uc811 \uad00\ub828\ub41c\ub2e4. \uc2e0\ub8b0\ud558\uc9c0 \uc54a\ub294 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uadf8 \ud5e4\ub354\ub97c \ub9cc\ub4e4 \uc218 \uc788\ub294 \ud658\uacbd\uc5d0\uc11c \ubb34\uc870\uac74 \ubbff\uc73c\uba74 HTTPS \ud310\ub2e8\uacfc redirect\uac00 \uc624\uc5fc\ub420 \uc218 \uc788\ub2e4. \ubc18\ub300\ub85c \uae30\uc874 \uad6c\uc131\uc774 \ud504\ub85d\uc2dc \ud5e4\ub354\uc5d0 \uc554\ubb35\uc801\uc73c\ub85c \uc758\uc874\ud588\ub2e4\uba74 staging\uc5d0\uc11c secure cookie\uc640 canonical URL\uc774 \uae68\uc9c8 \uc218 \uc788\ub2e4. \uc774\ub294 H3\uac00 \uc81c\uacf5\ud55c \ubcc0\uacbd\uacfc \ubcf4\uc548 caveat\uc5d0\uc11c \ub3c4\ucd9c\ud55c \uc6b4\uc601 \ubd84\uc11d\uc774\ub2e4.<\/p>\n<h3>1. H3 session\uc758 SameSite=Lax: \ub85c\uadf8\uc778 \ud50c\ub85c\uc6b0\ub97c \ucf54\ub4dc\uac00 \uc544\ub2cc \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c \uac80\uc99d\ud55c\ub2e4<\/h3>\n<p><strong>\ubcc0\uacbd \ub0b4\uc6a9:<\/strong> rc.26\uc740 session cookie \uae30\ubcf8\uac12\uc744 <code>SameSite=Lax<\/code>\ub85c \ub454\ub2e4. <strong>\uc2e4\uc81c \uc601\ud5a5:<\/strong> H3 session\uc744 \uc9c1\uc811 \uc4f0\ub294 Nitro endpoint \ub610\ub294 \ud5a5\ud6c4 \uc774 \uac12\uc744 \uc0c1\uc18d\ud560 \uc870\ud569\uc5d0\uc11c, \uae30\ubcf8 \ucfe0\ud0a4 \uc18d\uc131\uc5d0 \uae30\ub300\ub358 \ub85c\uadf8\uc778 \ud750\ub984\uc774 \ub2ec\ub77c\uc9c8 \uc218 \uc788\ub2e4. \ud2b9\ud788 \ubcc4\ub3c4 \uc778\uc99d \ub3c4\uba54\uc778, iframe, POST callback\uc744 \ub454 \uc11c\ube44\uc2a4\uac00 \uc6b0\uc120 \uc810\uac80 \ub300\uc0c1\uc774\ub2e4.<\/p>\n<p><strong>\uc801\uc6a9\/\ud68c\ud53c \uc870\uac74:<\/strong> \ud604\uc7ac lockfile\uc774 H3 1.x \ub610\ub294 \uc548\uc815 \ubc84\uc804\uc744 \uc0ac\uc6a9\ud558\uba74 RC\ub97c \ub9de\ucd94\uae30 \uc704\ud574 \uac15\uc81c override\ud558\uc9c0 \uc54a\ub294\ub2e4. \uc2e0\uaddc \uad6c\ud604\uc774\ub098 canary\uc5d0\uc11c\ub9cc \uae30\ubcf8\uac12\uc744 \ud655\uc778\ud558\uace0, cross-site cookie\uac00 \uae30\ub2a5\uc0c1 \uc815\ub9d0 \ud544\uc694\ud560 \ub54c\ub9cc <code>SameSite=None; Secure<\/code>\ub97c \uba85\uc2dc\ud558\uba70 CSRF token\u00b7Origin \uac80\uc99d\uc744 \ud568\uaed8 \ub454\ub2e4. \ub2e8\uc21c \ud3b8\uc758\ub97c \uc704\ud574 \ubaa8\ub4e0 session cookie\ub97c None\uc73c\ub85c \ub0ae\ucd94\ub294 \uac83\uc740 \ud68c\ud53c\ud55c\ub2e4.<\/p>\n<p><strong>\uac80\uc99d \ubc29\ubc95:<\/strong> Playwright\uc5d0 \uac19\uc740 \uc0ac\uc774\ud2b8 \ub85c\uadf8\uc778, \uc678\ubd80 IdP callback, \uc0c8 \ud0ed \ubcf5\uc6d0, \ub85c\uadf8\uc544\uc6c3, \ub9cc\ub8cc \ud6c4 \uc7ac\ub85c\uadf8\uc778 \uc2dc\ub098\ub9ac\uc624\ub97c \ub9cc\ub4e0\ub2e4. DevTools \ub610\ub294 \uc751\ub2f5 \ud5e4\ub354\uc5d0\uc11c <code>Set-Cookie<\/code>\uc758 SameSite\u00b7Secure\u00b7Domain\u00b7Path\ub97c \uc800\uc7a5\ud558\uace0, 401\/403 \ube44\uc728\uacfc session \uc7ac\ubc1c\uae09 \uc218\ub97c canary \uc804\ud6c4 \ube44\uad50\ud55c\ub2e4.<\/p>\n<h3>2. proxy\uc640 forwarded header: HTTPS \uc885\ub8cc \uc9c0\uc810\uc744 \uc2e0\ub8b0 \ubaa8\ub378\uc5d0 \ub123\ub294\ub2e4<\/h3>\n<p><strong>\ubcc0\uacbd \ub0b4\uc6a9:<\/strong> rc.26\uc740 <code>x-forwarded-proto<\/code> \uc2e0\ub8b0\ub97c opt-in\uc73c\ub85c \ubc14\uafb8\uace0, proxy\uc758 <code>forwardHeaders<\/code>\uac00 framing header\ub97c \ub36e\uc9c0 \uc54a\ub3c4\ub85d \uace0\ucce4\ub2e4. <strong>\uc2e4\uc81c \uc601\ud5a5:<\/strong> Cloudflare\u00b7Nginx\u00b7load balancer \ub4a4 Nuxt SSR\uc740 \uc678\ubd80 HTTPS\uc640 \ub0b4\ubd80 HTTP\uac00 \uacf5\uc874\ud55c\ub2e4. \ud504\ub85c\ud1a0\ucf5c \ud310\ub2e8\uc774 \ub2ec\ub77c\uc9c0\uba74 absolute redirect, canonical URL, secure cookie, OAuth callback URL\uc774 \uc601\ud5a5\uc744 \ubc1b\uc744 \uc218 \uc788\ub2e4.<\/p>\n<p><strong>\uc801\uc6a9\/\ud68c\ud53c \uc870\uac74:<\/strong> CDN \ub610\ub294 LB\uac00 \ud574\ub2f9 \ud5e4\ub354\ub97c \uc81c\uac70\ud558\uace0 \uc7ac\uc124\uc815\ud558\ub294 \uad6c\uc131\uc744 \ubb38\uc11c\ud654\ud55c \uacbd\uc6b0\uc5d0\ub9cc trust\ub97c \ucf20\ub2e4. \uc571 \ucee8\ud14c\uc774\ub108\uac00 \uc778\ud130\ub137\uc5d0 \uc9c1\uc811 \ub178\ucd9c\ub418\uac70\ub098 \uc784\uc758 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 forwarded header\ub97c \ubcf4\ub0bc \uc218 \uc788\ub2e4\uba74 \uc2e0\ub8b0\ud558\uc9c0 \uc54a\ub294\ub2e4. \ud5e4\ub354\ub97c \uc571 \ucf54\ub4dc\uc5d0\uc11c \uc784\uc758 \uc870\ud569\ud574 \uc678\ubd80 URL\uc744 \ub9cc\ub4dc\ub294 \ud328\ud134\ub3c4 \uc81c\uac70\ud55c\ub2e4.<\/p>\n<p><strong>\uac80\uc99d \ubc29\ubc95:<\/strong> staging\uc758 \uc2e4\uc81c ingress\ub97c \ud1b5\uacfc\ud574 HTTP \uc694\uccad, HTTPS \uc694\uccad, \uc704\uc870\ub41c <code>X-Forwarded-Proto: https<\/code> \uc694\uccad\uc744 \ubcf4\ub0b8\ub2e4. <code>curl -I<\/code>\uc640 \ube0c\ub77c\uc6b0\uc800\ub85c redirect Location, HSTS, Set-Cookie, Nuxt SEO canonical\uc744 \ub300\uc870\ud558\uace0, proxy access log\uc640 Nitro request log\uc758 scheme \ud310\ub2e8\uc774 \uc77c\uce58\ud558\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4.<\/p>\n<h3>3. HTML escaping\uacfc head schema: headless CMS \ucd9c\ub825 \uacbd\uacc4\ub97c \ub2e4\uc2dc \uc815\ud55c\ub2e4<\/h3>\n<p><strong>\ubcc0\uacbd \ub0b4\uc6a9:<\/strong> H3\ub294 HTML tagged template\uc758 interpolated value escape\ub97c \ucd94\uac00\ud588\uace0, Unhead 3.2.3\uc740 schema-org organization identity\uc5d0\uc11c logo\ub97c \ubcf4\uc874\ud55c\ub2e4. <strong>\uc2e4\uc81c \uc601\ud5a5:<\/strong> Nuxt\uac00 WordPress\u00b7CMS\uc758 \uc81c\ubaa9\uacfc \ubcf8\ubb38, \uc0ac\uc6a9\uc790 \ud504\ub85c\ud544, JSON-LD\ub97c \uc870\ud569\ud558\uba74 \ud14d\uc2a4\ud2b8\uc640 \uc2e0\ub8b0\ud55c HTML\uc758 \uacbd\uacc4\uac00 \uc5ec\ub7ec \uce35\uc5d0 \ubd84\uc0b0\ub420 \uc218 \uc788\ub2e4. \ucd9c\ub825\uc774 \ud55c \ubc88 escape\ub418\ub294\uc9c0, \uc774\uc911 escape\ub418\ub294\uc9c0, \uc758\ub3c4\uce58 \uc54a\uc740 raw HTML\uc774 \ub0a8\ub294\uc9c0\ub97c \ubaa8\ub450 \ubd10\uc57c \ud55c\ub2e4.<\/p>\n<p><strong>\uc801\uc6a9\/\ud68c\ud53c \uc870\uac74:<\/strong> \uc77c\ubc18 \ubb38\uc790\uc5f4\uc740 template\/composable\uc5d0 \uadf8\ub300\ub85c \ubcf4\uac04\ud558\uace0, \ud3b8\uc9d1\uc790 HTML\ucc98\ub7fc \ud544\uc694\ud55c \uacbd\uc6b0\uc5d0\ub9cc \uc11c\ubc84 \uce21 sanitizer\ub97c \ud1b5\uacfc\ud55c \uc81c\ud55c\ub41c \ud0dc\uadf8 \ubaa9\ub85d\uc744 \uc0ac\uc6a9\ud55c\ub2e4. <code>v-html<\/code>, H3 <code>raw()<\/code>, JSON-LD \uc9c1\uc811 \uc0bd\uc785\uc740 CODEOWNERS \ub610\ub294 \ubcf4\uc548 \ub9ac\ubdf0 \ub300\uc0c1\uc73c\ub85c \ub454\ub2e4. Unhead RC\/major \uacbd\ub85c\ub97c \uc62c\ub9b4 \ub54c\uc5d0\ub294 SEO\uac00 \uc88b\uc544\uc9c8 \uac83\uc774\ub77c\uace0 \uac00\uc815\ud558\uc9c0 \ub9d0\uace0 \ud604\uc7ac schema snapshot\uacfc \ube44\uad50\ud55c\ub2e4.<\/p>\n<p><strong>\uac80\uc99d \ubc29\ubc95:<\/strong> \uc545\uc131 \ud0dc\uadf8\u00b7\ub530\uc634\ud45c\u00b7Unicode\u00b7HTML entity\uac00 \ub4e0 fixture\ub97c \ub9cc\ub4e0\ub2e4. SSR HTML, hydration \ub4a4 DOM, View Source, JSON-LD\ub97c snapshot\ud558\uace0 Rich Results Test \uac19\uc740 \uc678\ubd80 \uac80\uc0ac\uc640 \ubcc4\uac1c\ub85c <code>pnpm test<\/code>\uc5d0\uc11c \ud5c8\uc6a9\ub41c script type\uacfc URL\ub9cc \ub0a8\ub294\uc9c0 \uac80\uc0ac\ud55c\ub2e4.<\/p>\n<h3>4. cookie\u00b7body\u00b7stream \uac1c\uc120\uc740 \ubd80\ud558 \ud14c\uc2a4\ud2b8\uc640 \uc624\ub958 \uacbd\ub85c\uae4c\uc9c0 \ud3ec\ud568\ud574\uc57c \ud55c\ub2e4<\/h3>\n<p><strong>\ubcc0\uacbd \ub0b4\uc6a9:<\/strong> H3\ub294 chunked cookie\uc758 quadratic parsing\/header rebuild \ud68c\ud53c, cookie chunk \uc218 \uc81c\ud55c, body-limit\uc758 stream enforcement, middleware precompose, event-stream close \ucc98\ub9ac \ub4f1\uc744 \uae30\ub85d\ud588\ub2e4. <strong>\uc2e4\uc81c \uc601\ud5a5:<\/strong> \uc774\ub294 \ubc18\ubcf5 \ud5e4\ub354\u00b7\ud070 \uc694\uccad\u00b7SSE \uc5f0\uacb0\uc5d0\uc11c \uc790\uc6d0 \uc0ac\uc6a9\uacfc \uc624\ub958 \ud615\uc2dd\uc744 \ubc14\uafc0 \uc218 \uc788\ub294 \uc601\uc5ed\uc774\ub2e4. \ub9b4\ub9ac\uc2a4 \ub178\ud2b8\uc758 \uc131\ub2a5 \ud56d\ubaa9\uc744 \uc11c\ube44\uc2a4\uc758 \uac1c\uc120 \uc218\uce58\ub85c \ud658\uc0b0\ud560 \uc218\ub294 \uc5c6\uc9c0\ub9cc, API gateway\uc640 Nitro endpoint\uac00 \uacbd\uacc4\uac12\uc5d0\uc11c \uc608\uce21 \uac00\ub2a5\ud558\uac8c \uc2e4\ud328\ud558\ub294\uc9c0 \ud655\uc778\ud560 \uadfc\uac70\ub294 \ub41c\ub2e4.<\/p>\n<p><strong>\uc801\uc6a9\/\ud68c\ud53c \uc870\uac74:<\/strong> \ub300\ud615 cookie, \uc5c5\ub85c\ub4dc, \uc2e4\uc2dc\uac04 \uc54c\ub9bc, API proxy\uac00 \uc5c6\ub2e4\uba74 \uc6b0\uc120\uc21c\uc704\ub294 \ub0ae\ub2e4. \ubc18\ub300\ub85c WordPress preview, webhook, \ucc44\ud305 stream\uc744 \uc6b4\uc601\ud55c\ub2e4\uba74 rc.26 canary\uc5d0\uc11c\ub9cc \uad00\ucc30\ud55c\ub2e4. body \uc81c\ud55c\uc744 \ud480\uc5b4 \uc624\ub958\ub97c \uc228\uae30\uac70\ub098 cookie chunk\ub97c \ub298\ub9ac\ub294 \ub300\uc751\uc740 \ud68c\ud53c\ud55c\ub2e4.<\/p>\n<p><strong>\uac80\uc99d \ubc29\ubc95:<\/strong> 413\/400\/401 fixture, \ubd84\ud560 cookie, \ud074\ub77c\uc774\uc5b8\ud2b8 disconnect, \uae34 SSE \uc5f0\uacb0\uc744 k6 \ub610\ub294 Playwright API test\ub85c \uc7ac\ud604\ud55c\ub2e4. p95 latency, Node heap, open socket, 4xx\/5xx \ube44\uc728, upstream reset\uc744 \ub9b4\ub9ac\uc2a4 \uc804\ud6c4\uc640 \ube44\uad50\ud558\uace0 \uc624\ub958 \uc751\ub2f5\uc5d0 \ub0b4\ubd80 \ud5e4\ub354\ub098 stack\uc774 \ub178\ucd9c\ub418\uc9c0 \uc54a\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4.<\/p>\n<h3>5. Vite beta\u00b7Vue RC\u00b7plugin-legacy patch\ub294 \ud558\ub098\uc758 PR\uc5d0 \ubb36\uc9c0 \uc54a\ub294\ub2e4<\/h3>\n<p><strong>\ubcc0\uacbd \ub0b4\uc6a9:<\/strong> Vite 8.2.0-beta.0\uacfc Vue 3.6.0-rc.2\ub294 pre-release\uc774\uace0 plugin-legacy 8.2.2\ub294 patch \ub9b4\ub9ac\uc2a4\ub2e4. <strong>\uc2e4\uc81c \uc601\ud5a5:<\/strong> Nuxt\uc758 \ube4c\ub4dc \ubb38\uc81c\ub294 Vite \ubcc0\ud658, Vue runtime, module, Nitro SSR\uc774 \uacb9\uccd0 \uc6d0\uc778\uc744 \ucc3e\uae30 \uc5b4\ub835\ub2e4. \uc138 \ud328\ud0a4\uc9c0\ub97c \ud568\uaed8 \uc62c\ub9ac\uba74 hydration mismatch\ub098 legacy browser \ud68c\uadc0\uac00 \ub0ac\uc744 \ub54c \uadc0\uc18d\uc774 \ubd88\uac00\ub2a5\ud574\uc9c4\ub2e4.<\/p>\n<p><strong>\uc801\uc6a9\/\ud68c\ud53c \uc870\uac74:<\/strong> production\uc740 Nuxt\uac00 \uc9c0\uc6d0\u00b7\uac80\uc99d\ud55c \uc548\uc815 \ud638\ud658 \ubc94\uc704\ub97c \uc6b0\uc120\ud55c\ub2e4. 3.6 \uae30\ub2a5\uc744 \uc2dc\ud5d8\ud558\ub824\uba74 \ub3c5\ub9bd branch\uc640 preview deployment\ub97c \uc0ac\uc6a9\ud558\uace0, \uad6c\ud615 \ube0c\ub77c\uc6b0\uc800 \uc9c0\uc6d0\uc774 \uc788\uc73c\uba74 plugin-legacy output\uacfc polyfill\uc744 \uc2e4\uc81c \ud0c0\uae43\uc5d0\uc11c \uac80\uc0ac\ud55c\ub2e4.<\/p>\n<p><strong>\uac80\uc99d \ubc29\ubc95:<\/strong> \uac01\uac01 \ubd84\ub9ac\ud55c PR\uc5d0\uc11c <code>pnpm install --frozen-lockfile<\/code>, <code>nuxi build<\/code>, SSR \ud398\uc774\uc9c0 refresh, dynamic import, form submit, route navigation\uc744 \uc2e4\ud589\ud55c\ub2e4. build \uc2dc\uac04\uacfc \uc0b0\ucd9c\ubb3c \ud06c\uae30, hydration warning, client error, legacy browser console error\ub97c baseline\uacfc \ube44\uad50\ud55c\ub2e4.<\/p>\n<h2>\uac1c\ubc1c\uc790 \uc2e4\ud589 \uacc4\ud68d<\/h2>\n<ul>\n<li><strong>P0:<\/strong> <code>pnpm why h3 vite vue @unhead\/schema<\/code>\uc640 lockfile\ub85c \uc2e4\uc81c \uc804\uc774 \ubc84\uc804\uc744 \uae30\ub85d\ud558\uace0 RC\/beta \uac15\uc81c override\uac00 \uc5c6\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4.<\/li>\n<li><strong>P0:<\/strong> ingress \uc124\uc815\uc5d0\uc11c forwarded header\ub97c \ub204\uac00 \uc124\uc815\u00b7\uc81c\uac70\ud558\ub294\uc9c0 \ubb38\uc11c\ud654\ud558\uace0, \uc571\uc758 trust \uc124\uc815\uacfc \uc77c\uce58\uc2dc\ud0a8\ub2e4.<\/li>\n<li><strong>P0:<\/strong> Playwright\uc5d0 \ub85c\uadf8\uc778\u00b7OAuth callback\u00b7\ub85c\uadf8\uc544\uc6c3\u00b7session \ub9cc\ub8cc\uc640 <code>Set-Cookie<\/code> assertion\uc744 \ucd94\uac00\ud55c\ub2e4.<\/li>\n<li><strong>P1:<\/strong> <code>server\/api<\/code>\uc640 proxy route\ub97c \ub300\uc0c1\uc73c\ub85c Origin, OPTIONS, null Origin, \ud070 body, \uc704\uc870 forwarded header\uc758 \uc751\ub2f5\uc744 \ud14c\uc2a4\ud2b8\ud55c\ub2e4.<\/li>\n<li><strong>P1:<\/strong> <code>v-html<\/code>, <code>raw(<\/code>, JSON-LD \uc9c1\uc811 \uc0bd\uc785\uc744 \uac80\uc0c9\ud574 sanitizer\u00b7\uc18c\uc720\uc790\u00b7\ud14c\uc2a4\ud2b8\ub97c \uba85\uc2dc\ud55c\ub2e4.<\/li>\n<li><strong>P1:<\/strong> H3 rc.26\uc740 \ubcc4\ub3c4 preview\uc5d0\uc11c\ub9cc canary\ud558\uace0 401\/403, redirect, API 4xx\/5xx, p95, heap\uc744 \uad00\ucc30\ud55c\ub2e4.<\/li>\n<li><strong>P2:<\/strong> Vite beta, Vue RC, plugin-legacy\ub97c \uac01\uac01 \ub3c5\ub9bd PR\ub85c \uc2dc\ud5d8\ud558\uace0 build artifact \ubc0f SSR\/hydration snapshot\uc744 \ubcf4\uad00\ud55c\ub2e4.<\/li>\n<\/ul>\n<h2>\ub9ac\uc2a4\ud06c\uc640 \ud55c\uacc4<\/h2>\n<p>H3 2.0.1-rc.26\uc740 \uc774\ub984 \uadf8\ub300\ub85c RC\ub2e4. Nuxt\uc758 \ud604\uc7ac \uc548\uc815 \ubc84\uc804\uc774 \uc774\ub97c \ucc44\ud0dd\ud588\ub2e4\uace0 \ub2e8\uc815\ud560 \uc218 \uc5c6\uc73c\uba70, H3\ub97c \uc9c1\uc811 override\ud558\uba74 Nitro\u00b7Nuxt module\uacfc \ud638\ud658\uc131 \ubb38\uc81c\uac00 \uc0dd\uae38 \uc218 \uc788\ub2e4. \uc138\uc158\u00b7proxy\u00b7CORS \uc218\uc815\uc740 \ubcf4\uc548\uc0c1 \ubc14\ub78c\uc9c1\ud55c \ubc29\ud5a5\uc77c \uc218 \uc788\uc5b4\ub3c4, \ud604\uc7ac \uc11c\ube44\uc2a4\uc758 \uc778\uc99d \uacc4\uc57d\uacfc \ubc30\ud3ec topology\uc5d0 \ub300\ud55c \uc790\ub3d9 \ud328\uce58\ub294 \uc544\ub2c8\ub2e4.<\/p>\n<p>Vite 8.2.0-beta.0\uacfc Vue 3.6.0-rc.2\ub294 \uc548\uc815 \ub9b4\ub9ac\uc2a4\uac00 \uc544\ub2c8\ub2e4. build \uc2e4\ud328, hydration mismatch, plugin \ud638\ud658\uc131, \uad6c\ud615 \ube0c\ub77c\uc6b0\uc800 \ubb38\uc81c, \uc608\uc0c1\uce58 \ubabb\ud55c bundle diff\uac00 \ub864\ubc31 \uc870\uac74\uc774\ub2e4. \ubc30\ud3ec \uc804\uc5d0\ub294 lockfile\uc744 \ub418\ub3cc\ub9b4 \uc218 \uc788\ub294 PR, preview \ud658\uacbd, \uc804\ud6c4 synthetic test\uc640 \uad00\ucc30 \uc9c0\ud45c\ub97c \uc900\ube44\ud55c\ub2e4. Unhead 3.2.3\uc758 logo \uc218\uc815\ub3c4 \uae30\uc874 \uc0ac\uc774\ud2b8\uc758 JSON-LD\uac00 \uc815\ud655\ud574\uc9c4\ub2e4\ub294 \ubcf4\uc99d\uc740 \uc544\ub2c8\ubbc0\ub85c \uc2e4\uc81c rendered head\ub97c \uac80\uc0ac\ud55c\ub2e4.<\/p>\n<h2>FAQ<\/h2>\n<h3>Nuxt \uc571\uc5d0\uc11c H3 rc.26\uc744 \uc9c0\uae08 \uc62c\ub824\uc57c \ud558\ub098?<\/h3>\n<p>\uc544\ub2c8\ub2e4. \uba3c\uc800 \ud604\uc7ac Nuxt\/Nitro\uac00 \uc5b4\ub5a4 H3 \ubc84\uc804\uc744 \uc4f0\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4. \uc9c1\uc811 H3 2 RC API\ub97c \uc4f0\uac70\ub098 \uc5c5\uadf8\ub808\uc774\ub4dc \uc900\ube44\uac00 \ud544\uc694\ud560 \ub54c\ub9cc preview\uc5d0\uc11c cookie\u00b7proxy\u00b7SSR \ud14c\uc2a4\ud2b8\ub97c \uc218\ud589\ud558\uace0, \uc548\uc815 \ud638\ud658 \ubc94\uc704 \ubc16 override\ub294 production\uc5d0 \ubc14\ub85c \ubc18\uc601\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n<h3>SameSite=Lax\uac00 \ub418\uba74 OAuth \ub85c\uadf8\uc778\uc774 \ubc18\ub4dc\uc2dc \uae68\uc9c0\ub098?<\/h3>\n<p>\ubc18\ub4dc\uc2dc \uadf8\ub807\uc9c0\ub294 \uc54a\ub2e4. \ud750\ub984\uc774 top-level navigation\uc778\uc9c0, cross-site POST\u00b7iframe\uc778\uc9c0, Secure\u00b7Domain \uc18d\uc131\uc774 \ubb34\uc5c7\uc778\uc9c0\uc5d0 \ub530\ub77c \ub2e4\ub974\ub2e4. \ub530\ub77c\uc11c \ube0c\ub77c\uc6b0\uc800 \uae30\ubc18 callback \ud14c\uc2a4\ud2b8\uc640 \uc2e4\uc81c Set-Cookie \ud655\uc778\uc774 \ud544\uc694\ud558\ub2e4.<\/p>\n<h3>X-Forwarded-Proto\ub97c \uc2e0\ub8b0\ud558\ub3c4\ub85d \uc124\uc815\ud558\uba74 \uc5b4\ub5a4 \uc704\ud5d8\uc774 \uc788\ub098?<\/h3>\n<p>\uc2e0\ub8b0\ub418\uc9c0 \uc54a\uc740 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \ud5e4\ub354\ub97c \ub123\uc744 \uc218 \uc788\uc73c\uba74 \uc571\uc774 HTTPS \uc5ec\ubd80\u00b7redirect\u00b7secure cookie\ub97c \uc798\ubabb \ud310\ub2e8\ud560 \uc218 \uc788\ub2e4. \uc2e0\ub8b0\ud560 \uc218 \uc788\ub294 proxy\uac00 \ud5e4\ub354\ub97c \uc7ac\uc124\uc815\ud558\uace0 \uc571 \ub124\ud2b8\uc6cc\ud06c\uac00 \uadf8 proxy\ub85c \uc81c\ud55c\ub420 \ub54c\ub9cc opt-in \ud55c\ub2e4.<\/p>\n<h3>Vite beta\uc640 Vue RC\ub97c \uac19\uc774 \ud14c\uc2a4\ud2b8\ud574\ub3c4 \ub418\ub098?<\/h3>\n<p>\uae30\uc220\uc801\uc73c\ub85c \uac00\ub2a5\ud558\uc9c0\ub9cc \ud68c\uadc0 \uc6d0\uc778 \ubd84\ub9ac\uac00 \uc5b4\ub835\ub2e4. Nuxt \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c\ub294 \uac01\uac01 \ub3c5\ub9bd PR\uacfc \ub3d9\uc77c\ud55c SSR\u00b7hydration\u00b7build \uc2dc\ud5d8\uc744 \ub450\uc5b4 \uc5b4\ub5a4 \ubcc0\uacbd\uc774 \uacb0\uacfc\ub97c \ub9cc\ub4e4\uc5c8\ub294\uc9c0 \ud310\ub2e8\ud560 \uc218 \uc788\uac8c \ud55c\ub2e4.<\/p>\n<h2>\ucd9c\ucc98 \ubc0f \ucd94\uac00 \uc77d\uae30<\/h2>\n<ul>\n<li><a href=\"https:\/\/github.com\/h3js\/h3\/releases\/tag\/v2.0.1-rc.26\" target=\"_blank\" rel=\"noopener\">H3 \u2014 v2.0.1-rc.26 release notes<\/a> (2026-07-24)<\/li>\n<li><a href=\"https:\/\/github.com\/vitejs\/vite\/releases\/tag\/v8.2.0-beta.0\" target=\"_blank\" rel=\"noopener\">Vite \u2014 v8.2.0-beta.0 release<\/a> (2026-07-22)<\/li>\n<li><a href=\"https:\/\/github.com\/vitejs\/vite\/releases\/tag\/plugin-legacy%408.2.2\" target=\"_blank\" rel=\"noopener\">Vite \u2014 @vitejs\/plugin-legacy 8.2.2 release<\/a> (2026-07-23)<\/li>\n<li><a href=\"https:\/\/github.com\/vuejs\/core\/releases\/tag\/v3.6.0-rc.2\" target=\"_blank\" rel=\"noopener\">Vue \u2014 v3.6.0-rc.2 release<\/a> (2026-07-22)<\/li>\n<li><a href=\"https:\/\/github.com\/unjs\/unhead\/releases\/tag\/v3.2.3\" target=\"_blank\" rel=\"noopener\">Unhead \u2014 v3.2.3 release<\/a> (2026-07-22)<\/li>\n<li><a href=\"https:\/\/h3.dev\/guide\/\" target=\"_blank\" rel=\"noopener\">H3 \uacf5\uc2dd \uac00\uc774\ub4dc<\/a><\/li>\n<\/ul>\n<p><em>\ud3b8\uc9d1 \uc6d0\uce59: \ubc84\uc804\u00b7\ub0a0\uc9dc\u00b7\ubcc0\uacbd \ud56d\ubaa9\uc740 \uacf5\uc2dd \ub9b4\ub9ac\uc2a4 \ub178\ud2b8\ub97c \uae30\uc900\uc73c\ub85c \ud588\uc73c\uba70, \ubcf4\uc548\u00b7\ubc30\ud3ec\u00b7\ud14c\uc2a4\ud2b8 \uad8c\uace0\ub294 Nuxt \ud504\ub860\ud2b8\uc5d4\ub4dc \uc6b4\uc601\uc744 \uc704\ud55c \ud574\uc11d\uc774\ub2e4. \uc801\uc6a9 \uc804\uc5d0\ub294 \uc0ac\uc6a9 \uc911\uc778 Nuxt\/Nitro\uc758 lockfile\uacfc \uacf5\uc2dd \ud638\ud658 \ubb38\uc11c\ub97c \uc7ac\ud655\uc778\ud574\uc57c \ud55c\ub2e4.<\/em><\/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>H3 2.0.1-rc.26\uc758 SameSite\u00b7\ud504\ub85d\uc2dc\u00b7HTML \ubcc0\uacbd\uacfc Vite\/Vue pre-release\ub97c Nuxt \ubc30\ud3ec\u00b7SSR \uac80\uc99d \uad00\uc810\uc5d0\uc11c \uc815\ub9ac\ud55c \uac00\uc774\ub4dc.<\/p>\n","protected":false},"author":1,"featured_media":369,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-370","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\/370","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=370"}],"version-history":[{"count":0,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/370\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media\/369"}],"wp:attachment":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media?parent=370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/categories?post=370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/tags?post=370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}