{"componentChunkName":"component---node-modules-stvad-gatsby-theme-garden-src-templates-roam-page-js","path":"/CLI","result":{"data":{"roamPage":{"title":"CLI","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\": \"cli\"\n  }, \"CLI\"), mdx(Block, {\n    id: \"I4wStb1We\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uCEE4\\uB9E8\\uB4DC-\\uB77C\\uC778 \\uC778\\uD130\\uD398\\uC774\\uC2A4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"sPEoym9or\",\n    content: mdx(React.Fragment, null, mdx(\"h1\", {\n      \"id\": \"어떻게-만들어야-하는가\"\n    }, \"\\uC5B4\\uB5BB\\uAC8C \\uB9CC\\uB4E4\\uC5B4\\uC57C \\uD558\\uB294\\uAC00\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"L31ShB_q-\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html\"\n    }, \"POSIX.1-2017 12.2 Utility Syntax Guidelines\"))),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"Jipo8YIr-\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/POSIX\",\n      \"title\": \"POSIX\",\n      \"className\": \" internal-link\"\n    }, \"POSIX\"), \" \\uD45C\\uC900\\uC5D0\\uC11C \\uAD8C\\uC7A5\\uB418\\uB294 CLI \\uD504\\uB85C\\uADF8\\uB7A8\\uC758 \\uC635\\uC158 \\uBC0F \\uC778\\uC790 \\uC804\\uB2EC \\uBC29\\uC2DD.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"VNRpETnyi\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uB300\\uC2DC(-)\\uB97C \\uC774\\uC6A9\\uD55C \\uC635\\uC158 \\uC804\\uB2EC \\uBC29\\uC2DD\\uC758 \\uC2DC\\uCD08\\uAC00 \\uB41C\\uB2E4.\")),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"ikgHlSZHR\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://www.gnu.org/software/libc/manual/html_node/Argument-Syntax.html\"\n    }, \"The GNU C Library Reference Manual, 25.1.1 Program Argument Syntax Conventions\"))),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"hnF5rbU8C\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"--something\"), \" \\uACFC \\uAC19\\uC740 \\uAE34 \\uD615\\uD0DC\\uC758 \\uC635\\uC158\\uC740 \\uC5EC\\uAE30\\uC11C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/GNU\",\n      \"title\": \"GNU\",\n      \"className\": \" internal-link\"\n    }, \"GNU\"), \" \\uD655\\uC7A5\\uC73C\\uB85C \\uCC98\\uC74C \\uB4F1\\uC7A5\\uD588\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"CHiR3kExu\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"--name=value\"), \" \\uD615\\uD0DC\\uB85C \\uC778\\uC790\\uB97C \\uC81C\\uACF5\\uD558\\uB294 \\uAC83\\uC774 GNU\\uC758 \\uAD8C\\uC7A5 \\uC0AC\\uD56D\\uC774\\uC9C0\\uB9CC \\uC694\\uC998\\uC740 \\uADF8\\uB0E5 \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"--name value\"), \" \\uD574\\uB3C4 \\uB418\\uB294 \\uAC83 \\uAC19\\uB2E4.\")),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"MLQHwAQvp\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://clig.dev/\"\n    }, \"Command Line Interface Guidelines\"))),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"v1FsyPVLO\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC704\\uC758 \\uB450 \\uAC00\\uC774\\uB4DC\\uB294 \\uB098\\uBCF4\\uB2E4 \\uB098\\uC774\\uB97C \\uBA39\\uC5C8\\uAE30 \\uB54C\\uBB38\\uC5D0 \\uD604\\uB300 \\uCEF4\\uD4E8\\uD305 \\uD658\\uACBD\\uC5D0 \\uB9DE\\uCDB0\\uC11C \\uC791\\uC131\\uB41C \\uAC00\\uC774\\uB4DC\\uB77C\\uC778\\uC774\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"Z_cr71fks\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"Git \\uB4F1\\uC758 CLI \\uC18C\\uD504\\uD2B8\\uC6E8\\uC5B4\\uC5D0\\uC11C \\uD754\\uD788 \\uBCF4\\uC774\\uB294 \\uC11C\\uBE0C\\uCEE4\\uB9E8\\uB4DC \\uB4F1\\uC744 \\uACE0\\uB824 \\uB300\\uC0C1\\uC73C\\uB85C \\uC0BC\\uACE0 \\uC788\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"pDLEoql0y\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC0C1\\uD669\\uC5D0 \\uB530\\uB77C interactive\\uD558\\uC9C0\\uB9CC machine-readable\\uD55C \\uB370\\uC774\\uD130 \\uC5ED\\uC2DC \\uBC1B\\uC544\\uC62C \\uC218 \\uC788\\uB3C4\\uB85D \\uB514\\uC790\\uC778\\uD558\\uB294 \\uBC29\\uC2DD\\uC744 \\uC81C\\uC548\\uD55C\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"GdSC9yIF5\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"--json\"), \", \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"--help\"), \", \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"--no-input\"), \", \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"--plain\"), \", \", mdx(\"inlineCode\", {\n      parentName: \"p\"\n    }, \"--no-color\"), \" \\uB4F1 \\uAD6C\\uD604\\uD558\\uC5EC\\uC57C \\uD558\\uB294 \\uC635\\uC158\\uC758 \\uC774\\uB984\\uC744 \\uBA85\\uD655\\uD558\\uAC8C \\uC81C\\uC548\\uD55C\\uB2E4.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"4M4dUoXIw\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://medium.com/@jdxcode/12-factor-cli-apps-dd3c227a0e46\"\n    }, \"12 Factor CLI Apps\"))),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"is5q4akEb\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/The-twelve-factor-app\",\n      \"title\": \"The twelve-factor app\",\n      \"className\": \" internal-link\"\n    }, \"The twelve-factor app\"), \"\\uC5D0\\uC11C \\uC601\\uAC10\\uC744 \\uC5BB\\uC740 \\uB124\\uC774\\uBC0D\\uC778\\uB4EF\")),\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\": \"posix\"\n  }, \"POSIX\"), mdx(Block, {\n    id: \"YFAJoaDO3\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Unix\",\n      \"title\": \"Unix\",\n      \"className\": \" internal-link\"\n    }, \"Unix\"), \"\\uC758 \\uC778\\uD130\\uD398\\uC774\\uC2A4\\uC640 \\uAD6C\\uC870\\uB97C \\uBA85\\uC2DC\\uD55C \\uD45C\\uC900 \\uBA85\\uC138.\")),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"qxcUYmvmK\",\n    content: mdx(React.Fragment, null, mdx(\"h1\", {\n      \"id\": \"링크\"\n    }, \"\\uB9C1\\uD06C\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"4WuE2TERy\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://pubs.opengroup.org/onlinepubs/9699919799/nframe.html\"\n    }, \"https://pubs.opengroup.org/onlinepubs/9699919799/nframe.html\"))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"8aqcsUj2B\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://en.wikipedia.org/wiki/POSIX\"\n    }, \"https://en.wikipedia.org/wiki/POSIX\"))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"D2nw61O4R\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"http://get.posixcertified.ieee.org/\"\n    }, \"http://get.posixcertified.ieee.org/\"))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"phEGl4tsM\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://www.baeldung.com/linux/posix\"\n    }, \"https://www.baeldung.com/linux/posix\"))),\n    mdxType: \"Block\"\n  })), mdx(Block, {\n    id: \"KJJqfz_SB\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC815\\uD655\\uD55C \\uBA85\\uCE6D\\uC740 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/IEEE\",\n      \"title\": \"IEEE\",\n      \"className\": \" internal-link\"\n    }, \"IEEE\"), \" Std 1003.1 \\uB610\\uB294 POSIX.1\\uB85C \\uBD88\\uB9BC.\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"qVqgtfzvQ\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uD604\\uC7AC \\uCD5C\\uC2E0\\uD310\\uC744 \\uC815\\uD655\\uD558\\uACE0 \\uB9E4\\uC6B0 formal\\uD558\\uAC8C \\uC9C0\\uCE6D\\uD558\\uB824\\uBA74 IEEE Std 1003.1-2017\\uC774\\uB77C \\uBD80\\uB974\\uBA74 \\uB428.\")),\n    mdxType: \"Block\"\n  })));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamPage","id":"9c9db6e6-e004-5234-939a-da314b7565cc","title":"POSIX","fields":{"slug":"/POSIX"}}},{"__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\": \"gnu\"\n  }, \"GNU\"), mdx(Block, {\n    id: \"EumUEHkbJ\",\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;","parent":{"__typename":"RoamPage","id":"413aefb6-9b9b-52b3-b04f-7042d1be266c","title":"GNU","fields":{"slug":"/GNU"}}},{"__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\": \"the-twelve-factor-app\"\n  }, \"The twelve-factor app\"), mdx(Block, {\n    id: \"RJo162PaZ\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://12factor.net/\"\n    }, \"https://12factor.net/\"))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"XFWsm2x0L\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uD604\\uB300 \\uC18C\\uD504\\uD2B8\\uC6E8\\uC5B4\\uC5D0 \\uB9DE\\uCD94\\uC5B4 \\uC11C\\uBE44\\uC2A4 \\uC18C\\uD504\\uD2B8\\uC6E8\\uC5B4\\uB97C \\uC5B4\\uB5BB\\uAC8C \\uC791\\uC131\\uD558\\uACE0 \\uB9CC\\uB4E4\\uC5B4\\uC57C \\uD558\\uB294\\uC9C0\\uC5D0 \\uAD00\\uD55C \\uAC00\\uC774\\uB4DC\\uB77C\\uC778\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamPage","id":"dad76e9e-f96f-5592-aae7-529f2ab44be3","title":"The twelve-factor app","fields":{"slug":"/The-twelve-factor-app"}}}],"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: \"TSZGED97l\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Windows\",\n      \"title\": \"Windows\",\n      \"className\": \" internal-link\"\n    }, \"Windows\"), \"\\uC5D0\\uC11C \\uBCC4\\uB3C4\\uB85C \\uC124\\uCE58\\uD55C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CLI\",\n      \"title\": \"CLI\",\n      \"className\": \" internal-link\"\n    }, \"CLI\"), \" \\uB3C4\\uAD6C\\uB97C \\uC0AC\\uC6A9\\uD558\\uAE30 \\uC704\\uD574 \\uD544\\uC218\\uC801\\uC774\\uB2E4.\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"f440f8ca-d9fe-5096-bb84-d5b13064c1f9","string":"[[Windows]]에서 별도로 설치한 [[CLI]] 도구를 사용하기 위해 필수적이다.","fields":{"parentPage":{"title":"MSYS2","fields":{"slug":"/MSYS2"}},"slug":"/TSZGED97l"}}},{"__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: \"Q1nXPDJ5m\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uC774\\uBBF8\\uC9C0\\uB97C \\uB2E4\\uB8E8\\uAE30 \\uC704\\uD55C \\uC885\\uD569 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/4aeaf\",\n      \"title\": \"라이브러리\",\n      \"className\": \" internal-link\"\n    }, \"\\uB77C\\uC774\\uBE0C\\uB7EC\\uB9AC\"), \" \\uACB8 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CLI\",\n      \"title\": \"CLI\",\n      \"className\": \" internal-link\"\n    }, \"CLI\"), \"\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"e245d4f3-a556-50ba-aa1a-f617cb75c32d","string":"이미지를 다루기 위한 종합 [[라이브러리]] 겸 [[CLI]]","fields":{"parentPage":{"title":"libvips","fields":{"slug":"/libvips"}},"slug":"/Q1nXPDJ5m"}}},{"__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: \"nIuvCKiRc\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://github.com/lovell/avif-cli\"\n    }, \"avif-cli\"), \" - \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CLI\",\n      \"title\": \"CLI\",\n      \"className\": \" internal-link\"\n    }, \"CLI\"), \" \\uB3C4\\uAD6C\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"4437e8e0-bdb9-55ae-bc14-46fa260c403b","string":"[avif-cli](https://github.com/lovell/avif-cli) - [[CLI]] 도구","fields":{"parentPage":{"title":"AVIF","fields":{"slug":"/AVIF"}},"slug":"/nIuvCKiRc"}}},{"__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: \"otzuAGn94\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/GUI\",\n      \"title\": \"GUI\",\n      \"className\": \" internal-link\"\n    }, \"GUI\"), \" \\uD504\\uB85C\\uADF8\\uB7A8\\uC740 \\uC124\\uCE58\\uD558\\uBA74 \\uC790\\uC8FC \\uC2DC\\uC791 \\uBA54\\uB274 \\uC5D4\\uD2B8\\uB9AC\\uAC00 \\uC0AC\\uB77C\\uC9C0\\uAC70\\uB098 \\uD574\\uC11C \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CLI\",\n      \"title\": \"CLI\",\n      \"className\": \" internal-link\"\n    }, \"CLI\"), \" \\uD504\\uB85C\\uADF8\\uB7A8 \\uAD00\\uB9AC\\uC5D0\\uB9CC \\uC4F0\\uB294 \\uAC8C sweet spot\\uC778 \\uB4EF\")),\n    mdxType: \"Block\"\n  }));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"ea055bb5-a165-5090-b811-6e3793e3c530","string":"[[GUI]] 프로그램은 설치하면 자주 시작 메뉴 엔트리가 사라지거나 해서 [[CLI]] 프로그램 관리에만 쓰는 게 sweet spot인 듯","fields":{"parentPage":{"title":"Scoop","fields":{"slug":"/Scoop"}},"slug":"/otzuAGn94"}}},{"__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: \"YLPtWFB42\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uD639\\uC790\\uB294 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/CLI\",\n      \"title\": \"CLI\",\n      \"className\": \" internal-link\"\n    }, \"CLI\"), \"\\uAC00 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/GUI\",\n      \"title\": \"GUI\",\n      \"className\": \" internal-link\"\n    }, \"GUI\"), \"\\uBCF4\\uB2E4 \\uC798 \\uD558\\uB294 \\uAC83\\uC744 \\uB2E8\\uC801\\uC73C\\uB85C \\uBCF4\\uC5EC\\uC8FC\\uB294 \\uC9E4\\uC774\\uB77C \\uD3C9\\uD558\\uAE30\\uB3C4\")),\n    mdxType: \"Block\"\n  }, mdx(Block, {\n    id: \"g6v5C2Aad\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, mdx(\"em\", {\n      parentName: \"p\"\n    }, mdx(\"a\", {\n      parentName: \"em\",\n      \"href\": \"https://twitter.com/jschauma/status/1535652215280508928\"\n    }, \"I love this not only because \\u201Chaha, openssl is so complicated\\u201D, but also because it actually shows how much better a command-line interface is, even and especially for very complex tools.\")))),\n    mdxType: \"Block\"\n  }), mdx(Block, {\n    id: \"Ls0dema0a\",\n    content: mdx(React.Fragment, null, mdx(\"p\", null, \"\\uADFC\\uB370 \\uAC19\\uC740 \\uAE00 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/Hacker-News\",\n      \"title\": \"Hacker News\",\n      \"className\": \" internal-link\"\n    }, \"Hacker News\"), \" \\uC2A4\\uB808\\uB4DC\\uC5D0\\uC11C\\uB294 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"https://hohnstaedt.de/xca/\"\n    }, \"xca\"), \" \\uAC16\\uACE0 \", mdx(\"a\", {\n      parentName: \"p\",\n      \"href\": \"/GUI\",\n      \"title\": \"GUI\",\n      \"className\": \" internal-link\"\n    }, \"GUI\"), \"\\uB85C \\uC778\\uC99D\\uC11C \\uAD00\\uB9AC\\uD574\\uBCF4\\uB2C8\\uAE4C \\uD3B8\\uD558\\uACE0 \\uC88B\\uB358\\uB370? \\uB77C\\uACE0 \\uD568...\")),\n    mdxType: \"Block\"\n  })));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"RoamBlock","id":"4790e5be-b006-59e1-9786-ddb9689d2ad2","string":"혹자는 [[CLI]]가 [[GUI]]보다 잘 하는 것을 단적으로 보여주는 짤이라 평하기도","fields":{"parentPage":{"title":"June 12th, 2022","fields":{"slug":"/June-12th-2022"}},"slug":"/YLPtWFB42"}}}]},"fields":{"slug":"/CLI"}}},"pageContext":{"id":"d59c8b72-2adb-5414-ac33-d577f8883b23"}},"staticQueryHashes":["2131059104","2221750479","2468095761"]}