{"id":2066,"date":"2023-02-28T13:51:38","date_gmt":"2023-02-28T04:51:38","guid":{"rendered":"https:\/\/manvscloud.com\/?p=2066"},"modified":"2023-02-28T13:51:38","modified_gmt":"2023-02-28T04:51:38","slug":"ncloud-%eb%84%a4%ec%9d%b4%eb%b2%84-%ed%81%b4%eb%9d%bc%ec%9a%b0%eb%93%9c-api-%ed%99%9c%ec%9a%a9%ed%95%98%ea%b8%b0-%ec%9d%bc%ea%b0%84-%eb%b3%b4%ea%b3%a0%ec%84%9c-%ec%9e%90%eb%8f%99%ed%99%94","status":"publish","type":"post","link":"https:\/\/manvscloud.com\/?p=2066","title":{"rendered":"[NCLOUD] \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc API \ud65c\uc6a9\ud558\uae30 : \uc77c\uac04 \ubcf4\uace0\uc11c \uc790\ub3d9\ud654 \ud3b8 (\ud6c4\uae30)"},"content":{"rendered":"\n<p>\uc548\ub155\ud558\uc138\uc694. MANVSCLOUD \uae40\uc218\ud604\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p>2023-02-17(\uae08) ~ 2023-02-23(\ubaa9) 1\uc8fc\uac04 \ud1f4\uadfc \ud6c4 \ub0a8\ub294 \uc2dc\uac04\uc744 \ud65c\uc6a9\ud558\uc5ec <br>\ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc \uc77c\uac04 \ubcf4\uace0\uc11c\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\ub294 \uac1c\uc778 \ud504\ub85c\uc81d\ud2b8\ub97c \uc9c4\ud589\ud558\uae30\ub85c \ud588\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>\uc624\ub298\uc740 \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc API\ub97c \uc774\uc6a9\ud558\uc5ec \uc77c\uac04 \ubcf4\uace0\uc11c\ub97c \ub9cc\ub4e0 \ud6c4\uae30\uc5d0 \ub300\ud574 \uc791\uc131\ud574\ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4. \ub2e4\uc218\uc758 API\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubaa8\ub4e0 \uc18c\uc2a4\ub97c \uacf5\uac1c\ud560 \uc218 \uc5c6\uc73c\ubbc0\ub85c \uac1c\ubc1c \uc18c\uc2a4\ub294 \uacf5\uc720\ub418\uc9c0 \uc54a\ub294 \uc810 \ucc38\uace0 \ubd80\ud0c1\ub4dc\ub9bd\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"has-white-color has-vivid-cyan-blue-background-color has-text-color has-background wp-block-heading\"> Motive<\/h3>\n\n\n\n<p>\ubb34\uc5c7\uc774\ub4e0 \uc2dc\uc791\ud568\uc5d0 \uc788\uc5b4 \ub3d9\uae30\uac00 \uc788\ub4ef \uc774\ubc88 \uac1c\uc778 \ud504\ub85c\uc81d\ud2b8 \uc5ed\uc2dc \uc774\uc720\uac00 \uc788\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ol><li><strong>\uac1c\ubc1c \uc5ed\ub7c9 \ubd80\uc871<\/strong><br>: \ub2e4\ub978 \uae30\uc220\ub4e4\uc5d0 \ube44\ud574 \uac1c\ubc1c \uc5ed\ub7c9\uc774 \ubd80\uc871\ud588\uace0, \uac1c\ubc1c\uc5d0 \ub300\ud55c \uacbd\ud5d8\uc774 \uc5c6\uc5b4 \ub2e4\uc591\ud55c \uc5ed\ub7c9 \ud655\ubcf4\uc5d0 \uc788\uc5b4 \ud55c\uacc4\ub97c \ub290\ub08c.<br><\/li><li><strong>\uc77c\uac04 \ubcf4\uace0\uc11c<\/strong><br>: \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc \ud50c\ub7ab\ud3fc\uc744 \uc774\uc6a9\ud558\uc5ec \uc11c\ube44\uc2a4 \uc6b4\uc601 \uc911 \uc6d0\ud558\ub294 \uba54\ud2b8\ub9ad\uc5d0 \ub300\ud55c \uac12\uc744 \ubaa8\uc544 \ubcf4\uace0\uc11c \ud615\ud0dc\ub85c \ubcf4\uace0\uc2f6\ub2e4\ub294 \uc0dd\uac01\uc774 \ub4e6.<br>(\ube44\uc6a9, \ub9ac\uc18c\uc2a4 \uc0ac\uc6a9\ub960, \uc774\ubca4\ud2b8, \ucf58\uc194 \uc811\uc18d \uc5ec\ubd80 \ub4f1 \ud655\uc778\ud558\ub294 \ud398\uc774\uc9c0\uac00 \ubaa8\ub450 \ub2e4\ub984)<\/li><\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"has-white-color has-vivid-green-cyan-background-color has-text-color has-background wp-block-heading\"> How<\/h3>\n\n\n\n<ul><li><strong>\uc5b8\uc5b4<\/strong><br>Python\uc73c\ub85c \uc120\ud0dd\ud588\uc2b5\ub2c8\ub2e4.<br>\uc27d\uac8c \ubc30\uc6b8 \uc218 \uc788\ub294 \uc5b8\uc5b4\uc600\uace0 \uc6f9, \uc778\uacf5\uc9c0\ub2a5, \uc790\ub3d9\ud654 \ub4f1 \uc5d4\uc9c0\ub2c8\uc5b4\uac00 \uad11\ubc94\uc704\ud558\uac8c \ud65c\uc6a9\ud560 \uc218 \uc788\ub294 \uc5b8\uc5b4\ub77c\uace0 \ud310\ub2e8\ud588\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/li><\/ul>\n\n\n\n<ul><li><strong>\uad6c\uc870<\/strong><br>\uad6c\uc870\ub294 \ub2e8\uc21c\ud558\uac8c \ub9cc\ub4e4\uc5b4\uc84c\uc2b5\ub2c8\ub2e4. <br>\uc11c\ubc84 1\ub300\ub97c \uc0dd\uc131\ud588\uace0 pyenv\ub97c \uc774\uc6a9\ud558\uc5ec \ub3c5\ub9bd\ub41c \uacf5\uac04\uc5d0\uc11c python 3.7\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\uc600\uc73c\uba70 html\uc744 pdf\ud30c\uc77c\ub85c \ubcc0\uacbd\ud558\uae30 \uc804 python \uc6f9 \uc5f0\ub3d9\uc744 \uc704\ud574 flask\ub97c \uc124\uce58\ud588\uc2b5\ub2c8\ub2e4.<\/li><\/ul>\n\n\n\n<p>\ub514\ub809\ud1a0\ub9ac\ub294 \/root \ub514\ub809\ud1a0\ub9ac \uc678 \ub2e4\uc218\uc758 User Home \ub514\ub809\ud1a0\ub9ac\ub85c \ubd84\ub9ac\ud558\uc600\uc2b5\ub2c8\ub2e4.<br>\uadf8 \uc774\uc720\ub294 \uac01 \uc5ed\ud560\uc744 \uc644\uc804\ud788 \ubd84\ub9ac\ud558\uae30 \uc704\ud568\uc774\uc5c8\ub294\ub370 \ud06c\uac8c \uc5ed\ud560\uc740 \ub450 \uac00\uc9c0\ub85c \ub098\ub269\ub2c8\ub2e4.<\/p>\n\n\n\n<p><strong>\/root<\/strong> : <br>    mailsender &#8211; \uba54\uc77c \uc804\uc1a1 \ubaa8\ub4c8<br>    pdfmaker &#8211; html\uc744 pdf\ub85c \ubcc0\uacbd\ud574\uc8fc\ub294 \ubaa8\ub4c8<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">.\n\u251c\u2500\u2500 mailsender\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 manvscloud\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 mailRequest.py\n\u251c\u2500\u2500 pdfmaker\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 pdfbox\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 manvscloud\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 nrporter-manvscloud-2023-02-20.pdf\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u251c\u2500\u2500 nrporter-manvscloud-2023-02-21.pdf\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u2514\u2500\u2500 nrporter-manvscloud-2023-02-22.pdf\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 script\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 count\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 urltopdf.sh\n\u2514\u2500\u2500 userinit.sh<\/pre>\n\n\n\n<p>HTML\uc744 PDF\ub85c \ubcc0\uacbd\ud558\ub294 \ubd80\ubd84\uc740 \ud30c\uc774\uc36c\uc758 pdfkit \ubaa8\ub4c8\ub85c \uc0ac\uc6a9\uc774 \uac00\ub2a5\ud558\uc9c0\ub9cc ShellScript\ub85c \ucee8\ud2b8\ub864\ud558\ub294 \uac8c \uac1c\uc778\uc801\uc73c\ub85c \ub354 \ud3b8\ub9ac\ud558\uc5ec \ud574\ub2f9 \ubd80\ubd84\uc740 Python\uc744 \ud65c\uc6a9\ud558\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p>Python\uc744 \ud65c\uc6a9\ud55c\ub2e4\uba74 wkhtmltopdf \uc124\uce58\uac00 \ud544\uc694\ud558\uba70 \ub2e4\uc74c\uacfc \uac19\uc740 \uc608\uc2dc\ub85c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import os\nimport pdfkit\n\nos.environ['DISPLAY'] = ':0'\n\noptions = {'quiet': ''}\nconfig = pdfkit.configuration(wkhtmltopdf='\/usr\/bin\/wkhtmltopdf')\n\nurl = 'http:\/\/localhost:10000'\npdf_path = '..\/pdf\/test.pdf'\n\npdfkit.from_url(url, pdf_path, options=options, configuration=config<\/pre>\n\n\n\n<p>userinit.sh\uc740 \ucd08\uae30 \uc720\uc800 \uc0dd\uc131 \ubc0f \uc124\uc815\uc6a9\uc73c\ub85c \uc720\uc800 \uc0dd\uc131 \uc2dc \/etc\/skel\uc5d0\uc11c \uac00\uc838\uc628 \ub370\uc774\ud130 \uc911 \ubcc0\uacbd\ud574\uc57c\ud558\ub294 \ubd80\ubd84\uacfc \/root\/mailsender, \/root\/pdfbox\uc5d0 username\uc758 \ub514\ub809\ud1a0\ub9ac \ubc0f \ubaa8\ub4c8 \ucd94\uac00 \uc791\uc5c5\uc774 \uc9c4\ud589\ub41c\ub2e4.<\/p>\n\n\n\n<p><strong>\/USERHOME<\/strong> : <br>    flask\uc758 app.py &#8211; \uc6f9 \uc11c\ubc84 \uad6c\ub3d9<br>    module &#8211; \ub9ac\ud3ec\ud2b8\uc5d0 \uc5f0\uacb0\ub418\ub294 \uac01 \uae30\ub2a5\ub4e4\uc5d0 \ub300\ud55c \ubaa8\ub4c8 \ubaa8\uc74c \ub514\ub809\ud1a0\ub9ac<br>    static &#8211; \ub300\uc2dc\ubcf4\ub4dc \uc774\ubbf8\uc9c0\uac00 \uc800\uc7a5\ub418\ub294 images \ub514\ub809\ud1a0\ub9ac \ubc0f css \ud30c\uc77c\uc774 \uc800\uc7a5\ub418\ub294 static \ub514\ub809\ud1a0\ub9ac<br>    templates &#8211; html \ud30c\uc77c\uc774 \uc800\uc7a5\ub418\ub294 \ub514\ub809\ud1a0\ub9ac<\/p>\n\n\n\n<p>\uc704 \uad6c\uc870\ub9cc \ubcf4\uba74 \uc54c \uc218 \uc788\ub4ef \ub9cc\ub4e4\uc5b4\uc9c4 \ud574\ub2f9 \uc2dc\uc2a4\ud15c\uc740 \ud558\ub098\uc758 \uacc4\uc815\uc5d0 \ub300\ud574\uc11c\ub9cc \ub9ac\ud3ec\ud2b8\ub97c \uc0dd\uc131\ud574\uc8fc\uae30\ubcf4\ub2e4 \uc0c8\ub85c\uc6b4 \uacc4\uc815\uc774 \ucd94\uac00\ub420 \ub54c\ub9c8\ub2e4 userinit.sh \uc2a4\ud06c\ub9bd\ud2b8\ub97c \ud1b5\ud574 user\ub97c \uc0dd\uc131\ud558\uace0 User\ubcc4 \uc815\ubcf4, Access Key\uc5d0 \ub530\ub77c \uac01\uac01 \ub2e4\ub978 \ub9ac\ud3ec\ud2b8 \uc0dd\uc131 \ubc0f User\ubcc4 \uba54\uc77c \uc804\uc1a1\uc774 \uac00\ub2a5\ud558\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<ul><li><strong>\ub9ac\ud3ec\ud2b8 \uc11c\ube44\uc2a4 \ud558\ub098 \ub9cc\ub4e4\uc790\uace0 \uc11c\ubc84\ub97c \ud558\ub098 \ub9cc\ub4e4\uae30\uc5d4 \uc6d4 \uc11c\ubc84 \ube44\uc6a9\uc774 \uac71\uc815\ub41c\ub2e4?<\/strong><br>\ube44\uc6a9 \uc808\uac10\ub9cc \ubaa9\uc801\uc774\ub77c\uba74 \ub3c8\uc744 \ubc8c \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc11c\ube44\uc2a4\ub85c \uc218\uc775\uc744 \ub0b4\uace0 \uc11c\ube44\uc2a4\uc5d0 \ub9de\uac8c \ube44\uc6a9\uc744 \ucd5c\uc801\ud654 \ud558\uc2ed\uc2dc\uc624. \ube44\uc6a9\uc744 \uc904\uc774\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \ub3c8\uc744 \ubc8c\uc5b4\uc57c\ud569\ub2c8\ub2e4.<br><br><em>1. \uc774 \uc11c\ube44\uc2a4\ub294 \uc790\uc6d0 \uc0ac\uc6a9\ub7c9\uc774 \ub9e4\uc6b0 \ub0ae\uc2b5\ub2c8\ub2e4.  <\/em><br>      <em>&#8211;  \ucd5c\uc800 \uc0ac\uc591\uc73c\ub85c \uc11c\ubc84\ub97c \uc0dd\uc131\ud569\ub2c8\ub2e4.<\/em><br><em><br>2. \uc774 \uc11c\ube44\uc2a4\ub294 00:00 \uc2dc\uac01\uc5d0 \ub9de\ucdb0 \uc2dc\uc791\ud558\uc5ec \uba87\ubd84 \ub0b4\uc678\ub85c \uc791\uc5c5\uc744 \ub9c8\uce69\ub2c8\ub2e4.  <\/em><br>      <em>&#8211;  Cloud Function\uc744 \uc774\uc6a9\ud558\uc5ec \uc0ac\uc6a9 \uc2dc\uac04\uc5d0\ub9cc \uc11c\ubc84\ub97c \uc2dc\uc791\ud558\uace0 \uc791\uc5c5\uc774 \ub05d\ub098\uba74 \uc911\uc9c0\uc2dc\ud0b5\ub2c8\ub2e4.<\/em><br><br>(High CPU 2vCPU Mem 4GB HDD \uae30\uc900\uc73c\ub85c \uc6d4 \uc57d 6.9\ub9cc\uc6d0\uc758 \ube44\uc6a9\uc778\ub370 \uc704\uc640 \uac19\uc774 \uc124\uc815\ub9cc\ud574\ub3c4 \uc6d4 5\ucc9c\uc6d0 \ube44\uc6a9\uc73c\ub85c \ucd5c\uc801\ud654\ub420 \uac83\uc785\ub2c8\ub2e4.)<\/li><\/ul>\n\n\n<div class=\"vlp-link-container vlp-layout-basic wp-block-visual-link-preview-link\"><a href=\"https:\/\/manvscloud.com\/?p=1803\" class=\"vlp-link\" title=\"[NCLOUD] Cloud Function\uc73c\ub85c \uc6d0\ud558\ub294 \uc2dc\uac04\ub300\uc5d0 \uc11c\ubc84\ub97c \uc2dc\uc791\ud558\uace0 \uc911\uc9c0\ud558\uc790\" rel=\"nofollow\" target=\"_blank\"><\/a><div class=\"vlp-layout-zone-side\"><div class=\"vlp-block-2 vlp-link-image\"><img decoding=\"async\" src=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2022\/08\/29002726\/serverless-1024x724.png\" style=\"max-width: 150px; max-height: 150px\" \/><\/div><\/div><div class=\"vlp-layout-zone-main\"><div class=\"vlp-block-0 vlp-link-title\">[NCLOUD] Cloud Function\uc73c\ub85c \uc6d0\ud558\ub294 \uc2dc\uac04\ub300\uc5d0 \uc11c\ubc84\ub97c \uc2dc\uc791\ud558\uace0 \uc911\uc9c0\ud558\uc790<\/div><div class=\"vlp-block-1 vlp-link-summary\">\uc548\ub155\ud558\uc138\uc694. ManVSCloud \uae40\uc218\ud604\uc785\ub2c8\ub2e4. \ucd5c\uadfc\uc5d0\ub294 Shell Script\uac00 \uc544\ub2cc Python\uc744 \uc0ac\uc6a9\ud574\ubcf4\uba70 \uc870\uae08\uc529 \uac1c\ubc1c \uc601\uc5ed\uae4c\uc9c0 \ub3c4\uc804\ud574\ubcf4\ub294 \uc2dc\uac04\uc744 \uac16\uace0 \uc788\uc2b5\ub2c8\ub2e4. Shell Script\ub85c \uc81c\uac00 \ud544\uc694\ud55c \uac83\ub4e4\ub9cc \ub9cc\ub4e4\uc5b4\ubd24\uc9c0 \uc815\uc791 \uc81c\ub300\ub85c\ub41c \uac1c\ubc1c \uacf5\ubd80\ub97c \ud574\ubcf8 \uc801\uc774 \uc5c6\uc5b4\uc11c \ucc98\uc74c Python\uc740 \uc5b4\ub5bb\uac8c \uc2dc\uc791\ud574\uc57c\ud558\ub098 \ub9c9\ub9c9\ud588\ub294\ub370 \uc544\ubb34\ub798\ub3c4 \ud544\uc694\ud55c \uac83\uc744 \uc9c1\uc811 \ub9cc\ub4e4\uba74\uc11c \ubc30\uc6b0\ub294 \uac8c \ub098\uc744 \uac83\uac19\ub2e4\uace0 \ud310\ub2e8\ud558\uc5ec \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc \ud50c\ub7ab\ud3fc\uc758 Cloud Function\uc73c\ub85c \uc11c\ubc84\ub97c \uc2dc\uc791\ud558\uace0 \uc911\uc9c0\ud558\ub294 \uac83\ubd80\ud130 \uc2dc\uc791\ud574\ubcf4\uc790\uace0 \uc0dd\uac01\ud588\uc2b5\ub2c8\ub2e4. \uc624\ub298\uc740 \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc\uc758 Server\u2026<\/div><\/div><\/div>\n\n\n<ul><li><strong>\ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc API \ud65c\uc6a9<\/strong><br>\uc774 \ubd80\ubd84\uc774 \uc624\ub298 \ud3ec\uc2a4\ud305\uc758 \ud575\uc2ec\uc774\uae30\ub3c4 \ud569\ub2c8\ub2e4.<br>\ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc\ub294 \uc0ac\uc6a9\uc790\uc5d0\uac8c \ub2e4\uc591\ud55c API\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/li><\/ul>\n\n\n<div class=\"vlp-link-container vlp-layout-basic wp-block-visual-link-preview-link\"><a href=\"https:\/\/api.ncloud-docs.com\/docs\/ko\/home\" class=\"vlp-link\" title=\"NCLOUD API Guide - HOME\" rel=\"nofollow\" target=\"_blank\"><\/a><div class=\"vlp-layout-zone-side\"><div class=\"vlp-block-2 vlp-link-image\"><img loading=\"lazy\" decoding=\"async\" style=\"max-width: 150px;\" width=\"150\" height=\"150\" src=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2022\/08\/22130310\/ncloud.png\" class=\"attachment-150x999 size-150x999\" alt=\"\" srcset=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2022\/08\/22130310\/ncloud.png 161w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2022\/08\/22130310\/ncloud-150x150.png 150w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/div><\/div><div class=\"vlp-layout-zone-main\"><div class=\"vlp-block-0 vlp-link-title\">NCLOUD API Guide &#8211; HOME<\/div><div class=\"vlp-block-1 vlp-link-summary\">\ub124\uc774\ubc84\ud074\ub77c\uc6b0\ub4dc\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \ub2e4\uc591\ud55c API\ub97c \ubcf4\ub2e4 \uc27d\uace0 \ube60\ub974\uac8c \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uc790\uc138\ud55c \uc124\uba85\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/div><\/div><\/div>\n\n\n<p>API\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \uc608\uc2dc\ucc98\ub7fc \uc0ac\uc6a9\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import sys\nimport os\nimport hashlib\nimport hmac\nimport base64\nimport requests\nimport time\nimport json\nimport datetime\n\ndef getActivityList():\n\n    active_data = []\n\n    timestamp = int(time.time() * 1000)\n    timestamp = str(timestamp)\n\n    access_key = os.environ['NCLOUD_ACCESS_KEY']\n    secret_key = os.environ['NCLOUD_SECRET_KEY']\n    secret_key = bytes(secret_key, 'UTF-8')\n\n    method = \"POST\"\n\n    api_server = \"https:\/\/cloudactivitytracer.apigw.ntruss.com\"\n    uri = \"\/api\/v1\/activities\"\n    uri = uri + \"?responseFormatType=json\"\n\n    message = method + \" \" + uri + \"\\n\" + timestamp + \"\\n\" + access_key\n    message = bytes(message, 'UTF-8')\n    signingKey = base64.b64encode(hmac.new(secret_key, message, digestmod=hashlib.sha256).digest())\n\n\n    http_header = {\n            'x-ncp-apigw-signature-v2': signingKey,\n            'x-ncp-apigw-timestamp': timestamp,\n            'x-ncp-iam-access-key': access_key,\n            }\n\n\n    ms = time.time_ns() \/\/ 1_000_000\n    start_time = ms - 86400000\n    start_time = str(start_time)\n\n\n    payload = {\n            \"fromEventTime\": start_time,\n            \"pageSize\": 100\n       }\n\n    response = requests.post(api_server + uri, headers=http_header, json=payload)\n\n    data = json.loads(response.text)\n\n    for item in data['items']:\n        if item['actionDisplayName'] == 'Login':\n\n            event_dt = datetime.datetime.fromtimestamp(item['eventTime']\/1000)\n            event_date = event_dt.strftime(\"%Y\ub144 %m\uc6d4 %d\uc77c %H\uc2dc %M\ubd84 %S\ucd08\")\n            client_country = item['productData']['clientIpCountry']\n            client_ip = item['productData']['clientIp']\n            user_name = item['productData']['userName']\n\n\n            active_data.append({\n                \"event_time\": event_date,\n                \"country\": client_country,\n                \"client\": client_ip,\n                \"username\": user_name\n                })\n\n    return active_data<\/pre>\n\n\n\n<p>\ud574\ub2f9 \uc77c\uac04 \ubcf4\uace0\uc11c\ub97c \uc0dd\uc131 \ud558\ub294 \uc11c\ube44\uc2a4\uc5d0 \uc0ac\uc6a9\ub41c \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc API\ub294 Platform &#8211; getDemandCostList , Cloud Outbound Mailer &#8211; createMailRequest , Cloud Outbound Mailer &#8211; createFile , Cloud Activity Tracer &#8211; GetActivityList , Cloud Insight &#8211; GetDashboardList , Cloud Insight &#8211; GetDashboardWidgetList , Cloud Insight &#8211; GetDashboardWidgetImage , Cloud Insight &#8211; QueryData ,  Cloud Insight &#8211; SearchEvent \ub4f1 \uc57d 20\uac1c\uc5d0 \uac00\uae4c\uc6b4 API\uac00 \uc0ac\uc6a9\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul><li><strong>Cloud Insight Dashboard<\/strong><br>\uc0dd\uc131\ub41c \uc77c\uac04 \ub9ac\ud3ec\ud2b8\uc5d0 \ub4e4\uc5b4\uac08 \ub300\uc2dc\ubcf4\ub4dc \uc774\ubbf8\uc9c0\ub294 Cloud Insight\uc758 Dashboard\uc5d0\uc11c \uba3c\uc800 \uc0dd\uc131\ub418\uc5b4\uc57c\ud569\ub2c8\ub2e4. Dashboard\uc5d0\uc11c \uc0dd\uc131\ud574\ub454 \uc704\uc82f\ub4e4\uc744 \uc774\ubbf8\uc9c0 \ud615\ud0dc\ub85c \uac00\uc838\uc640 \uc77c\uac04 \ubcf4\uace0\uc11c\uc5d0 \ucca8\ubd80\ub418\ub3c4\ub85d \ud558\uc600\uc2b5\ub2c8\ub2e4.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"745\" src=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28133321\/cloud-insight-dashboard-1024x745.png\" alt=\"\" class=\"wp-image-2075\" srcset=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28133321\/cloud-insight-dashboard-1024x745.png 1024w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28133321\/cloud-insight-dashboard-300x218.png 300w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28133321\/cloud-insight-dashboard-768x559.png 768w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28133321\/cloud-insight-dashboard-1080x786.png 1080w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28133321\/cloud-insight-dashboard.png 1289w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul><li><strong>Cloud Outbound Mailer<\/strong><br>\uba54\uc77c\uc740 Cloud Outbound Mailer\ub97c \uc774\uc6a9\ud558\uc5ec \uba54\uc77c\uc774 \ubc1c\uc2e0\ub418\ub3c4\ub85d \uc124\uc815\ud558\uc600\uc2b5\ub2c8\ub2e4.<br>API\ub97c \uc774\uc6a9\ud558\uc5ec \uc790\ub3d9\ud654 \ud558\uae30 \uc804 \ub3c4\uba54\uc778 \ub4f1\ub85d \ubc0f \uc778\uc99d \uc791\uc5c5\uc774 \uc644\ub8cc\ub418\uc5b4\uc788\uc5b4\uc57c\ud569\ub2c8\ub2e4.<br><br><em>&#8220;Cloud Outbound Mailer \uc0dd\uc131 \ubc0f \ub3c4\uba54\uc778 \uc778\uc99d \ub4f1 \uc0ac\uc6a9\ubc95\uc5d0 \ub300\ud55c \ub0b4\uc6a9\uc740 \ud574\ub2f9 \ud3ec\uc2a4\ud305\uc758 \uc8fc\uc81c\uc640 \uac70\ub9ac\uac00 \uba40\uc5b4 \uc791\uc131\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. \uac00\uc774\ub4dc\uac00 \ud544\uc694\ud558\uc2e0 \uacbd\uc6b0 \ub313\uae00\ub85c \ub0a8\uaca8\uc8fc\uc2dc\uba74 \ub530\ub85c \ud3ec\uc2a4\ud305 \uc900\ube44\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.&#8221;<\/em><\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"565\" src=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131647\/cloud-outbound-mailer-1024x565.png\" alt=\"\" class=\"wp-image-2073\" srcset=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131647\/cloud-outbound-mailer-1024x565.png 1024w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131647\/cloud-outbound-mailer-300x166.png 300w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131647\/cloud-outbound-mailer-768x424.png 768w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131647\/cloud-outbound-mailer-1080x596.png 1080w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131647\/cloud-outbound-mailer.png 1275w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>createMailRequest API\ub97c \uc774\uc6a9\ud558\uc5ec \uba54\uc77c\uc774 \ubc1c\uc1a1\ub418\uba74 \ucf58\uc194\uc5d0\uc11c \uc544\ub798\uc640 \uac19\uc774 [\ubc1c\uc1a1\uc131\uacf5] \uc0c1\ud0dc\ub97c \ud655\uc778\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br>(\ud30c\uc77c \ucca8\ubd80 \ud544\uc694 \uc2dc createFile API\ub3c4 \ud568\uaed8 \uc0ac\uc6a9\ud574\uc918\uc57c \ud569\ub2c8\ub2e4.)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"312\" src=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131757\/outbound-mailer-1024x312.png\" alt=\"\" class=\"wp-image-2074\" srcset=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131757\/outbound-mailer-1024x312.png 1024w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131757\/outbound-mailer-300x91.png 300w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131757\/outbound-mailer-768x234.png 768w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131757\/outbound-mailer-1536x467.png 1536w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131757\/outbound-mailer-1080x329.png 1080w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131757\/outbound-mailer.png 1640w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"has-white-color has-vivid-red-background-color has-text-color has-background wp-block-heading\"> Result<\/h3>\n\n\n\n<ol><li><strong>\ub9e4\uc77c 00\uc2dc\uc5d0 Report \uc11c\ubc84\uac00 \uc2dc\uc791<\/strong>\ud569\ub2c8\ub2e4. (Cloud Function \ud65c\uc6a9)<\/li><li><strong>\uc2dc\uc791\ub41c \uc11c\ubc84\ub294 Cloud Insight\uc5d0\uc11c Widget \uc774\ubbf8\uc9c0\ub97c \uac00\uc838\uc624\uba70 app.py\uac00 \uc2e4\ud589<\/strong>\ub429\ub2c8\ub2e4.<\/li><li><strong>\uc2e4\ud589 \ud6c4 USER\ubcc4 \ubcf4\uace0\uc11c URL\uc740 PDF \ud30c\uc77c\ub85c \ubcc0\ud658<\/strong>\ub429\ub2c8\ub2e4. (HTML to PDF) <br> \u2192 USER\ub294 \ud3ec\ud2b8\ubcc4\ub85c \ubd84\ub9ac\ub428. (http:\/\/localbost:10000, http:\/\/localbost:10001 &#8230; )<\/li><li><strong>\uc0dd\uc131\ub41c PDF \ud30c\uc77c\uc740 USER\ubcc4 \uc9c0\uc815\ub41c \uc218\uc2e0 \uc774\uba54\uc77c\ub85c \ubc1c\uc1a1<\/strong>\ub429\ub2c8\ub2e4.<\/li><li><strong>\uc791\uc5c5 \uc2e4\ud328 \uc2dc \uc7ac\uc2e4\ud589 \ub610\ub294 \uc791\uc5c5\uc774 \uc644\ub8cc \uc2dc \uc11c\ubc84\ub294 \uc885\ub8cc<\/strong>\ub429\ub2c8\ub2e4.<\/li><\/ol>\n\n\n\n<p>\uc544\ub798\ub294 \uc644\uc131\ub41c <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-cyan-blue-color\"><strong>&#8216;\ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc \uc77c\uac04 \ubcf4\uace0\uc11c&#8217;<\/strong><\/mark>\uc785\ub2c8\ub2e4.<br>\ub2e4\uc591\ud55c API\ub97c \ud65c\uc6a9\ud558\uc5ec \ud544\uc694\ud55c \ub370\uc774\ud130\uac00 \ud558\ub098\uc758 \ubcf4\uace0\uc11c\uc5d0 \ubaa8\ub450 \uc800\uc7a5\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"724\" height=\"1024\" src=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131142\/nrporter-manvscloud-2023-02-23-1-724x1024.png\" alt=\"\" class=\"wp-image-2071\" srcset=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131142\/nrporter-manvscloud-2023-02-23-1-724x1024.png 724w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131142\/nrporter-manvscloud-2023-02-23-1-212x300.png 212w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131142\/nrporter-manvscloud-2023-02-23-1-768x1086.png 768w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131142\/nrporter-manvscloud-2023-02-23-1-1086x1536.png 1086w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131142\/nrporter-manvscloud-2023-02-23-1-1448x2048.png 1448w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131142\/nrporter-manvscloud-2023-02-23-1-1080x1527.png 1080w\" sizes=\"(max-width: 724px) 100vw, 724px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"761\" src=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131158\/nrporter-manvscloud-2023-02-23-2-1024x761.png\" alt=\"\" class=\"wp-image-2072\" srcset=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131158\/nrporter-manvscloud-2023-02-23-2-1024x761.png 1024w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131158\/nrporter-manvscloud-2023-02-23-2-300x223.png 300w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131158\/nrporter-manvscloud-2023-02-23-2-768x571.png 768w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131158\/nrporter-manvscloud-2023-02-23-2-1536x1142.png 1536w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131158\/nrporter-manvscloud-2023-02-23-2-2048x1523.png 2048w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2023\/02\/28131158\/nrporter-manvscloud-2023-02-23-2-1080x803.png 1080w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>API\ub97c \uc774\uc6a9\ud558\uc5ec \uc6d0\ud558\ub294 \ub370\uc774\ud130\uac00 \ub2f4\uae34 \uc790\uc2e0\ub9cc\uc758 \uc77c\uac04 \ubcf4\uace0\uc11c\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"has-white-color has-cyan-bluish-gray-background-color has-text-color has-background wp-block-heading\"> Personal Comments<\/h3>\n\n\n\n<p>\uac1c\ubc1c \uc18c\uc2a4 \uacf5\uc720\uc694?&#8230; \uc18c\uc2a4\uac00 \uaf64 \ub9ce\uae30\ub3c4\ud558\uace0 &#8230;<br>\ubb34\uc5c7\ubcf4\ub2e4 \uac1c\ubc1c\uc774\ub77c \ud558\uae30\uc5d4 \ub108\ubb34 \uc26c\uc6b4?&#8230; <\/p>\n\n\n\n<p>\ud1f4\uadfc \ud6c4 1~2\uc2dc\uac04\uc529\ub9cc \ud22c\uc790\ud574\ub3c4 1\uc8fc\uc77c\ub3c4 \uc548\ub3fc\uc11c \ub9cc\ub4e4\uc5b4\uc9c0\ub294 \ucf54\ub4dc\ub77c \uace0\uc218\ubd84\ub4e4\uc740 \ub2f9\uc5f0\ud788 \ub9cc\ub4dc\uc2e4 \uc218 \uc788\uc744 \uac83\uc774\ub77c \uacf5\uc720\uac00 \ud544\uc694 \uc5c6\uc744 \uac83\uc774\uace0 \ucd08\ubcf4\uc790 \ubd84\ub4e4\uc740 Python \uacbd\ud5d8\uc73c\ub85c \uc88b\uc740 \uacfc\uc81c\ub77c \uc0dd\uac01\ub418\ubbc0\ub85c \uc18c\uc2a4\ub294 \uacf5\uc720\ud558\uc9c0 \uc54a\ub3c4\ub85d \ud558\uaca0\uc2b5\ub2c8\ub2e4. <\/p>\n\n\n\n<p>\uae34 \uae00 \uc77d\uc5b4\uc8fc\uc154\uc11c \uac10\uc0ac\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"773\" height=\"133\" src=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2021\/08\/12204137\/Ncloud_Master_logo.png\" alt=\"\" class=\"wp-image-1229\" srcset=\"https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2021\/08\/12204137\/Ncloud_Master_logo.png 773w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2021\/08\/12204137\/Ncloud_Master_logo-300x52.png 300w, https:\/\/cdn.manvscloud.com\/wp-content\/uploads\/2021\/08\/12204137\/Ncloud_Master_logo-768x132.png 768w\" sizes=\"(max-width: 773px) 100vw, 773px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>\uc548\ub155\ud558\uc138\uc694. MANVSCLOUD \uae40\uc218\ud604\uc785\ub2c8\ub2e4. 2023-02-17(\uae08) ~ 2023-02-23(\ubaa9) 1\uc8fc\uac04 \ud1f4\uadfc \ud6c4 \ub0a8\ub294 \uc2dc\uac04\uc744 \ud65c\uc6a9\ud558\uc5ec \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc \uc77c\uac04 \ubcf4\uace0\uc11c\ub97c \ub9cc\ub4e4\uc5b4\ubcf4\ub294 \uac1c\uc778 \ud504\ub85c\uc81d\ud2b8\ub97c \uc9c4\ud589\ud558\uae30\ub85c \ud588\uc2b5\ub2c8\ub2e4. \uc624\ub298\uc740 \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc API\ub97c \uc774\uc6a9\ud558\uc5ec \uc77c\uac04 \ubcf4\uace0\uc11c\ub97c \ub9cc\ub4e0 \ud6c4\uae30\uc5d0 \ub300\ud574 \uc791\uc131\ud574\ubcf4\ub824\uace0 \ud569\ub2c8\ub2e4. \ub2e4\uc218\uc758 API\ub97c \uc0ac\uc6a9\ud558\uc5ec \ubaa8\ub4e0 \uc18c\uc2a4\ub97c \uacf5\uac1c\ud560 \uc218 \uc5c6\uc73c\ubbc0\ub85c \uac1c\ubc1c \uc18c\uc2a4\ub294 \uacf5\uc720\ub418\uc9c0 \uc54a\ub294 \uc810 \ucc38\uace0 \ubd80\ud0c1\ub4dc\ub9bd\ub2c8\ub2e4. Motive \ubb34\uc5c7\uc774\ub4e0 \uc2dc\uc791\ud568\uc5d0 \uc788\uc5b4 \ub3d9\uae30\uac00 \uc788\ub4ef \uc774\ubc88 \uac1c\uc778 \ud504\ub85c\uc81d\ud2b8 \uc5ed\uc2dc \uc774\uc720\uac00 \uc788\uc5c8\uc2b5\ub2c8\ub2e4. \uac1c\ubc1c \uc5ed\ub7c9 \ubd80\uc871: \ub2e4\ub978 \uae30\uc220\ub4e4\uc5d0 \ube44\ud574 \uac1c\ubc1c \uc5ed\ub7c9\uc774 \ubd80\uc871\ud588\uace0, \uac1c\ubc1c\uc5d0 \ub300\ud55c \uacbd\ud5d8\uc774 \uc5c6\uc5b4 \ub2e4\uc591\ud55c \uc5ed\ub7c9 \ud655\ubcf4\uc5d0 \uc788\uc5b4 \ud55c\uacc4\ub97c \ub290\ub08c. \uc77c\uac04 \ubcf4\uace0\uc11c: \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc \ud50c\ub7ab\ud3fc\uc744 \uc774\uc6a9\ud558\uc5ec \uc11c\ube44\uc2a4 \uc6b4\uc601 \uc911 \uc6d0\ud558\ub294 \uba54\ud2b8\ub9ad\uc5d0 \ub300\ud55c \uac12\uc744 \ubaa8\uc544 \ubcf4\uace0\uc11c \ud615\ud0dc\ub85c \ubcf4\uace0\uc2f6\ub2e4\ub294 \uc0dd\uac01\uc774 \ub4e6.(\ube44\uc6a9, \ub9ac\uc18c\uc2a4 \uc0ac\uc6a9\ub960, \uc774\ubca4\ud2b8, \ucf58\uc194 \uc811\uc18d \uc5ec\ubd80 \ub4f1 \ud655\uc778\ud558\ub294 \ud398\uc774\uc9c0\uac00 \ubaa8\ub450 \ub2e4\ub984) How \uc5b8\uc5b4Python\uc73c\ub85c \uc120\ud0dd\ud588\uc2b5\ub2c8\ub2e4.\uc27d\uac8c \ubc30\uc6b8 \uc218 \uc788\ub294 \uc5b8\uc5b4\uc600\uace0 \uc6f9, \uc778\uacf5\uc9c0\ub2a5, \uc790\ub3d9\ud654 \ub4f1 \uc5d4\uc9c0\ub2c8\uc5b4\uac00 \uad11\ubc94\uc704\ud558\uac8c \ud65c\uc6a9\ud560 \uc218 \uc788\ub294 \uc5b8\uc5b4\ub77c\uace0 \ud310\ub2e8\ud588\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4. \uad6c\uc870\uad6c\uc870\ub294 \ub2e8\uc21c\ud558\uac8c \ub9cc\ub4e4\uc5b4\uc84c\uc2b5\ub2c8\ub2e4. \uc11c\ubc84 1\ub300\ub97c \uc0dd\uc131\ud588\uace0 pyenv\ub97c \uc774\uc6a9\ud558\uc5ec \ub3c5\ub9bd\ub41c \uacf5\uac04\uc5d0\uc11c python 3.7\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \ud558\uc600\uc73c\uba70 html\uc744 pdf\ud30c\uc77c\ub85c \ubcc0\uacbd\ud558\uae30 \uc804 python \uc6f9 \uc5f0\ub3d9\uc744 \uc704\ud574 flask\ub97c \uc124\uce58\ud588\uc2b5\ub2c8\ub2e4. \ub514\ub809\ud1a0\ub9ac\ub294 \/root \ub514\ub809\ud1a0\ub9ac \uc678 \ub2e4\uc218\uc758 User Home \ub514\ub809\ud1a0\ub9ac\ub85c \ubd84\ub9ac\ud558\uc600\uc2b5\ub2c8\ub2e4.\uadf8 \uc774\uc720\ub294 \uac01 \uc5ed\ud560\uc744 \uc644\uc804\ud788 \ubd84\ub9ac\ud558\uae30 \uc704\ud568\uc774\uc5c8\ub294\ub370 \ud06c\uac8c \uc5ed\ud560\uc740 \ub450 \uac00\uc9c0\ub85c \ub098\ub269\ub2c8\ub2e4. \/root : mailsender &#8211; \uba54\uc77c \uc804\uc1a1 \ubaa8\ub4c8 pdfmaker &#8211; html\uc744 pdf\ub85c \ubcc0\uacbd\ud574\uc8fc\ub294 \ubaa8\ub4c8 HTML\uc744 PDF\ub85c \ubcc0\uacbd\ud558\ub294 \ubd80\ubd84\uc740 \ud30c\uc774\uc36c\uc758 pdfkit \ubaa8\ub4c8\ub85c \uc0ac\uc6a9\uc774 \uac00\ub2a5\ud558\uc9c0\ub9cc ShellScript\ub85c \ucee8\ud2b8\ub864\ud558\ub294 \uac8c \uac1c\uc778\uc801\uc73c\ub85c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"[NCLOUD] \ub124\uc774\ubc84 \ud074\ub77c\uc6b0\ub4dc API \ud65c\uc6a9\ud558\uae30 : \uc77c\uac04 \ubcf4\uace0\uc11c \uc790\ub3d9\ud654 \ud3b8 (\ud6c4\uae30)","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3],"tags":[249,457,657,767,770,32,87,91,17,90,16,768,126,765,120,89,202,764,398,769,766,584],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/manvscloud.com\/index.php?rest_route=\/wp\/v2\/posts\/2066"}],"collection":[{"href":"https:\/\/manvscloud.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/manvscloud.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/manvscloud.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/manvscloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2066"}],"version-history":[{"count":6,"href":"https:\/\/manvscloud.com\/index.php?rest_route=\/wp\/v2\/posts\/2066\/revisions"}],"predecessor-version":[{"id":2188,"href":"https:\/\/manvscloud.com\/index.php?rest_route=\/wp\/v2\/posts\/2066\/revisions\/2188"}],"wp:attachment":[{"href":"https:\/\/manvscloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2066"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/manvscloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2066"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/manvscloud.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2066"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}