{"componentChunkName":"component---node-modules-stvad-gatsby-theme-garden-src-templates-roam-page-js","path":"/HTML","result":{"data":{"roamPage":{"title":"HTML","childMdx":{"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", {\n    \"id\": \"html\"\n  }, \"HTML\"), mdx(Block, {\n    id: \"UN_9tAkSc\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/a6f84\",\n      \"title\": \"추가 바람\",\n      \"className\": \" internal-link\"\n    }, \"\\uCD94\\uAC00 \\uBC14\\uB78C\"), \"\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","outboundReferences":[{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", {\n    \"id\": \"추가-바람\"\n  }, \"\\uCD94\\uAC00 \\uBC14\\uB78C\"), mdx(Block, {\n    id: \"ZxkIoAt-4\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uBBF8\\uB798\\uC758 \\uB0B4\\uAC00 \\uC368 \\uC918\\uC57C \\uD560 \\uB0B4\\uC6A9\\uB4E4\\uC744 \\uB9C1\\uD06C\\uD574\\uB450\\uB294 \\uACF3\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"5tzg0kntF\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"{{query: {and: \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/a6f84\",\n      \"title\": \"추가 바람\",\n      \"className\": \" internal-link\"\n    }, \"\\uCD94\\uAC00 \\uBC14\\uB78C\"), \"}}}\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamPage","id":"bcdb0705-aec2-57bc-8208-d5066be4eff2","title":"추가 바람","fields":{"slug":"/a6f84"}}}],"inboundReferences":[{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"v7mwXStMF\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/HTML\",\n      \"title\": \"HTML\",\n      \"className\": \" internal-link\"\n    }, \"HTML\"), \" \\uD45C\\uC900\\uC5D0\\uC11C \\uC815\\uC758\\uB41C \\uBAA8\\uB4E0 \\uC0AC\\uC6A9\\uC790\\uC640\\uC758 \\uC0C1\\uD638 \\uC791\\uC6A9\\uC744 \\uD55C\\uBC88\\uC5D0 \\uBE44\\uD65C\\uC131\\uD654 \\uAC00\\uB2A5\\uD55C \\uC18D\\uC131\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"f5f584ca-7525-5b27-b6c8-96320cd07552","string":"[[HTML]] 표준에서 정의된 모든 사용자와의 상호 작용을 한번에 비활성화 가능한 속성","fields":{"parentPage":{"title":"June 9th, 2022","fields":{"slug":"/June-9th-2022"}},"slug":"/v7mwXStMF"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"NhpLCa4G2\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC6F9 \\uC560\\uD50C\\uB9AC\\uCF00\\uC774\\uC158 \\uAC1C\\uBC1C\\uC5D0 \\uC8FC\\uB85C \\uC0AC\\uC6A9\\uB418\\uB2E4 \\uBCF4\\uB2C8 JS \\uC678\\uC5D0\\uB3C4 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CSS\",\n      \"title\": \"CSS\",\n      \"className\": \" internal-link\"\n    }, \"CSS\"), \"\\uB098 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/HTML\",\n      \"title\": \"HTML\",\n      \"className\": \" internal-link\"\n    }, \"HTML\"), \"\\uC744 \\uB2E4\\uB8F0 \\uC218 \\uC788\\uB294 \\uACBD\\uC6B0\\uAC00 \\uB9CE\\uB2E4.\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"acf3bbe1-d841-50ce-bbec-b5958af32414","string":"웹 애플리케이션 개발에 주로 사용되다 보니 JS 외에도 [[CSS]]나 [[HTML]]을 다룰 수 있는 경우가 많다.","fields":{"parentPage":{"title":"모듈 번들러","fields":{"slug":"/2916e"}},"slug":"/NhpLCa4G2"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"ohKCSK9EX\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/HTML\",\n      \"title\": \"HTML\",\n      \"className\": \" internal-link\"\n    }, \"HTML\"), \" \\uC2DC\\uBA58\\uD2F1\\uC744 \\uC720\\uC9C0\\uD558\\uBA74\\uC11C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://hyeonseok.com/blog/883\"\n    }, \"\\uC11C\\uC2DD \\uC720\\uD6A8\\uC131 \\uAC80\\uC0AC\\uB97C \\uD655\\uC7A5\\uD560 \\uC218 \\uC788\\uB294 \\uBC29\\uBC95\"), \"\\uC744 \\uC54C\\uC544\\uBCF4\\uC558\\uB2E4.\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"wH3AYtku6\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC720\\uD6A8\\uD558\\uC9C0 \\uC54A\\uC740 \\uAC12\\uC774 \\uB4E4\\uC5B4\\uC654\\uC744 \\uB54C \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"invalid\"), \" \\uC774\\uBCA4\\uD2B8\\uB97C \\uD1B5\\uD574 \\uC54C \\uC218 \\uC788\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"ivgvQO6W2\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/6e12b\",\n      \"title\": \"자바스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uC790\\uBC14\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uB97C \\uD1B5\\uD574 input \\uAC1D\\uCCB4\\uC758 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://developer.mozilla.org/ko/docs/Web/API/ValidityState\"\n    }, \"ValidityState\"), \" \\uAC12\\uC744 \\uCC38\\uACE0\\uD558\\uC5EC \\uC5B4\\uB5A4 \\uC11C\\uC2DD \\uC624\\uB958\\uAC00 \\uC788\\uB294\\uC9C0 \\uAC80\\uC0AC\\uD560 \\uC218 \\uC788\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"xW0rJIrXZ\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CSS\",\n      \"title\": \"CSS\",\n      \"className\": \" internal-link\"\n    }, \"CSS\"), \"\\uC5D0\\uC11C\\uB3C4 \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \":invalid\"), \", \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \":valid\"), \" \\uB4F1\\uC758 \\uAC00\\uC0C1 \\uD074\\uB798\\uC2A4\\uB97C \\uD1B5\\uD574 \\uC0C1\\uD0DC\\uC5D0 \\uB530\\uB77C \\uC2A4\\uD0C0\\uC77C\\uC744 \\uD45C\\uC2DC\\uD560 \\uC218 \\uC788\\uB2E4.\")),\n    mdxType: \"Block\"\n  })));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"2f208cb2-167a-52cc-a143-7a77a1470c2c","string":"[[HTML]] 시멘틱을 유지하면서 [서식 유효성 검사를 확장할 수 있는 방법](https://hyeonseok.com/blog/883)을 알아보았다.","fields":{"parentPage":{"title":"December 11th, 2021","fields":{"slug":"/December-11th-2021"}},"slug":"/ohKCSK9EX"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"Wzw-GD6tc\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC560\\uD50C\\uB808\\uCF00\\uC774\\uC158 \\uD504\\uB808\\uC784\\uC6CC\\uD06C\\uB294 \\uC8FC\\uB85C \\uB9E4 \\uC694\\uCCAD\\uB9C8\\uB2E4 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Node.js\",\n      \"title\": \"Node.js\",\n      \"className\": \" internal-link\"\n    }, \"Node.js\"), \"\\uB97C \\uC774\\uC6A9\\uD558\\uC5EC \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/HTML\",\n      \"title\": \"HTML\",\n      \"className\": \" internal-link\"\n    }, \"HTML\"), \" \\uC751\\uB2F5\\uC744 \\uB9CC\\uB4DC\\uB294 \\uBC29\\uC2DD\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"8fd4dff9-a207-5de0-9e96-d07be6449615","string":"애플레케이션 프레임워크는 주로 매 요청마다 [[Node.js]]를 이용하여 [[HTML]] 응답을 만드는 방식","fields":{"parentPage":{"title":"June 21st, 2022","fields":{"slug":"/June-21st-2022"}},"slug":"/Wzw-GD6tc"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"FSFuepnhn\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/HTML\",\n      \"title\": \"HTML\",\n      \"className\": \" internal-link\"\n    }, \"HTML\"), \", \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CSS\",\n      \"title\": \"CSS\",\n      \"className\": \" internal-link\"\n    }, \"CSS\"), \", \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/6e12b\",\n      \"title\": \"자바스크립트\",\n      \"className\": \" internal-link\"\n    }, \"\\uC790\\uBC14\\uC2A4\\uD06C\\uB9BD\\uD2B8\"), \"\\uB97C \\uBC14\\uD0D5\\uC73C\\uB85C \\uC0C1\\uD638 \\uC791\\uC6A9 \\uAC00\\uB2A5\\uD55C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/9f451\",\n      \"title\": \"웹\",\n      \"className\": \" internal-link\"\n    }, \"\\uC6F9\"), \" \\uD398\\uC774\\uC9C0\\uB97C \\uB80C\\uB354\\uB9C1\\uD558\\uB294 \\uC18C\\uD504\\uD2B8\\uC6E8\\uC5B4\\uC758 \\uD1B5\\uCE6D.\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"ed913451-f41b-5a2d-8d09-944dceec8b1a","string":"[[HTML]], [[CSS]], [[자바스크립트]]를 바탕으로 상호 작용 가능한 [[웹]] 페이지를 렌더링하는 소프트웨어의 통칭.","fields":{"parentPage":{"title":"브라우저 엔진","fields":{"slug":"/3e8cc"}},"slug":"/FSFuepnhn"}}},{"__typename":"Mdx","body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar Block = makeShortcode(\"Block\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(Block, {\n    id: \"B7-xw3JCJ\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uCEF4\\uD3EC\\uB10C\\uD2B8 \\uD504\\uB808\\uC784\\uC6CC\\uD06C\\uB294 \\uC77C\\uBC18\\uC801\\uC73C\\uB85C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/SSR\",\n      \"title\": \"SSR\",\n      \"className\": \" internal-link\"\n    }, \"SSR\"), \"\\uC744 \\uCEF4\\uD3EC\\uB10C\\uD2B8 \\uD2B8\\uB9AC\\uB97C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/HTML\",\n      \"title\": \"HTML\",\n      \"className\": \" internal-link\"\n    }, \"HTML\"), \"\\uB85C \\uB80C\\uB354\\uD558\\uB294 \\uBC29\\uBC95\\uC73C\\uB85C\\uC11C \\uB2E4\\uB8F8\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"8e2a30ba-6792-53ec-9848-03c207821fe3","string":"컴포넌트 프레임워크는 일반적으로 [[SSR]]을 컴포넌트 트리를 [[HTML]]로 렌더하는 방법으로서 다룸","fields":{"parentPage":{"title":"June 21st, 2022","fields":{"slug":"/June-21st-2022"}},"slug":"/B7-xw3JCJ"}}}]},"fields":{"slug":"/HTML"}}},"pageContext":{"id":"00bb33c0-2701-5a65-9a24-4c660a309e4e"}},"staticQueryHashes":["2131059104","2221750479","2468095761"]}