{"componentChunkName":"component---node-modules-stvad-gatsby-theme-garden-src-templates-roam-page-js","path":"/Cloudflare","result":{"data":{"roamPage":{"title":"Cloudflare","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\": \"cloudflare\"\n  }, \"Cloudflare\"), mdx(Block, {\n    id: \"nXTSCslmo\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://cloudflare.com\"\n    }, \"https://cloudflare.com\"))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"BPwzHCpMm\",\n    content: mdx(React.Fragment, null),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","outboundReferences":[],"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: \"klua5BK1j\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Cloudflare\",\n      \"title\": \"Cloudflare\",\n      \"className\": \" internal-link\"\n    }, \"Cloudflare\"), \"\\uB294 \\uAF64 \\uC608\\uC804\\uBD80\\uD130 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CAPTCHA\",\n      \"title\": \"CAPTCHA\",\n      \"className\": \" internal-link\"\n    }, \"CAPTCHA\"), \"\\uB97C \\uC81C\\uAC70\\uD558\\uB294 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Privacy-Pass\",\n      \"title\": \"Privacy Pass\",\n      \"className\": \" internal-link\"\n    }, \"Privacy Pass\"), \" \\uD45C\\uC900\\uC744 \\uBC00\\uACE0 \\uC788\\uC5C8\\uC74C\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"26e82341-14ad-5691-8081-b141673d6361","string":"[[Cloudflare]]는 꽤 예전부터 [[CAPTCHA]]를 제거하는 [[Privacy Pass]] 표준을 밀고 있었음","fields":{"parentPage":{"title":"June 17th, 2022","fields":{"slug":"/June-17th-2022"}},"slug":"/klua5BK1j"}}},{"__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: \"faNEClio5\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Cloudflare\",\n      \"title\": \"Cloudflare\",\n      \"className\": \" internal-link\"\n    }, \"Cloudflare\"), \", \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Deno\",\n      \"title\": \"Deno\",\n      \"className\": \" internal-link\"\n    }, \"Deno\"), \" \\uB4F1\\uC774 \\uCC38\\uC5EC\\uD558\\uC5EC \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/W3C\",\n      \"title\": \"W3C\",\n      \"className\": \" internal-link\"\n    }, \"W3C\"), \"\\uC5D0 \\uC11C\\uBC84 \\uB7F0\\uD0C0\\uC784\\uC744 \\uB300\\uD45C\\uD558\\uB294 Working Group \\uAC1C\\uC124\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"d75ca6aa-6663-5e6a-98e6-e6bf776fc4bc","string":"[[Cloudflare]], [[Deno]] 등이 참여하여 [[W3C]]에 서버 런타임을 대표하는 Working Group 개설","fields":{"parentPage":{"title":"June 8th, 2022","fields":{"slug":"/June-8th-2022"}},"slug":"/faNEClio5"}}},{"__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: \"PsPIaCpQ4\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://blog.cloudflare.com/cloudflare-outage-on-june-21-2022/\"\n    }, \"Cloudflare outage on June 21, 2022\"), \" \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Cloudflare\",\n      \"title\": \"hashtag_Cloudflare\",\n      \"className\": \"hashtag internal-link\"\n    }, \"Cloudflare\"), \"\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"EWoYjbQBU\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uD55C\\uAD6D\\uC5B4\\uD310: \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://blog.cloudflare.com/ko-kr/cloudflare-outage-on-june-21-2022-ko-kr/\"\n    }, \"https://blog.cloudflare.com/ko-kr/cloudflare-outage-on-june-21-2022-ko-kr/\"))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"IFS5OIuKE\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uB610 BGP\\uC57C?\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"FFFaMi_RE\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"BGP \\uC124\\uC815\\uC744 \\uBCC0\\uACBD\\uD558\\uB358 \\uB3C4\\uC911 \\uC124\\uC815 \\uC6B0\\uC120 \\uC21C\\uC704 \\uBB38\\uC81C\\uB85C \\uC758\\uB3C4\\uD558\\uC9C0 \\uC54A\\uC740 \\uC124\\uC815\\uC774 \\uBC30\\uD3EC\\uB428\")),\n    mdxType: \"Block\"\n  })));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"a0ab7452-46f4-51d7-bd55-57fc588f63ab","string":"[Cloudflare outage on June 21, 2022](https://blog.cloudflare.com/cloudflare-outage-on-june-21-2022/) #Cloudflare","fields":{"parentPage":{"title":"June 23rd, 2022","fields":{"slug":"/June-23rd-2022"}},"slug":"/PsPIaCpQ4"}}},{"__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: \"8_tqnv45U\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Cloudflare\",\n      \"title\": \"Cloudflare\",\n      \"className\": \" internal-link\"\n    }, \"Cloudflare\"), \" \\uBCF4\\uD638\\uB97C \\uC0AC\\uC6A9\\uD558\\uB358 \\uC6F9\\uC0AC\\uC774\\uD2B8\\uB294 \\uBCC4\\uB3C4\\uC758 \\uC791\\uC5C5 \\uC5C6\\uC774\\uB3C4 \\uD574\\uB2F9 \\uAE30\\uAE30 \\uC0AC\\uC6A9\\uC790\\uB4E4\\uC5D0\\uAC8C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CAPTCHA\",\n      \"title\": \"CAPTCHA\",\n      \"className\": \" internal-link\"\n    }, \"CAPTCHA\"), \" \\uC5C6\\uC774 \\uC0AC\\uC6A9\\uC790\\uB97C \\uAC80\\uC99D\\uD560 \\uC218 \\uC788\\uAC8C \\uB428\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"49bca91e-ce4b-5d65-bb01-361bbec0e9cf","string":"[[Cloudflare]] 보호를 사용하던 웹사이트는 별도의 작업 없이도 해당 기기 사용자들에게 [[CAPTCHA]] 없이 사용자를 검증할 수 있게 됨","fields":{"parentPage":{"title":"June 17th, 2022","fields":{"slug":"/June-17th-2022"}},"slug":"/8_tqnv45U"}}},{"__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: \"ua32ppfCp\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/W3C\",\n      \"title\": \"W3C\",\n      \"className\": \" internal-link\"\n    }, \"W3C\"), \" \\uB0B4\\uC5D0\\uC11C \\uC11C\\uBC84 \\uB4F1\\uC758 \\uB2E4\\uC591\\uD55C \\uD658\\uACBD\\uC5D0\\uC11C \\uC2E4\\uD589\\uB418\\uB294 \\uB7F0\\uD0C0\\uC784\\uC744 \\uB300\\uD45C\\uD558\\uAE30 \\uC704\\uD574 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Cloudflare\",\n      \"title\": \"Cloudflare\",\n      \"className\": \" internal-link\"\n    }, \"Cloudflare\"), \", \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Deno\",\n      \"title\": \"Deno\",\n      \"className\": \" internal-link\"\n    }, \"Deno\"), \" \\uB4F1\\uC774 \\uCC38\\uC5EC\\uD558\\uB294 Working Group\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"5e203083-a888-5635-b695-44c4c6ff6aa8","string":"[[W3C]] 내에서 서버 등의 다양한 환경에서 실행되는 런타임을 대표하기 위해 [[Cloudflare]], [[Deno]] 등이 참여하는 Working Group","fields":{"parentPage":{"title":"WinterCG","fields":{"slug":"/WinterCG"}},"slug":"/ua32ppfCp"}}}]},"fields":{"slug":"/Cloudflare"}}},"pageContext":{"id":"528c86d9-15fb-5371-ba2a-fa091d9c00c6"}},"staticQueryHashes":["2131059104","2221750479","2468095761"]}