{"id":624,"date":"2026-10-16T13:14:01","date_gmt":"2026-10-16T13:14:01","guid":{"rendered":"https:\/\/gilnas.synology.me\/wordpress\/624\/"},"modified":"2026-10-16T13:14:01","modified_gmt":"2026-10-16T13:14:01","slug":"nuxt-3-21-10%c2%b74-5-1-%eb%b3%b4%ec%95%88-%ed%8c%a8%ec%b9%98-ssr-payload%c2%b7server-island%c2%b7routerules-%ec%a0%90%ea%b2%80-nuxt-security-patch-checks","status":"publish","type":"post","link":"https:\/\/gilnas.synology.me\/wordpress\/624\/","title":{"rendered":"Nuxt 3.21.10\u00b74.5.1 \ubcf4\uc548 \ud328\uce58: SSR Payload\u00b7Server Island\u00b7RouteRules \uc810\uac80 | Nuxt Security Patch Checks"},"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-16-nuxt.png\" alt=\"Nuxt 3.21.10\u00b74.5.1 \ubcf4\uc548 \ud328\uce58: SSR Payload\u00b7Server Island\u00b7RouteRules \uc810\uac80 | Nuxt Security Patch Checks\" \/><\/figure>\n<p><strong>\ud575\uc2ec \uacb0\ub860:<\/strong> Nuxt 3.21.10 \ub610\ub294 4.5.1\ubcf4\ub2e4 \ub0ae\uc740 \ubc84\uc804\uc744 \uc6b4\uc601 \uc911\uc774\uace0 \uc11c\ubc84 \ucef4\ud3ec\ub10c\ud2b8, <code>routeRules<\/code>, SSR \uce90\uc2dc, DevTools\ub97c \uc4f4\ub2e4\uba74 \uc774\ubc88 \uc5c5\ub370\uc774\ud2b8\ub294 \ub2e4\uc74c \uae30\ub2a5 \ub9b4\ub9ac\uc988\uae4c\uc9c0 \ubbf8\ub8f0 \uc77c\uc774 \uc544\ub2d9\ub2c8\ub2e4. Nuxt \ud300\uc740 2026\ub144 7\uc6d4 27\uc77c \ubcf4\uc548 \ud328\uce58\uc640 \ud568\uaed8 3.21.10\u00b74.5.1\ub85c\uc758 \uc5c5\uadf8\ub808\uc774\ub4dc\ub97c \uad8c\uace0\ud588\uace0, \uc774\ud6c4 4.5.2\ub294 \ube4c\ub4dc \uad00\ub828 \ud6c4\uc18d \uc218\uc815\ub3c4 \ub0c8\uc2b5\ub2c8\ub2e4. \uba3c\uc800 lockfile\uc758 \uc2e4\uc81c \ubc84\uc804\uacfc \uc11c\ubc84 \uc544\uc77c\ub79c\ub4dc\u00b7\uce90\uc2dc \uacbd\ub85c\ub97c \ud655\uc778\ud558\uace0, \ubcc4\ub3c4 PR\uc5d0\uc11c \uc5c5\uadf8\ub808\uc774\ub4dc\uc640 \ud68c\uadc0 \ud14c\uc2a4\ud2b8\ub97c \ub9c8\uce58\ub294 \uac83\uc774 \uc548\uc804\ud569\ub2c8\ub2e4.<\/p>\n<p>Nuxt \ubcf4\uc548 \uc774\uc288\ub294 \ud754\ud788 \u201c\uc11c\ubc84\ub97c \uc4f0\ub294 \uc571\ub9cc \ud574\ub2f9\ud55c\ub2e4\u201d\ub85c \ubb49\ub6b1\uadf8\ub824\uc9d1\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uc774\ubc88 \ubb36\uc74c\uc740 SSR\uc5d0\uc11c\ub9cc \ub05d\ub098\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c \uc11c\ubc84\uc758 DevTools, \uc778\uc99d\uc744 \uac00\ub974\ub294 <code>routeRules<\/code>, \ud398\uc774\uc9c0 \ub370\uc774\ud130\ub97c \ub5bc\uc5b4 \ub0b4\ub294 <code>\/_payload.json<\/code>, \uadf8\ub9ac\uace0 \uc11c\ubc84 \uc544\uc77c\ub79c\ub4dc\uc758 props\uac00 \ub9cc\ub098\ub294 \uc9c0\uc810\uc774 \ud575\uc2ec\uc785\ub2c8\ub2e4. HTML \ud654\uba74\uc740 \uc815\uc0c1\uc778\ub370 \ub2e4\ub978 \uc0ac\uc6a9\uc790\uc758 \ub370\uc774\ud130\ub098 \uc778\uc99d \uacbd\ub85c\uac00 \uc0c8\uc5b4 \ub098\uac08 \uc218 \uc788\ub2e4\ub294 \uc810\uc5d0\uc11c, UI \uc2a4\ubaa8\ud06c \ud14c\uc2a4\ud2b8\ub9cc\uc73c\ub85c\ub294 \ubd80\uc871\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc774\ubbf8 \ud328\uce58 \ubc84\uc804\uc744 \uc62c\ub838\ub354\ub77c\ub3c4 \uc810\uac80\uc740 \ub0a8\uc2b5\ub2c8\ub2e4. \ud328\uce58\ub294 \ud504\ub808\uc784\uc6cc\ud06c\uc758 \uc54c\ub824\uc9c4 \uacbd\ub85c\ub97c \ub2eb\uc9c0\ub9cc, \uc571\uc774 \uc678\ubd80 \uc785\ub825\uc744 <code>&lt;component :is&gt;<\/code>\ub098 <code>resolveDynamicComponent()<\/code>\uc5d0 \uc804\ub2ec\ud558\ub294 \uc124\uacc4, \uc0ac\uc6a9\uc790\ubcc4 \ud398\uc774\uc9c0\uc5d0 \uce90\uc2dc\ub97c \uac74 \uc124\uc815, \ub300\uc18c\ubb38\uc790\uac00 \uc11e\uc778 \ubcf4\ud638 \uacbd\ub85c\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucc28\uc6d0\uc758 \ub9ac\ubdf0 \ub300\uc0c1\uc785\ub2c8\ub2e4. \uc544\ub798 \uc21c\uc11c\ub300\ub85c \uc0b4\ud53c\uba74 \ub300\uaddc\ubaa8 \ub9ac\ud329\ud130\ub9c1 \uc5c6\uc774\ub3c4 \uc704\ud5d8\ub3c4\ub97c \uc904\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\ubb34\uc2a8 \uc77c\uc774 \uc788\uc5c8\ub098<\/h2>\n<p>Nuxt \ud300\uc740 <strong>2026\ub144 7\uc6d4 27\uc77c<\/strong> \uacf5\uc2dd <a href=\"https:\/\/nuxt.com\/blog\/v4-5-security\" target=\"_blank\" rel=\"noopener\">Nuxt Security Patch Releases<\/a>\uc5d0\uc11c <strong>Nuxt 4.5.1\uacfc 3.21.10<\/strong>, \uadf8\ub9ac\uace0 \uac1c\ubc1c \uc804\uc6a9\uc774\uc9c0\ub9cc \uce58\uba85\uc801\uc778 \ubb38\uc81c\ub97c \uace0\uce5c <strong>@nuxt\/devtools 3.3.1<\/strong>\uc744 \uacf5\uac1c\ud558\uace0 \ube60\ub978 \uc5c5\uadf8\ub808\uc774\ub4dc\ub97c \uad8c\ud588\uc2b5\ub2c8\ub2e4. \uacf5\uc2dd \uc548\ub0b4\uc758 \uba85\ub839\uc740 <code>npx nuxt upgrade --dedupe<\/code>\uc774\uba70, lockfile\ub3c4 \ud568\uaed8 \uac31\uc2e0\ud574\uc57c DevTools \ud328\uce58\uac00 \ub4e4\uc5b4\uc635\ub2c8\ub2e4.<\/p>\n<p>\ub3d9\uc77c \ubc1c\ud45c\uc640 GitHub \ubcf4\uc548 \uad8c\uace0\ub294 \uc11c\ubc84 \uc544\uc77c\ub79c\ub4dc props\uc758 \ub7f0\ud0c0\uc784 \ud15c\ud50c\ub9bf \uc8fc\uc785(<a href=\"https:\/\/github.com\/nuxt\/nuxt\/security\/advisories\/GHSA-9473-5f9j-94wq\" target=\"_blank\" rel=\"noopener\">GHSA-9473-5f9j-94wq<\/a>), \uc784\uc758 \ucef4\ud3ec\ub10c\ud2b8 \uc0dd\uc131(<a href=\"https:\/\/github.com\/nuxt\/nuxt\/security\/advisories\/GHSA-48hr-524c-v5w3\" target=\"_blank\" rel=\"noopener\">GHSA-48hr-524c-v5w3<\/a>), \ub300\uc18c\ubb38\uc790 \ud63c\ud569 \uacbd\ub85c\uc5d0\uc11c\uc758 route rule \uc778\uc99d \uc6b0\ud68c(<a href=\"https:\/\/github.com\/nuxt\/nuxt\/security\/advisories\/GHSA-hxvh-4h3w-prp9\" target=\"_blank\" rel=\"noopener\">GHSA-hxvh-4h3w-prp9<\/a>), SSR payload \uce90\uc2dc \ub178\ucd9c(<a href=\"https:\/\/github.com\/nuxt\/nuxt\/security\/advisories\/GHSA-wm8w-6qjm-cv43\" target=\"_blank\" rel=\"noopener\">GHSA-wm8w-6qjm-cv43<\/a>)\uc744 \uc124\uba85\ud569\ub2c8\ub2e4. Nuxt 4.5.2\uc758 <a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.5.2\" target=\"_blank\" rel=\"noopener\">\uacf5\uc2dd \ub9b4\ub9ac\uc2a4 \ub178\ud2b8<\/a>\ub294 \ucd5c\uc885 \ube4c\ub4dc \ucd9c\ub825 \ub4a4 \uce90\uc2dc\ub97c \uc218\uc9d1\ud558\ub294 \uc218\uc815 \ub4f1 \ud6c4\uc18d \uc548\uc815\ud654 \ud56d\ubaa9\uc744 \uae30\ub85d\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc601\ud5a5 \ubc94\uc704\ub294 \uac19\uc740 \uc218\uc900\uc774 \uc544\ub2d9\ub2c8\ub2e4. \uc608\ub97c \ub4e4\uc5b4 payload \uce90\uc2dc \ub178\ucd9c\uc740 Nuxt 4.4.0~4.5.0\uc5d0\uc11c \uc778\uc99d\ub41c \uc0ac\uc6a9\uc790 \ud398\uc774\uc9c0\uc5d0 <code>routeRules<\/code>\uc758 <code>cache<\/code>\u00b7<code>swr<\/code>\u00b7<code>isr<\/code>\ub97c \uc801\uc6a9\ud55c \uacbd\uc6b0\uac00 \ub300\uc0c1\uc774\uba70, 3.x\ub294 \uadf8 \ud2b9\uc815 \ucde8\uc57d\uc810\uc758 \uc601\ud5a5\uad8c\uc774 \uc544\ub2d9\ub2c8\ub2e4. \ubc18\uba74 \uc11c\ubc84 \uc544\uc77c\ub79c\ub4dc \uad00\ub828 \uc774\uc288\ub294 \uc0ac\uc6a9 \uc5ec\ubd80\uc640 props \ud750\ub984\uc5d0 \ub530\ub77c \ud310\ub2e8\ud574\uc57c \ud569\ub2c8\ub2e4. \uc815\ud655\ud55c \ubc84\uc804\uacfc \uc804\uc81c\uc870\uac74\uc744 \uba3c\uc800 \ubcf4\ub294 \uc774\uc720\uc785\ub2c8\ub2e4.<\/p>\n<h2>\uc65c \uc911\uc694\ud55c\uac00<\/h2>\n<p>Nuxt\ub294 <code>nuxt.config.ts<\/code> \ud55c \ud30c\uc77c\uc5d0\uc11c SSR, \ub77c\uc6b0\ud305, \uce90\uc2dc, \ubbf8\ub4e4\uc6e8\uc5b4, \ube4c\ub4dc\ub97c \ud568\uaed8 \uc81c\uc5b4\ud560 \uc218 \uc788\uc5b4 \ud3b8\ud569\ub2c8\ub2e4. \ub3d9\uc2dc\uc5d0 \ud55c \uc904\uc758 <code>routeRules<\/code>\uac00 CDN \uce90\uc2dc\uc640 \uc778\uc99d \uacbd\ub85c\uc5d0 \uc601\ud5a5\uc744 \uc904 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc774\ubc88 \uc774\uc288\ub4e4\uc740 \u2018\ud504\ub808\uc784\uc6cc\ud06c \uc5c5\ub370\uc774\ud2b8\u2019\ub77c\uae30\ubcf4\ub2e4, \ud074\ub77c\uc774\uc5b8\ud2b8 \ub77c\uc6b0\ud130\uc758 \uacbd\ub85c \ud574\uc11d\uacfc Nitro \uc11c\ubc84\uc758 \uc751\ub2f5\u00b7\uce90\uc2dc\uac00 \uc11c\ub85c \ub2e4\ub978 \uac00\uc815\uc744 \ud560 \ub54c \uc0dd\uae30\ub294 \ubb38\uc81c\ub85c \ubcf4\ub294 \uac83\uc774 \uc815\ud655\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc6b4\uc601 \uad00\uc810\uc5d0\uc11c \uac00\uc7a5 \uc911\uc694\ud55c \ud310\ub2e8\uc740 \ub450 \uac00\uc9c0\uc785\ub2c8\ub2e4. \uccab\uc9f8, \uc778\uc99d\u00b7\ud14c\ub10c\ud2b8\u00b7\uacb0\uc81c\ucc98\ub7fc \uc0ac\uc6a9\uc790\ub9c8\ub2e4 \ub2e4\ub978 SSR \ub370\uc774\ud130\ub97c \uce90\uc2dc \ub300\uc0c1\uc73c\ub85c \ub450\uc9c0 \uc54a\ub294 \uac83\uc785\ub2c8\ub2e4. \ub458\uc9f8, \uc678\ubd80 \uc694\uccad\uc5d0\uc11c \uc628 \uac12\uc744 \ub3d9\uc801 \ucef4\ud3ec\ub10c\ud2b8 \uc120\ud0dd\uc73c\ub85c \uc9c1\uc811 \ud758\ub824\ubcf4\ub0b4\uc9c0 \uc54a\ub294 \uac83\uc785\ub2c8\ub2e4. \ud328\uce58 \ubc84\uc804\uc73c\ub85c \uc62c\ub9b0 \ub4a4\uc5d0\ub3c4 \uc774 \uc6d0\uce59\uc744 \ud14c\uc2a4\ud2b8\ub85c \uace0\uc815\ud574\uc57c \ub2e4\uc74c \uc758\uc874\uc131 \uc5c5\ub370\uc774\ud2b8\uc5d0\uc11c \ub2e4\uc2dc \ubb34\ub108\uc9c0\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<h3>SSR payload \uce90\uc2dc: \ubcf4\ud638\ub41c \ud654\uba74\uacfc <code>\/_payload.json<\/code>\uc744 \ub530\ub85c \ud14c\uc2a4\ud2b8\ud558\uae30<\/h3>\n<p>\uacf5\uc2dd \uad8c\uace0\uc5d0 \ub530\ub974\uba74 \uc601\ud5a5\ubc1b\ub294 Nuxt 4 \ubc84\uc804\uc740 \uce90\uc2dc\ub41c \uacbd\ub85c\uc758 SSR payload\ub97c \uacbd\ub85c\ub9cc\uc73c\ub85c \uc2dd\ubcc4\ud574, \uba3c\uc800 \ud398\uc774\uc9c0\ub97c \uc5f0 \uc0ac\uc6a9\uc790\uc758 \ub370\uc774\ud130\uac00 \ub2e4\uc74c \uc694\uccad\uc5d0 \ubc18\ud658\ub420 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. HTML \uc751\ub2f5\uc740 \ubcf4\ud638\ub3fc \ubcf4\uc5ec\ub3c4 <code>\/account\/_payload.json<\/code> \uac19\uc740 \ubcc4\ub3c4 \uc751\ub2f5\uc774 \ub2e4\ub978 \uc0ac\uc6a9\uc790\ub098 \ube44\ub85c\uadf8\uc778 \uc694\uccad\uc5d0 \ub178\ucd9c\ub420 \uc218 \uc788\uc5c8\ub358 \uac83\uc774 \ubb38\uc81c\uc785\ub2c8\ub2e4. 4.5.1\uc740 \ub7f0\ud0c0\uc784 payload \uce90\uc2dc \uc77d\uae30\u00b7\uc4f0\uae30\ub97c prerender\uc5d0 \ud55c\uc815\ud574 \ud604\uc7ac \uc694\uccad\uc758 \uac00\ub4dc\uac00 \ub2e4\uc2dc \uc2e4\ud589\ub418\uac8c \uace0\uce69\ub2c8\ub2e4.<\/p>\n<p>\uc2e4\ubb34\uc5d0\uc11c\ub294 <code>nuxt.config.ts<\/code>\uc758 <code>routeRules<\/code>\ub97c \uba3c\uc800 \uac80\uc0c9\ud558\uc138\uc694. <code>cache<\/code>, <code>swr<\/code>, <code>isr<\/code>\uac00 \ubd99\uc740 \uacbd\ub85c\uac00 \ub85c\uadf8\uc778 \ud6c4 \uc774\ub984\u00b7\uad8c\ud55c\u00b7\uc870\uc9c1\u00b7\uc8fc\ubb38 \uc815\ubcf4 \ub4f1\uc744 <code>useFetch<\/code>\ub098 <code>useAsyncData<\/code>\ub85c \uc77d\ub294\ub2e4\uba74 \uce90\uc2dc\ub97c \uc81c\uac70\ud558\uac70\ub098 \uacf5\uac1c \ub370\uc774\ud130 \uacbd\ub85c\ub85c \ubd84\ub9ac\ud574\uc57c \ud569\ub2c8\ub2e4. \uc5c5\uadf8\ub808\uc774\ub4dc \uc804 \uae34\uae09 \uc644\ud654\ub85c\ub294 <code>experimental.payloadExtraction: false<\/code>\uac00 \uac00\ub2a5\ud558\uc9c0\ub9cc, \uae30\ub2a5\u00b7\uc131\ub2a5 \uc601\ud5a5\uc774 \uc788\uc73c\ubbc0\ub85c \ud328\uce58\uc758 \ub300\uccb4\uac00 \uc544\ub2c8\ub77c \ub2e8\uae30 \ubc29\uc5b4\ub85c \ucde8\uae09\ud558\uc138\uc694.<\/p>\n<p>\uac80\uc99d\uc740 \ube0c\ub77c\uc6b0\uc800 \ud0ed \ud558\ub098\ub85c \ub05d\ub0b4\uc9c0 \ub9c8\uc138\uc694. \uc0ac\uc6a9\uc790 A\ub85c \ubcf4\ud638 \ud398\uc774\uc9c0\ub97c \uc5f0 \ub4a4, \ucfe0\ud0a4 \uc5c6\ub294 \uc694\uccad\uacfc \uc0ac\uc6a9\uc790 B\uc758 \uc694\uccad\uc73c\ub85c HTML\uacfc payload URL\uc744 \uac01\uac01 \ubc1b\uc544 \uc0c1\ud0dc \ucf54\ub4dc\u00b7\ubcf8\ubb38\u00b7\uce90\uc2dc \ud5e4\ub354\ub97c \ube44\uad50\ud569\ub2c8\ub2e4. CDN\uc774 \uc788\ub2e4\uba74 \uc6d0\ubcf8\ub9cc\uc774 \uc544\ub2c8\ub77c \uc2e4\uc81c \ub3c4\uba54\uc778\uc744 \ud1b5\ud574 \ud655\uc778\ud558\uace0, \uc5c5\uadf8\ub808\uc774\ub4dc \ub4a4\uc5d0\ub294 \uc774\ubbf8 \ub0a8\uc740 \ubcf4\ud638 payload\uac00 \uc5c6\ub3c4\ub85d CDN\u00b7\ud50c\ub7ab\ud3fc \uce90\uc2dc\ub97c \uc815\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n<h3>\uc11c\ubc84 \uc544\uc77c\ub79c\ub4dc: \ub3d9\uc801 \ucef4\ud3ec\ub10c\ud2b8\uc758 \uc785\ub825\uc744 \ub2eb\ud78c \ubaa9\ub85d\uc73c\ub85c \ubc14\uafb8\uae30<\/h3>\n<p>\uc11c\ubc84 \uc544\uc77c\ub79c\ub4dc\ub294 \uc11c\ubc84\uc5d0\uc11c \uc77c\ubd80 \ucef4\ud3ec\ub10c\ud2b8\ub97c \ub80c\ub354\ub9c1\ud558\ub294 \uae30\ub2a5\uc785\ub2c8\ub2e4. \uad8c\uace0\uac00 \uc9c0\uc801\ud55c \uc704\ud5d8\uc740 \uc694\uccad props\uac00 <code>&lt;component :is&gt;<\/code>, <code>resolveDynamicComponent<\/code>, <code>h()<\/code>, \ub610\ub294 <code>as<\/code>\/<code>asChild<\/code> \uac19\uc740 \ub2e4\ud615\uc131 props\ub85c \uc774\uc5b4\uc9c8 \ub54c \uc0dd\uae41\ub2c8\ub2e4. \ud2b9\ud788 \uc120\uc5b8\ud558\uc9c0 \uc54a\uc740 prop\uc774 Vue\uc758 attribute fallthrough\ub85c \ub8e8\ud2b8 \ucef4\ud3ec\ub10c\ud2b8\uc5d0 \uc804\ub2ec\ub420 \uc218 \uc788\uc5b4, \uba85\uc2dc\uc801\uc73c\ub85c \uc804\ub2ec\ud558\uc9c0 \uc54a\uc558\ub2e4\uace0 \uc548\uc2ec\ud558\uae30 \uc5b4\ub835\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ud328\uce58\ub97c \uc801\uc6a9\ud558\ub418, <code>components\/**\/*.server.vue<\/code>\uc5d0\uc11c \uc678\ubd80 \uc785\ub825\uc774 \ub3d9\uc801 \ucef4\ud3ec\ub10c\ud2b8 \uc120\ud0dd\uc5d0 \ub2ff\ub294\uc9c0 \uac80\uc0c9\ud558\uc138\uc694. \ud544\uc694\ud55c \uacbd\uc6b0 \ubb38\uc790\uc5f4\uc744 \uadf8\ub300\ub85c \uc804\ub2ec\ud558\uc9c0 \ub9d0\uace0 \uc544\ub798\ucc98\ub7fc \ud5c8\uc6a9 \ubaa9\ub85d\uc73c\ub85c \ubc14\uafc9\ub2c8\ub2e4. <code>const allowed = { button: UButton, link: NuxtLink }; const component = allowed[input] ?? UButton<\/code>\ucc98\ub7fc \uc774\ubbf8 \uac00\uc838\uc628 \ucef4\ud3ec\ub10c\ud2b8\ub9cc \uc120\ud0dd\ud558\uac8c \ud558\uba74 \uc784\uc758 \uc774\ub984\uc774 \uc2e4\ud589 \uacbd\ub85c\uac00 \ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. props\ub97c \uba85\uc2dc\uc801\uc73c\ub85c \uc120\uc5b8\ud558\uace0 <code>inheritAttrs: false<\/code>\ub97c \uac80\ud1a0\ud558\ub294 \uac83\ub3c4 fallthrough \uacbd\ub85c\ub97c \uc904\uc774\ub294 \ubc29\ubc95\uc785\ub2c8\ub2e4.<\/p>\n<p>\ud14c\uc2a4\ud2b8\uc5d0\uc11c\ub294 <code>template<\/code>, <code>render<\/code>, <code>as<\/code> \ub4f1\uc758 \ube44\uc815\uc0c1 \uc785\ub825\uc744 island URL\uacfc body \uc591\ucabd\uc73c\ub85c \ubcf4\ub0b4 400 \ub610\ub294 \uc548\uc804\ud55c \uae30\ubcf8 \ub80c\ub354\ub9c1\uc774 \ub418\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4. \ub2e8, WAF\ub85c \ud2b9\uc815 \ud0a4\uc6cc\ub4dc\ub97c \ub9c9\ub294 \ubc29\uc2dd\uc740 \ubcf4\uc870 \ubc29\uc5b4\uc77c \ubfd0\uc785\ub2c8\ub2e4. \uc571 \ucf54\ub4dc\uc5d0\uc11c \uc678\ubd80 \uc785\ub825\uc744 \ub3d9\uc801 \uc2e4\ud589 \uc9c0\uc810\uc5d0 \uc804\ub2ec\ud558\uc9c0 \uc54a\ub294 \uad6c\uc870\uac00 \uc6b0\uc120\uc785\ub2c8\ub2e4.<\/p>\n<h3>routeRules \uc778\uc99d: URL \ub300\uc18c\ubb38\uc790\uc640 \uc11c\ubc84 \ubbf8\ub4e4\uc6e8\uc5b4\ub97c \ud568\uaed8 \ud655\uc778\ud558\uae30<\/h3>\n<p>\ud63c\ud569 \ub300\uc18c\ubb38\uc790 \ud0a4 \ubb38\uc81c\ub294 \uc608\ub97c \ub4e4\uc5b4 <code>routeRules: { '\/Admin\/**': { appMiddleware: 'auth' } }<\/code>\ucc98\ub7fc \uc4f4 \uc571\uc5d0\uc11c \uc911\uc694\ud569\ub2c8\ub2e4. vue-router\ub294 \ub300\uc18c\ubb38\uc790\ub97c \uad6c\ubd84\ud558\uc9c0 \uc54a\uace0 \ud398\uc774\uc9c0\ub97c \uc81c\uacf5\ud558\ub294\ub370, \uc601\ud5a5\uc744 \ubc1b\uc740 \ubc84\uc804\uc5d0\uc11c\ub294 Nuxt \uc571 \ucabd matcher\uac00 \ubcf4\ud638 \uaddc\uce59\uc744 \ub5a8\uc5b4\ub728\ub9b4 \uc218 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. 4.5.1\uacfc 3.21.10\uc740 \ud0a4\uc640 lookup \uacbd\ub85c\ub97c \uac19\uc740 \ubc29\uc2dd\uc73c\ub85c \uc815\uaddc\ud654\ud574 \uc774 \ubb38\uc81c\ub97c \uace0\uce69\ub2c8\ub2e4.<\/p>\n<p>\uc5c5\uadf8\ub808\uc774\ub4dc\ub9cc \ud558\uace0 \uc9c0\ub098\uac00\uc9c0 \ub9d0\uace0 <code>pages\/Admin.vue<\/code>, <code>pages\/dashboard\/Users.vue<\/code>\ucc98\ub7fc \ub300\ubb38\uc790\uac00 \uc11e\uc778 \ud30c\uc77c\uacfc <code>routeRules<\/code> \ud0a4\ub97c \ucc3e\uc73c\uc138\uc694. \ube44\ub85c\uadf8\uc778 \uc0c1\ud0dc\uc5d0\uc11c \uc6d0\ub798 \uacbd\ub85c, \uc18c\ubb38\uc790 \uacbd\ub85c, \ub300\ubb38\uc790 \uacbd\ub85c\ub97c \ubaa8\ub450 \uc694\uccad\ud574 \ub9ac\ub2e4\uc774\ub809\ud2b8\u00b7\uc0c1\ud0dc \ucf54\ub4dc\u00b7SSR \ubcf8\ubb38\uc744 \ube44\uad50\ud569\ub2c8\ub2e4. \ub354 \uc911\uc694\ud55c \uad8c\ud55c \uac80\uc0ac\ub294 <code>server\/middleware\/auth.ts<\/code>\ub098 API \ud578\ub4e4\ub7ec\uc5d0\uc11c\ub3c4 \uac80\uc0ac\ud574\uc57c \ud569\ub2c8\ub2e4. \ud074\ub77c\uc774\uc5b8\ud2b8 \uc571 \ubbf8\ub4e4\uc6e8\uc5b4\ub294 \uc0ac\uc6a9\uc790 \uacbd\ud5d8\uc5d0 \uc720\uc6a9\ud558\uc9c0\ub9cc \uc11c\ubc84\uc758 \ucd5c\uc885 \uc811\uadfc \uc81c\uc5b4\ub97c \ub300\uc2e0\ud558\uba74 \uc548 \ub429\ub2c8\ub2e4.<\/p>\n<h3>DevTools\uc640 \ube4c\ub4dc: \uac1c\ubc1c \uba38\uc2e0\ub3c4 \ubc30\ud3ec \uacbd\uacc4\uc758 \uc77c\ubd80\ub85c \ub2e4\ub8e8\uae30<\/h3>\n<p>\uacf5\uc2dd \uacf5\uc9c0\ub294 DevTools\uc758 \ubb38\uc81c\ub97c production\uc5d0\ub294 \uc601\ud5a5\uc774 \uc5c6\uc9c0\ub9cc \uac1c\ubc1c \uc911\uc5d0\ub294 \uce58\uba85\uc801\uc77c \uc218 \uc788\ub294 \uc6d0\uaca9 \ucf54\ub4dc \uc2e4\ud589\uc73c\ub85c \ubd84\ub958\ud569\ub2c8\ub2e4. <code>nuxt dev<\/code>\ub97c <code>--host<\/code>\ub85c LAN\uc5d0 \uc5f4\uac70\ub098, \uac19\uc740 \uba38\uc2e0\uc5d0\uc11c \uc2e0\ub8b0\ud558\uc9c0 \uc54a\ub294 \ud504\ub85c\uc138\uc2a4\u00b7\uc6f9\uc0ac\uc774\ud2b8\ub97c \ub2e4\ub8e8\ub294 \uac1c\ubc1c\uc790\ub294 \ud2b9\ud788 lockfile\uc758 <code>@nuxt\/devtools<\/code>\uae4c\uc9c0 \ud655\uc778\ud574\uc57c \ud569\ub2c8\ub2e4. \uac1c\ubc1c \uc11c\ubc84\ub97c \uc678\ubd80\uc5d0 \uc5f4\uc9c0 \uc54a\uace0, \ud544\uc694\ud560 \ub54c\ub9cc \uc2e4\ud589\ud558\uba70, \uc5c5\ub370\uc774\ud2b8 \ud6c4 \uc7ac\uc124\uce58\ud558\ub294 \uae30\ubcf8 \uc2b5\uad00\uc774 \ubc29\uc5b4\uac00 \ub429\ub2c8\ub2e4.<\/p>\n<p>4.5.2\ub294 \uc774 \ubcf4\uc548 \ud328\uce58 \uc790\uccb4\ub97c \ub300\uccb4\ud558\uc9c0 \uc54a\uc9c0\ub9cc, \ube4c\ub4dc \ucd9c\ub825\uc774 \uc644\uc131\ub41c \ub4a4 \uce90\uc2dc\ub97c \uc218\uc9d1\ud558\ub294 \uc218\uc815 \ub4f1\uc744 \ud3ec\ud568\ud569\ub2c8\ub2e4. \ub530\ub77c\uc11c \ubcf4\uc548 \uc5c5\uadf8\ub808\uc774\ub4dc PR\uc5d0\uc11c production build, SSR \uae30\ub3d9, \uc815\uc801 \uc790\uc0b0 manifest, CI \uce90\uc2dc \ubcf5\uc6d0\uc744 \ud568\uaed8 \uc2e4\ud589\ud558\uc138\uc694. \ube4c\ub4dc\uac00 \ud1b5\uacfc\ud588\ub2e4\ub294 \uc0ac\uc2e4\uacfc \ubcf4\ud638 \uacbd\ub85c\uac00 \uc548\uc804\ud558\ub2e4\ub294 \uc0ac\uc2e4\uc740 \ubcc4\uac1c\uc758 \ud14c\uc2a4\ud2b8\uc785\ub2c8\ub2e4.<\/p>\n<h2>\uac1c\ubc1c\uc790 \uc2e4\ud589 \uacc4\ud68d<\/h2>\n<ol>\n<li><code>package.json<\/code>\uacfc lockfile\uc5d0\uc11c Nuxt\u00b7<code>@nuxt\/devtools<\/code>\uc758 \uc2e4\uc81c \ud574\uc11d \ubc84\uc804\uc744 \uae30\ub85d\ud558\uace0, \uc601\ud5a5 \ubc94\uc704\uba74 3.21.10\/4.5.1 \uc774\uc0c1\uc73c\ub85c \uc62c\ub9bd\ub2c8\ub2e4.<\/li>\n<li><code>npx nuxt upgrade --dedupe<\/code> \ud6c4 lockfile \ubcc0\uacbd\uc744 \ubcc4\ub3c4 PR\ub85c \ub9ac\ubdf0\ud558\uace0 production build\u00b7SSR smoke test\ub97c CI\uc5d0\uc11c \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/li>\n<li><code>nuxt.config.ts<\/code>\uc758 <code>cache<\/code>\u00b7<code>swr<\/code>\u00b7<code>isr<\/code> \uacbd\ub85c\ub97c \uc804\uc218 \ud655\uc778\ud574 \uc778\uc99d SSR \ub370\uc774\ud130\uc640 \ubd84\ub9ac\ud569\ub2c8\ub2e4.<\/li>\n<li>\uc0ac\uc6a9\uc790 A\u00b7B\u00b7\ube44\ub85c\uadf8\uc778 \uc694\uccad\uc73c\ub85c \ubcf4\ud638 \ud398\uc774\uc9c0\uc640 <code>\/_payload.json<\/code>\uc744 \uac01\uac01 \uac80\uc0ac\ud558\uace0 CDN \uce90\uc2dc\ub97c \uc815\ub9ac\ud569\ub2c8\ub2e4.<\/li>\n<li><code>*.server.vue<\/code>\uc640 <code>as<\/code>, <code>:is<\/code>, <code>resolveDynamicComponent<\/code>, <code>h(<\/code> \uc0ac\uc6a9\ucc98\ub97c \ucc3e\uc544 \uc678\ubd80 \uc785\ub825\uc744 \ud5c8\uc6a9 \ubaa9\ub85d\uc73c\ub85c \ubc14\uafc9\ub2c8\ub2e4.<\/li>\n<li>\ubcf4\ud638 \ub77c\uc6b0\ud2b8\ub97c \ub300\uc18c\ubb38\uc790 \uc138 \uac00\uc9c0 \ud615\ud0dc\ub85c \uc694\uccad\ud558\ub294 \ud1b5\ud569 \ud14c\uc2a4\ud2b8\ub97c \ucd94\uac00\ud558\uace0, \uc11c\ubc84 \ubbf8\ub4e4\uc6e8\uc5b4\uc758 \uad8c\ud55c \uac80\uc0ac\ub3c4 \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n<li>\uac1c\ubc1c \uc11c\ubc84\uc758 \uc678\ubd80 \ub178\ucd9c\uc744 \ub044\uace0 DevTools \ubc84\uc804\uc744 \ud655\uc778\ud55c \ub4a4, CI\uc5d0\uc11c \uc758\uc874\uc131 \ucde8\uc57d\uc810 \uac80\uc0ac\ub97c \uc815\uae30 \uc2e4\ud589\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n<h2>\ub9ac\uc2a4\ud06c\uc640 \ud55c\uacc4<\/h2>\n<p>\uc774 \uae00\uc740 \uacf5\uc2dd \uad8c\uace0\uc640 \ub9b4\ub9ac\uc2a4 \ub178\ud2b8\ub97c \uae30\uc900\uc73c\ub85c \ud55c \uc6b4\uc601 \uc810\uac80\uc785\ub2c8\ub2e4. \uc2e4\uc81c \uc601\ud5a5\uc740 \uc0ac\uc6a9 \uc911\uc778 Nuxt \ubc84\uc804, \ubc30\ud3ec \uc5b4\ub311\ud130, CDN, \uc11c\ubc84 \uc544\uc77c\ub79c\ub4dc \uc0ac\uc6a9 \uc5ec\ubd80, \uc571\uc758 props \ud750\ub984\uc5d0 \ub530\ub77c \ub2ec\ub77c\uc9d1\ub2c8\ub2e4. \ud328\uce58 \ubc84\uc804\uc774 \ud2b9\uc815 \uc571\uc758 \ubaa8\ub4e0 \uad8c\ud55c \ubb38\uc81c\ub97c \ud574\uacb0\ud558\uc9c0\ub294 \uc54a\uc2b5\ub2c8\ub2e4. \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uc0ac\uc6a9\uc790 \uc785\ub825\uc744 \ub3d9\uc801 \ucef4\ud3ec\ub10c\ud2b8\uc5d0 \uc804\ub2ec\ud558\uac70\ub098 \uc11c\ubc84\uc5d0\uc11c \uad8c\ud55c\uc744 \ud655\uc778\ud558\uc9c0 \uc54a\ub294 \uc124\uacc4\ub77c\uba74 \uc5ec\uc804\ud788 \ubcc4\ub3c4 \uc218\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub864\ubc31\ub3c4 \uc900\ube44\ud558\uc138\uc694. \uc5c5\uadf8\ub808\uc774\ub4dc \ud6c4 SSR \uc624\ub958\uc728, 4xx\/5xx, payload \uc694\uccad \ube44\uc728, \ub85c\uadf8\uc778 \uc2e4\ud328\uc728, \ube4c\ub4dc \uce90\uc2dc \uc801\uc911\ub960\uc744 \uc774\uc804\uacfc \ube44\uad50\ud569\ub2c8\ub2e4. \uc608\uae30\uce58 \uc54a\uc740 \ub80c\ub354\ub9c1\u00b7\uce90\uc2dc \ud68c\uadc0\uac00 \ubcf4\uc774\uba74 \ubc30\ud3ec\ub97c \ub418\ub3cc\ub9ac\ub418, \uc54c\ub824\uc9c4 \ucde8\uc57d \ubc84\uc804\uc73c\ub85c \uc7a5\uae30\uac04 \ubcf5\uadc0\ud558\ub294 \ub300\uc2e0 \ud574\ub2f9 \uae30\ub2a5\uc744 \uc7a0\uc2dc \ub044\uac70\ub098 \ud504\ub85d\uc2dc \ucc28\ub2e8\u00b7\uc11c\ubc84 \uce21 \uc778\uc99d \uac19\uc740 \uc644\ud654\ucc45\uc744 \ubcd1\ud589\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h2>FAQ<\/h2>\n<h3>Nuxt 3 \uc571\ub3c4 3.21.10\uc73c\ub85c \uc989\uc2dc \uc62c\ub824\uc57c \ud558\ub098\uc694?<\/h3>\n<p>3.21.10 \ubbf8\ub9cc\uc774\uace0 \uc11c\ubc84 \uc544\uc77c\ub79c\ub4dc, routeRules, DevTools\ub97c \uc4f0\ub294 \uacbd\uc6b0 \uc6b0\uc120\uc21c\uc704\uac00 \ub192\uc2b5\ub2c8\ub2e4. payload \uce90\uc2dc \ucde8\uc57d\uc810\uc740 \uacf5\uc2dd \uad8c\uace0\uc0c1 \ud2b9\uc815 Nuxt 4 \ubc94\uc704\uc5d0 \ud55c\uc815\ub418\uc9c0\ub9cc, \ub2e4\ub978 \ubcf4\uc548 \uc218\uc815\uc740 3.x\uc5d0\ub3c4 \uc801\uc6a9\ub429\ub2c8\ub2e4. \uba3c\uc800 \uc2e4\uc81c \ubc84\uc804\uacfc \uae30\ub2a5 \uc0ac\uc6a9 \uc5ec\ubd80\ub97c \ud655\uc778\ud558\uc138\uc694.<\/p>\n<h3>\uc778\uc99d \ud398\uc774\uc9c0\uc5d0 routeRules \uce90\uc2dc\ub97c \uc368\ub3c4 \ub418\ub098\uc694?<\/h3>\n<p>\uc0ac\uc6a9\uc790\ubcc4 SSR \ub370\uc774\ud130\ub97c \ub80c\ub354\ub9c1\ud558\ub294 \uacbd\ub85c\uc5d0\ub294 \uc4f0\uc9c0 \uc54a\ub294 \ud3b8\uc774 \uc548\uc804\ud569\ub2c8\ub2e4. \uacf5\uac1c \ucf58\ud150\uce20\uc640 \uc0ac\uc6a9\uc790\ubcc4 \ud398\uc774\uc9c0\ub97c URL\u00b7\ub370\uc774\ud130 \ud328\uce6d \ub2e8\uacc4\uc5d0\uc11c \ubd84\ub9ac\ud558\uace0, \uce90\uc2dc\uac00 \ud544\uc694\ud558\uba74 \uc775\uba85 \ub370\uc774\ud130\ub9cc \uce90\uc2dc\ud558\ub3c4\ub85d \uc124\uacc4\ud558\uc138\uc694.<\/p>\n<h3>Nuxt DevTools\ub294 \uc6b4\uc601 \uc11c\ubc84\uc5d0 \uc5c6\ub294\ub370 \uc65c \uc5c5\ub370\uc774\ud2b8\ud574\uc57c \ud558\ub098\uc694?<\/h3>\n<p>\uacf5\uc2dd \uacf5\uc9c0\ub294 \uac1c\ubc1c \uc804\uc6a9 \ubb38\uc81c\ub85c \uc124\uba85\ud558\uc9c0\ub9cc, \uac1c\ubc1c \uba38\uc2e0\uc758 \uc18c\uc2a4\u00b7\ud1a0\ud070\u00b7\ubc30\ud3ec \uad8c\ud55c\ub3c4 \uacf5\uaca9 \ud45c\uba74\uc785\ub2c8\ub2e4. lockfile\uc744 \uac31\uc2e0\ud558\uace0 \uac1c\ubc1c \uc11c\ubc84\ub97c \ubd88\ud544\uc694\ud558\uac8c \uc678\ubd80\uc5d0 \uc5f4\uc9c0 \uc54a\ub294 \uac83\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<h2>\ucd9c\ucc98 \ubc0f \ucd94\uac00 \uc77d\uae30<\/h2>\n<ul>\n<li><a href=\"https:\/\/nuxt.com\/blog\/v4-5-security\" target=\"_blank\" rel=\"noopener\">Nuxt \u2014 Security Patch Releases<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/releases\/tag\/v4.5.2\" target=\"_blank\" rel=\"noopener\">Nuxt \u2014 v4.5.2 release notes<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/security\/advisories\/GHSA-wm8w-6qjm-cv43\" target=\"_blank\" rel=\"noopener\">GitHub Advisory \u2014 SSR payload cache disclosure<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/security\/advisories\/GHSA-9473-5f9j-94wq\" target=\"_blank\" rel=\"noopener\">GitHub Advisory \u2014 server-island template injection<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/security\/advisories\/GHSA-48hr-524c-v5w3\" target=\"_blank\" rel=\"noopener\">GitHub Advisory \u2014 component instantiation<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/nuxt\/nuxt\/security\/advisories\/GHSA-hxvh-4h3w-prp9\" target=\"_blank\" rel=\"noopener\">GitHub Advisory \u2014 mixed-case route rules<\/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 3.21.10\u00b74.5.1 \ubcf4\uc548 \ud328\uce58\ub97c \uae30\uc900\uc73c\ub85c SSR payload, server island, routeRules, DevTools\ub97c \uc2e4\uc81c \ud504\ub85c\uc81d\ud2b8\uc5d0\uc11c \uc810\uac80\ud558\ub294 \uc21c\uc11c\ub97c \uc815\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n","protected":false},"author":1,"featured_media":623,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-624","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\/624","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=624"}],"version-history":[{"count":0,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/posts\/624\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media\/623"}],"wp:attachment":[{"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/media?parent=624"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/categories?post=624"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gilnas.synology.me\/wordpress\/wp-json\/wp\/v2\/tags?post=624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}