{"id":577,"date":"2023-05-25T01:41:58","date_gmt":"2023-05-24T16:41:58","guid":{"rendered":"https:\/\/www.gyuroot.com\/wordpress\/?p=577"},"modified":"2023-07-03T17:57:54","modified_gmt":"2023-07-03T08:57:54","slug":"project-serverless%eb%a5%bc-%ec%9d%b4%ec%9a%a9%ed%95%9c-lambdasqs-%ec%83%9d%ec%84%b1-%eb%b0%8f-%ec%84%b1%eb%8a%a5-%ed%85%8c%ec%8a%a4%ed%8a%b8","status":"publish","type":"post","link":"https:\/\/www.gyuroot.com\/wordpress\/?p=577","title":{"rendered":"[Project] Serverless Framework\ub97c \uc774\uc6a9\ud558\uc5ec \uc790\ub3d9 \uc7ac\uace0 \ud655\ubcf4 \uc2dc\uc2a4\ud15c \uad6c\ud604\ud558\uae30"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_63 counter-hierarchy ez-toc-counter ez-toc-white ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >\ubaa9\ucc28<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EA%B0%9C%EC%9A%94\" title=\"\ud504\ub85c\uc81d\ud2b8 \uac1c\uc694\">\ud504\ub85c\uc81d\ud2b8 \uac1c\uc694<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4\" title=\"\ud504\ub85c\uc81d\ud2b8 \uc2dc\ub098\ub9ac\uc624\">\ud504\ub85c\uc81d\ud2b8 \uc2dc\ub098\ub9ac\uc624<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Day_1_%E2%80%93_Tutorial%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%A0%84_%EC%82%AC%EC%A0%84_%ED%95%99%EC%8A%B5_%EB%B0%8F_%EC%97%B0%EC%8A%B5\" title=\"Day 1 &#8211; Tutorial(\ud504\ub85c\uc81d\ud2b8\uc804 \uc0ac\uc804 \ud559\uc2b5 \ubc0f \uc5f0\uc2b5)\">Day 1 &#8211; Tutorial(\ud504\ub85c\uc81d\ud2b8\uc804 \uc0ac\uc804 \ud559\uc2b5 \ubc0f \uc5f0\uc2b5)<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EC%82%AC%EC%A0%84_%ED%95%99%EC%8A%B5\" title=\"\uc0ac\uc804 \ud559\uc2b5\">\uc0ac\uc804 \ud559\uc2b5<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Serverless_Framework%EB%9E%80\" title=\"Serverless Framework\ub780?\">Serverless Framework\ub780?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#SQS%EC%99%80_SNS_%EC%84%9C%EB%B9%84%EC%8A%A4\" title=\"SQS\uc640 SNS \uc11c\ube44\uc2a4\">SQS\uc640 SNS \uc11c\ube44\uc2a4<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Tutorial\" title=\"Tutorial\">Tutorial<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Create_Severless_Project_HTTP_API\" title=\"Create Severless Project (HTTP API) \">Create Severless Project (HTTP API) <\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Deploy_Serverless\" title=\"Deploy Serverless\">Deploy Serverless<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Create_Severless_Project_SQS_Worker\" title=\"Create Severless Project (SQS Worker) \">Create Severless Project (SQS Worker) <\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Producer-Consumer_%ED%8C%A8%ED%84%B4%EC%9D%98_%EC%9E%A5%EC%A0%90\" title=\"Producer-Consumer \ud328\ud134\uc758 \uc7a5\uc810\">Producer-Consumer \ud328\ud134\uc758 \uc7a5\uc810<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98_%EC%9D%B4%EB%AF%B8%EC%A7%80_%EC%98%88%EC%8B%9C\" title=\"\uc544\ud0a4\ud14d\ucc98 \uc774\ubbf8\uc9c0 \uc608\uc2dc\">\uc544\ud0a4\ud14d\ucc98 \uc774\ubbf8\uc9c0 \uc608\uc2dc<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#DLQ_%EC%8B%A4%EC%8A%B5\" title=\"DLQ \uc2e4\uc2b5\">DLQ \uc2e4\uc2b5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD_%EB%B6%84%EC%84%9D_%EB%B0%8F_%EC%B4%88%EA%B8%B0_%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8_%EC%9E%91%EC%84%B1\" title=\"\uc694\uad6c\uc0ac\ud56d \ubd84\uc11d \ubc0f \ucd08\uae30 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \uc791\uc131\">\uc694\uad6c\uc0ac\ud56d \ubd84\uc11d \ubc0f \ucd08\uae30 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \uc791\uc131<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD\" title=\"\ud504\ub85c\uc81d\ud2b8 \uc694\uad6c\uc0ac\ud56d\">\ud504\ub85c\uc81d\ud2b8 \uc694\uad6c\uc0ac\ud56d<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Day_2_%E2%80%93_%EA%B5%AC%EB%A7%A4_%EC%9A%94%EC%B2%AD_%EB%B0%8F_%EC%9E%AC%EA%B3%A0_%EA%B4%80%EB%A6%AC_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EA%B5%AC%ED%98%84\" title=\"Day 2 &#8211; \uad6c\ub9e4 \uc694\uccad \ubc0f \uc7ac\uace0 \uad00\ub9ac \ud504\ub85c\uc138\uc2a4 \uad6c\ud604\">Day 2 &#8211; \uad6c\ub9e4 \uc694\uccad \ubc0f \uc7ac\uace0 \uad00\ub9ac \ud504\ub85c\uc138\uc2a4 \uad6c\ud604<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EA%B5%AC%EB%A7%A4_%EC%9A%94%EC%B2%AD_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EA%B5%AC%ED%98%84\" title=\"\uad6c\ub9e4 \uc694\uccad \ud504\ub85c\uc138\uc2a4 \uad6c\ud604\">\uad6c\ub9e4 \uc694\uccad \ud504\ub85c\uc138\uc2a4 \uad6c\ud604<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Create_Database\" title=\"Create Database\">Create Database<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%F0%9F%86%97%EB%B0%B0%ED%8F%AC_%ED%9B%84_API_Endpoint_Get_Test\" title=\"\ud83c\udd97\ubc30\ud3ec \ud6c4 API Endpoint Get Test\">\ud83c\udd97\ubc30\ud3ec \ud6c4 API Endpoint Get Test<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%F0%9F%86%97%EB%B0%B0%ED%8F%AC_%ED%9B%84_API_Endpoint_POST_Test\" title=\"\ud83c\udd97\ubc30\ud3ec \ud6c4 API Endpoint POST Test\">\ud83c\udd97\ubc30\ud3ec \ud6c4 API Endpoint POST Test<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Day_3_%EC%9E%AC%EA%B3%A0_%EA%B4%80%EB%A6%AC_%EC%8B%9C%EC%8A%A4%ED%85%9C_%EC%99%84%EC%84%B1\" title=\"Day 3 \uc7ac\uace0 \uad00\ub9ac \uc2dc\uc2a4\ud15c \uc644\uc131\">Day 3 \uc7ac\uace0 \uad00\ub9ac \uc2dc\uc2a4\ud15c \uc644\uc131<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EA%B3%B5%EC%9E%A5_%EC%A3%BC%EB%AC%B8_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EA%B5%AC%ED%98%84\" title=\"\uacf5\uc7a5 \uc8fc\ubb38 \ud504\ub85c\uc138\uc2a4 \uad6c\ud604\">\uacf5\uc7a5 \uc8fc\ubb38 \ud504\ub85c\uc138\uc2a4 \uad6c\ud604<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EC%9E%AC%EA%B3%A0_%EC%A6%9D%EA%B0%80_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EA%B5%AC%ED%98%84\" title=\"\uc7ac\uace0 \uc99d\uac00 \ud504\ub85c\uc138\uc2a4 \uad6c\ud604\">\uc7ac\uace0 \uc99d\uac00 \ud504\ub85c\uc138\uc2a4 \uad6c\ud604<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EB%B0%B0%ED%8F%AC_%ED%9B%84_Test\" title=\"\ubc30\ud3ec \ud6c4 Test\">\ubc30\ud3ec \ud6c4 Test<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EC%9E%AC%EA%B3%A0_%EA%B4%80%EB%A6%AC_%EC%8B%9C%EC%8A%A4%ED%85%9C_%EC%99%B8_%EC%B6%94%EA%B0%80_%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4\" title=\"\uc7ac\uace0 \uad00\ub9ac \uc2dc\uc2a4\ud15c \uc678 \ucd94\uac00 \uc2dc\ub098\ub9ac\uc624\">\uc7ac\uace0 \uad00\ub9ac \uc2dc\uc2a4\ud15c \uc678 \ucd94\uac00 \uc2dc\ub098\ub9ac\uc624<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EC%B6%94%EA%B0%80_%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4_%EC%9A%94%EA%B5%AC_%EC%82%AC%ED%95%AD\" title=\"\ucd94\uac00 \uc2dc\ub098\ub9ac\uc624 \uc694\uad6c \uc0ac\ud56d\">\ucd94\uac00 \uc2dc\ub098\ub9ac\uc624 \uc694\uad6c \uc0ac\ud56d<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EA%B4%91%EA%B3%A0_%EC%A4%91%EB%8B%A8_%EC%9A%94%EC%B2%AD_%EC%A7%84%ED%96%89\" title=\"\uad11\uace0 \uc911\ub2e8 \uc694\uccad \uc9c4\ud589\">\uad11\uace0 \uc911\ub2e8 \uc694\uccad \uc9c4\ud589<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#VIP_%EA%B3%A0%EA%B0%9D%EA%B4%80%EB%A6%AC_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4\" title=\"VIP \uace0\uac1d\uad00\ub9ac \ud504\ub85c\uc138\uc2a4\">VIP \uace0\uac1d\uad00\ub9ac \ud504\ub85c\uc138\uc2a4<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EC%B6%94%EA%B0%80_%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4_%EA%B5%AC%EC%84%B1_%EC%A7%84%ED%96%89\" title=\"\ucd94\uac00 \uc2dc\ub098\ub9ac\uc624 \uad6c\uc131 \uc9c4\ud589\">\ucd94\uac00 \uc2dc\ub098\ub9ac\uc624 \uad6c\uc131 \uc9c4\ud589<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EA%B4%91%EA%B3%A0_%EC%A4%91%EB%8B%A8_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4\" title=\"\uad11\uace0 \uc911\ub2e8 \ud504\ub85c\uc138\uc2a4\">\uad11\uace0 \uc911\ub2e8 \ud504\ub85c\uc138\uc2a4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#%EA%B3%A0%EA%B0%9D_%EA%B4%80%EB%A6%AC_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4\" title=\"\uace0\uac1d \uad00\ub9ac \ud504\ub85c\uc138\uc2a4\">\uace0\uac1d \uad00\ub9ac \ud504\ub85c\uc138\uc2a4<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\/#Day_4_%E2%80%93_%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%ED%9A%8C%EA%B3%A0\" title=\"Day 4 &#8211; \ud504\ub85c\uc81d\ud2b8 \ud68c\uace0\">Day 4 &#8211; \ud504\ub85c\uc81d\ud2b8 \ud68c\uace0<\/a><\/li><\/ul><\/nav><\/div>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EA%B0%9C%EC%9A%94\"><\/span>\ud504\ub85c\uc81d\ud2b8 \uac1c\uc694<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">\ud83d\udcd1 AWS \ud074\ub77c\uc6b0\ub4dc \ud658\uacbd\uc744 \uae30\ubc18\uc73c\ub85c \ud558\ub294 \ub290\uc2a8\ud558\uac8c \uc5f0\uacb0\ub41c(loosely coupled) \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc544\ud0a4\ud0dd\ucc98\uc5d0 \ub300\ud55c \uc774\ud574\ub97c \ubaa9\ud45c\ub85c \ud558\uba70 \uc694\uad6c\uc0ac\ud56d\uc5d0 \ub530\ub77c \uc778\ud504\ub77c\ub97c \uad6c\ud604<\/pre>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p id=\"block-f8e8dae9-3bfe-4066-81c9-6cd16fe15da6\">\ud83d\udca1 loose coupling(\ub290\uc2a8\ud55c \uacb0\ud569) \uc774\ub780?<br>\uc2dc\uc2a4\ud15c\uc758 \uad6c\uc131 \uc694\uc18c\ub4e4\uc774 \uc11c\ub85c\uc5d0\uac8c \ucd5c\uc18c\ud55c\uc758 \uc758\uc874\uc131\uc744 \uac00\uc9c0\uace0 \uc0c1\ud638\uc791\uc6a9\ud558\ub294 \ub514\uc790\uc778 \uc6d0\uce59\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uac01 \uad6c\uc131 \uc694\uc18c\ub294 \ub3c5\ub9bd\uc801\uc73c\ub85c \uac1c\ubc1c, \ubc30\ud3ec \ubc0f \ud655\uc7a5\ub420 \uc218 \uc788\uc73c\uba70, \ubcc0\uacbd \uc0ac\ud56d\uc774 \ub2e4\ub978 \uad6c\uc131 \uc694\uc18c\uc5d0 \ubbf8\uce58\ub294 \uc601\ud5a5\uc744 \ucd5c\uc18c\ud654\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. AWS\uc5d0\uc11c \uc81c\uc77c \uc624\ub798\ub41c \uc11c\ube44\uc2a4\uc778 SQS\uc758 \uc7a5\uc810\uc911 \ud558\ub098\uc778 \ub290\uc2a8\ud55c \uacb0\ud569\uc740 \uc2dc\uc2a4\ud15c \uc544\ud0a4\ud14d\ucc98\uc758 \uc720\uc5f0\uc131\uacfc \uacac\uace0\uc131\uc744 \ud5a5\uc0c1\uc2dc\ud0a4\ub294\ub370 \ub3c4\uc6c0\uc744 \uc90d\ub2c8\ub2e4. \uac01\uac01\uc758 \uad6c\uc131 \uc694\uc18c\uac00 \ub3c5\ub9bd\uc801\uc73c\ub85c \uc791\ub3d9\ud558\uba74\uc11c\ub3c4 \uba54\uc2dc\uc9c0\ub97c \ud1b5\ud574 \ud1b5\uc2e0\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0, \uc2dc\uc2a4\ud15c\uc758 \uc720\uc9c0\ubcf4\uc218, \ud655\uc7a5 \ubc0f \ubcc0\uacbd\uc774 \uc6a9\uc774\ud574\uc9d1\ub2c8\ub2e4. <\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4\"><\/span>\ud504\ub85c\uc81d\ud2b8 \uc2dc\ub098\ub9ac\uc624<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">\ud83c\udfac \uc628\ub77c\uc778\uc73c\ub85c \ub3c4\ub11b\uc744 \ud310\ub9e4\ud558\uba70 \uc6f9\uc0ac\uc774\ud2b8\ub97c \ud1b5\ud574\uc11c \uc8fc\ubb38 \ubc84\ud2bc\uc73c\ub85c \uad6c\ub9e4\uac00 \uac00\ub2a5\ud569\ub2c8\ub2e4.\n\ucc3d\uace0\uc5d0 \uc7ac\uace0\uac00 \uc788\ub2e4\uba74 \uc7ac\uace0\uac00 \uac10\uc18c\ud558\uace0 \uad6c\ub9e4\uac00 \uc644\ub8cc \ub429\ub2c8\ub2e4.\n\ucc3d\uace0\uc5d0 \uc7ac\uace0\uac00 \uc5c6\uae30 \ub54c\ubb38\uc5d0 \uad6c\ub9e4\uac00 \ubd88\uac00\ub2a5\ud55c \uacbd\uc6b0 \uc81c\uc870 \uacf5\uc7a5\uc73c\ub85c \uc8fc\ubb38 \ud558\uc5ec \ucc3d\uace0\uc5d0 \uc7ac\uace0\ub97c \ud655\ubcf4\ud558\ub294 \uc2dc\uc2a4\ud15c\uc744 \uad6c\ucd95\n\uc8fc\ubb38\uc774 \ub418\uba74 \uc77c\uc815 \uc2dc\uac04\uc774 \uc9c0\ub09c \ud6c4 \ucc3d\uace0\uc5d0 \uc7ac\uace0\uac00 \uc99d\uac00\ud569\ub2c8\ub2e4.<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Day_1_%E2%80%93_Tutorial%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%A0%84_%EC%82%AC%EC%A0%84_%ED%95%99%EC%8A%B5_%EB%B0%8F_%EC%97%B0%EC%8A%B5\"><\/span>Day 1 &#8211; Tutorial(\ud504\ub85c\uc81d\ud2b8\uc804 \uc0ac\uc804 \ud559\uc2b5 \ubc0f \uc5f0\uc2b5)<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EC%82%AC%EC%A0%84_%ED%95%99%EC%8A%B5\"><\/span>\uc0ac\uc804 \ud559\uc2b5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Serverless_Framework%EB%9E%80\"><\/span>Serverless Framework\ub780?<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"wp-block-preformatted\">\ud83d\udd20 Serverless Framework\ub780?\nNode.js\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc791\uc131\ub41c \uc624\ud508 \uc18c\uc2a4 \uc6f9 \ud504\ub808\uc784 \uc6cc\ud06c\uc774\uba70 AWS Lambda\uc5d0\uc11c Application\uc744 \uad6c\ucd95\ud558\uae30 \uc704\ud574 \uac1c\ubc1c\ub41c \ucd5c\ucd08\uc758 Framework\uc785\ub2c8\ub2e4. \ucf54\ub4dc\uc640 \uc778\ud504\ub77c\ub97c \uad00\ub9ac\ud560 \uc218 \uc788\uc73c\uba70 \uc5ec\ub7ec \uc5b8\uc5b4 (Node.js, python, Java \ub4f1)\ub97c \uc9c0\uc6d0\ud569\ub2c8\ub2e4.\n<a href=\"https:\/\/www.serverless.com\/\" data-type=\"URL\" data-id=\"https:\/\/www.serverless.com\/\">serverless \uacf5\uc2dd \ud648\ud398\uc774\uc9c0<\/a>\n\n\ud83d\udccc \ubcf8 \uc2e4\uc2b5\uc740 Amazon Web Service\uc5d0 \uacc4\uc815\uc774 \uc788\uace0 ubuntu OS \uc548\uc5d0\uc11c AWS \uc790\uaca9\uc99d\uba85 \uc124\uc815\uc774 \uc644\ub8cc \ub418\uc5c8\ub2e4\ub294 \uc804\uc81c\ud558\uc5d0 \uc9c4\ud589\ub429\ub2c8\ub2e4. \n\uc8fc\ub85c CLI\uc5d0\uc11c \uc2e4\uc2b5\uc744 \uc9c4\ud589\uc744 \ud588\uae30\uc5d0 \uc8fc\uc11d\uc73c\ub85c \uc0bd\uc785\ud55c \uc124\uba85\uc774 \ub2e4\uc18c \uc788\uc2b5\ub2c8\ub2e4.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"SQS%EC%99%80_SNS_%EC%84%9C%EB%B9%84%EC%8A%A4\"><\/span>SQS\uc640 SNS \uc11c\ube44\uc2a4<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-3\">\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-gyu-blog wp-block-embed-gyu-blog\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"FzWXgDNagd\"><a href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=588\">[AWS] SQS(Simple Queue Service)<\/a><\/blockquote><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;[AWS] SQS(Simple Queue Service)&#8221; &#8212; GYU:\/blog\" src=\"https:\/\/www.gyuroot.com\/wordpress\/?p=588&#038;embed=true#?secret=WsNhBUxVrh#?secret=FzWXgDNagd\" data-secret=\"FzWXgDNagd\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-gyu-blog wp-block-embed-gyu-blog\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"UjnRyyvPQG\"><a href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=675\">[AWS] SNS(Simple Notification Service)<\/a><\/blockquote><iframe class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;[AWS] SNS(Simple Notification Service)&#8221; &#8212; GYU:\/blog\" src=\"https:\/\/www.gyuroot.com\/wordpress\/?p=675&#038;embed=true#?secret=Oib7bi0oBB#?secret=UjnRyyvPQG\" data-secret=\"UjnRyyvPQG\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>AWS SQS (Simple Queue Service)\uc640 SNS (Simple Notification Service)\uc740 \ubaa8\ub450 AWS (Amazon Web Services)\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 \uba54\uc2dc\uc9d5 \uc11c\ube44\uc2a4\uc785\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ub450 \uc11c\ube44\uc2a4\ub294 \ubaa9\uc801\uacfc \ub3d9\uc791 \ubc29\uc2dd\uc5d0\uc11c \ucc28\uc774\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ol>\n<li>\ubaa9\uc801:\n<ul>\n<li>SQS: SQS\ub294 \ube44\ub3d9\uae30 \uba54\uc2dc\uc9c0 \ud050 \uc11c\ube44\uc2a4\ub85c, \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uad6c\uc131 \uc694\uc18c \uac04\uc5d0 \uba54\uc2dc\uc9c0\ub97c \uc804\uc1a1\ud558\uace0 \uc800\uc7a5\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uba54\uc2dc\uc9c0\ub97c \uc218\uc2e0\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ud574\ub2f9 \uba54\uc2dc\uc9c0\ub97c \ucc98\ub9ac\ud560 \uc218 \uc788\uc744 \ub54c\uae4c\uc9c0 \uba54\uc2dc\uc9c0\ub294 SQS\uc5d0\uc11c \uc800\uc7a5\ub418\uba70, \ub2e4\ub978 \uad6c\uc131 \uc694\uc18c\uc5d0\uc11c \uba54\uc2dc\uc9c0\ub97c \uc218\uc2e0\ud560 \uc218\ub3c4 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>SNS: SNS\ub294 \uac8c\uc2dc-\uad6c\ub3c5 (Publish-Subscribe) \uc11c\ube44\uc2a4\ub85c, \uba54\uc2dc\uc9c0\ub97c \ubc1c\ud589\ud558\uace0 \uad6c\ub3c5\ud558\ub294 \ub370 \uc0ac\uc6a9\ub429\ub2c8\ub2e4. \uba54\uc2dc\uc9c0\ub97c \ubc1c\ud589\ud55c \ud6c4 \ud574\ub2f9 \uba54\uc2dc\uc9c0\ub97c \uad6c\ub3c5\ud55c \ubaa8\ub4e0 \uad6c\uc131 \uc694\uc18c\uc5d0\uac8c \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\ub3d9\uc791 \ubc29\uc2dd:\n<ul>\n<li>SQS: SQS\ub294 \uba54\uc2dc\uc9c0\ub97c \uc800\uc7a5\ud558\ub294 \ub300\uae30\uc5f4\ub85c \uc791\ub3d9\ud569\ub2c8\ub2e4. \uba54\uc2dc\uc9c0\ub97c \ubcf4\ub0b4\ub294 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \uba54\uc2dc\uc9c0\ub97c SQS \ud050\uc5d0 \ubcf4\ub0b4\uace0, \uba54\uc2dc\uc9c0\ub97c \ucc98\ub9ac\ud560 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \ud574\ub2f9 \ud050\uc5d0\uc11c \uba54\uc2dc\uc9c0\ub97c \uc77d\uc2b5\ub2c8\ub2e4. \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uac04\uc758 \uacb0\ud569\ub3c4\uac00 \ub0ae\uace0 \ud655\uc7a5\uc131\uc774 \uc88b\uc73c\uba70, \uba54\uc2dc\uc9c0 \ucc98\ub9ac\ub7c9\uc744 \uc81c\uc5b4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>SNS: SNS\ub294 \uba54\uc2dc\uc9c0\ub97c \uac8c\uc2dc\ud558\uace0, \ud574\ub2f9 \uba54\uc2dc\uc9c0\ub97c \uad6c\ub3c5\ud55c \ubaa8\ub4e0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uac8c \uc804\ub2ec\ud569\ub2c8\ub2e4. \uba54\uc2dc\uc9c0 \ubc1c\ud589 \uc2dc \ubaa8\ub4e0 \uad6c\ub3c5\uc790\uc5d0\uac8c \ub3d9\uc77c\ud55c \uba54\uc2dc\uc9c0\uac00 \uc804\uc1a1\ub418\uba70, \uad6c\ub3c5\uc790\uac00 \uad00\uc2ec \uc788\ub294 \uba54\uc2dc\uc9c0\ub97c \uad6c\ub3c5\ud558\uace0 \ucc98\ub9ac\ud569\ub2c8\ub2e4. \uc774\ub294 \ud55c \ubc88\uc5d0 \uc5ec\ub7ec \uad6c\ub3c5\uc790\uc5d0\uac8c \uba54\uc2dc\uc9c0\ub97c \ube0c\ub85c\ub4dc\uce90\uc2a4\ud2b8\ud560 \uc218 \uc788\ub294 \uc720\uc5f0\uc131\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uba54\uc2dc\uc9c0 \uc804\uc1a1 \ubc29\uc2dd:\n<ul>\n<li>SQS: SQS\ub294 P2P(Point-to-Point) \uba54\uc2dc\uc9d5\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uba54\uc2dc\uc9c0\ub97c \uc804\uc1a1\ud55c \ud6c4 \ud574\ub2f9 \uba54\uc2dc\uc9c0\ub97c \uc218\uc2e0\ud560 \uc218 \uc788\ub294 \ub2e8\uc77c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uba54\uc2dc\uc9c0\ub97c \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>SNS: SNS\ub294 \ubc1c\ud589-\uad6c\ub3c5(Publish-Subscribe) \uba54\uc2dc\uc9d5\uc744 \uc9c0\uc6d0\ud569\ub2c8\ub2e4. \uba54\uc2dc\uc9c0\ub97c \ubc1c\ud589\ud55c \ud6c4 \ud574\ub2f9 \uba54\uc2dc\uc9c0\ub97c \uad6c\ub3c5\ud55c \ubaa8\ub4e0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc774 \uba54\uc2dc\uc9c0\ub97c \ub3c5\ub9bd\uc801\uc73c\ub85c \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uba54\uc2dc\uc9c0 \uc218\uc2e0 \ubc29\uc2dd:\n<ul>\n<li>SQS: SQS\ub294 \ud3f4\ub9c1(Polling) \ubc29\uc2dd\uc744 \uc0ac\uc6a9\ud558\uc5ec \uba54\uc2dc\uc9c0\ub97c \uc218\uc2e0\ud569\ub2c8\ub2e4. \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 \uc8fc\uae30\uc801\uc73c\ub85c SQS\uc5d0 \ub300\ud574 \ud3f4\ub9c1\ud558\uc5ec \uba54\uc2dc\uc9c0\ub97c \uc218\uc2e0\ud560 \uc900\ube44\uac00 \ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>SNS: SNS\ub294 \uba54\uc2dc\uc9c0\ub97c \uad6c\ub3c5\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uac8c \uc804\ub2ec\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c, \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc740 SNS\uc5d0\uac8c \ub4f1\ub85d\ub41c \uad6c\ub3c5\uc790\ub85c\uc11c \uba54\uc2dc\uc9c0\ub97c \uc218\uc2e0\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>\uc694\uc57d\ud558\uba74, SQS\ub294 \ube44\ub3d9\uae30 \uba54\uc2dc\uc9d5 \ud050\ub85c \uc791\ub3d9\ud558\uc5ec \uba54\uc2dc\uc9c0\ub97c \uc804\uc1a1\ud558\uace0 \uc800\uc7a5\ud558\uba70, SNS\ub294 \uac8c\uc2dc-\uad6c\ub3c5 \uba54\uc2dc\uc9d5 \uc11c\ube44\uc2a4\ub85c \uc791\ub3d9\ud558\uc5ec \uba54\uc2dc\uc9c0\ub97c \ubc1c\ud589\ud558\uace0 \uad6c\ub3c5\ud55c \ubaa8\ub4e0 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0\uac8c \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tutorial\"><\/span>Tutorial<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">\ud83d\udccc \ud504\ub85c\uc81d\ud2b8 \uc9c4\ud589 \uc804\uc5d0 \ud544\uc694\ud55c \uc120\ud589 \uc2e4\uc2b5\uc774\uba70 Tutorial\uc744 \uc9c4\ud589\ud558\uba74\uc11c \ub2e4\uc74c\uacfc \uac19\uc740 \uc774\ud574\uac00 \ud544\uc694\ud569\ub2c8\ub2e4.\n1. Serveless\ub97c \uc774\uc6a9\ud55c AWS \ub9ac\uc18c\uc2a4(Lambda, SQS, SNS) \uc0dd\uc131\n2. \uba54\uc2dc\uc9c0 Queue\uac00 \uc0ac\uc6a9\ub418\ub294 \uad6c\uc870 \uc774\ud574\n3. SQS\uc5d0\uc11c\uc758 Producer - Consumer \ud328\ud134\n4. DLQ \ub3d9\uc791\uc6d0\ub9ac\n5. Lambda \ub0b4\uc5d0\uc11c AWS-SDK \ub77c\uc774\ube0c\ub7ec\ub9ac\ub97c \ud1b5\ud574 \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \uc791\uc131<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Create_Severless_Project_HTTP_API\"><\/span>Create Severless Project (HTTP API) <span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p><a href=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/Tutorial-01-aws-node-http-api-project\" data-type=\"URL\" data-id=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/Tutorial-01-aws-node-http-api-project\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Link<\/a><\/p>\n\n\n\n<ol>\n<li>Serverless Framework install<\/li>\n\n\n\n<li>Serverless create project<br>Serverless\ub294 \uae30\ubcf8\uc801\uc73c\ub85c \ub2e4\uc591\ud55c Template\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>aws-sdk install<br>AWS \ub9ac\uc18c\uc2a4\ub97c \uad00\ub9ac\ud558\uace0 \uc870\uc791\ud558\ub294 \ub370 \ud544\uc694\ud55c \ub3c4\uad6c\uc640 \ub77c\uc774\ube0c\ub7ec\ub9ac<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"# Serverless Framework\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c \uc544\ub798\uc640 \uac19\uc774 \uc124\uce58\ub97c \uc9c4\ud589\ud55c\ub2e4.\nuser01@ubuntu:~\/project03$ sudo npm install -g serverless\n\n Serverless \ud15c\ud50c\ub9bf \uc0dd\uc131 \uc9c4\ud589 ##\nuser01@ubuntu:~\/project03$ serverless\n\nCreating a new serverless project\n\n? What do you want to make?\n  AWS - Node.js - Starter\n\u276f AWS - Node.js - HTTP API\n  AWS - Node.js - Scheduled Task\n  AWS - Node.js - SQS Worker\n  AWS - Node.js - Express API\n  AWS - Node.js - Express API with DynamoDB\n  AWS - Python - Starter\n  AWS - Python - HTTP API\n  AWS - Python - Scheduled Task\n  AWS - Python - SQS Worker\n  AWS - Python - Flask API\n  AWS - Python - Flask API with DynamoDB\n  Other\n? What do you want to call this project? (aws-node-http-api-project)\n\u2714 Project successfully created in aws-node-http-api-project folder\n\n? Do you want to deploy now? (Y\/n) Y\n Serverless \ud15c\ud50c\ub9bf \uc0dd\uc131 \uc9c4\ud589 ##\n# \uc0dd\uc131 \uc644\ub8cc \ud6c4 \ud504\ub85c\uc81d\ud2b8 \ud3f4\ub354 \ud30c\uc77c\nuser01@ubuntu:~\/project03\/aws-node-http-api-project$ ll\n\ud569\uacc4 28\ndrwxrwxr-x 3 user01 user01 4096  5\uc6d4 24 10:34 .\/\ndrwxrwxr-x 3 user01 user01 4096  5\uc6d4 24 10:23 ..\/\n-rw-r--r-- 1 user01 user01   86  5\uc6d4 24 10:23 .gitignore\ndrwxrwxr-x 2 user01 user01 4096  5\uc6d4 24 10:24 .serverless\/\n-rw-r--r-- 1 user01 user01 2886  5\uc6d4 24 10:23 README.md\n-rwxr--r-- 1 root   root      0  5\uc6d4 24 10:34 createCustomer.js*\n-rw-r--r-- 1 user01 user01  253  5\uc6d4 24 10:23 index.js\n-rw-r--r-- 1 user01 user01  217  5\uc6d4 24 10:23 serverless.yml\n\n AWS-SDK \uc124\uce58 ##\nuser01@ubuntu:~\/project03\/aws-node-http-api-project$ npm install --save-dev aws-sdk\nnpm WARN deprecated querystring@0.2.0: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.\n\nadded 31 packages, and audited 32 packages in 6s\n\n13 packages are looking for funding\n  run `npm fund` for details\n\nfound 0 vulnerabilities\n AWS-SDK \uc124\uce58 ##\n\n\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #616E88\"># Serverless Framework\ub97c \uc0ac\uc6a9\ud558\uae30 \uc704\ud574\uc11c \uc544\ub798\uc640 \uac19\uc774 \uc124\uce58\ub97c \uc9c4\ud589\ud55c\ub2e4.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~\/project03$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">sudo<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">npm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-g<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">serverless<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> Serverless \ud15c\ud50c\ub9bf \uc0dd\uc131 \uc9c4\ud589 ##<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~\/project03$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">serverless<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">Creating<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">a<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">serverless<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">project<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> What <\/span><span style=\"color: #81A1C1\">do<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">you<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">want<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">make?<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Node.js<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Starter<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\u276f<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Node.js<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">HTTP<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">API<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Node.js<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Scheduled<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Task<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Node.js<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">SQS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Worker<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Node.js<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Express<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">API<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Node.js<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Express<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">API<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">with<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">DynamoDB<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Starter<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">HTTP<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">API<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Scheduled<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Task<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">SQS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Worker<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Flask<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">API<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">AWS<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Python<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Flask<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">API<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">with<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">DynamoDB<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">Other<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> What <\/span><span style=\"color: #81A1C1\">do<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">you<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">want<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">to<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">call<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">this<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">project?<\/span><span style=\"color: #D8DEE9FF\"> (aws-node-http-api-project)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\u2714<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Project<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">successfully<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">created<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">aws-node-http-api-project<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">folder<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> Do you want to deploy now<\/span><span style=\"color: #81A1C1\">?<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #88C0D0\">Y\/n<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> Y<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> Serverless \ud15c\ud50c\ub9bf \uc0dd\uc131 \uc9c4\ud589 ##<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"># \uc0dd\uc131 \uc644\ub8cc \ud6c4 \ud504\ub85c\uc81d\ud2b8 \ud3f4\ub354 \ud30c\uc77c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~\/project03\/aws-node-http-api-project$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">ll<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\ud569\uacc4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">28<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">drwxrwxr-x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4096<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:34<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">drwxrwxr-x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4096<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">..\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-r--r--<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">86<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.gitignore<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">drwxrwxr-x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">4096<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.serverless\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-r--r--<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">2886<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">README.md<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rwxr--r--<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">root<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #A3BE8C\">root<\/span><span style=\"color: #D8DEE9FF\">      <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:34<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">createCustomer.js<\/span><span style=\"color: #81A1C1\">*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-r--r--<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">253<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">index.js<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-r--r--<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">217<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">serverless.yml<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> AWS-SDK \uc124\uce58 ##<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~\/project03\/aws-node-http-api-project$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">npm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">install<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--save-dev<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">aws-sdk<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">npm<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">WARN<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">deprecated<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">querystring@0.2.0:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">The<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">querystring<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">API<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">is<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">considered<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Legacy.<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">code<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">should<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">use<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">the<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">URLSearchParams<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">API<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">instead.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">added<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">31<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">packages,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">and<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">audited<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">32<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">packages<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">6<\/span><span style=\"color: #A3BE8C\">s<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">13<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">packages<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">are<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">looking<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">for<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">funding<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">run<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #88C0D0\">npm<\/span><span style=\"color: #A3BE8C\"> fund<\/span><span style=\"color: #ECEFF4\">`<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> details<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">found<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">vulnerabilities<\/span><\/span>\n<span class=\"line\"><span style=\"color: #616E88\"> AWS-SDK \uc124\uce58 ##<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Deploy_Serverless\"><\/span>Deploy Serverless<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"user01@ubuntu:~\/project03\/aws-node-http-api-project$ ll\n\ud569\uacc4 60\ndrwxrwxr-x  4 user01 user01  4096  5\uc6d4 24 10:43 .\/\ndrwxrwxr-x  3 user01 user01  4096  5\uc6d4 24 10:23 ..\/\n-rw-r--r--  1 user01 user01    86  5\uc6d4 24 10:23 .gitignore\ndrwxrwxr-x  2 user01 user01  4096  5\uc6d4 24 10:24 .serverless\/\n-rw-r--r--  1 user01 user01  2886  5\uc6d4 24 10:23 README.md\n-rwxr--r--  1 root   root       0  5\uc6d4 24 10:34 createCustomer.js*\n-rw-r--r--  1 user01 user01   253  5\uc6d4 24 10:23 index.js\ndrwxrwxr-x 34 user01 user01  4096  5\uc6d4 24 10:43 node_modules\/\n-rw-rw-r--  1 user01 user01 23496  5\uc6d4 24 10:43 package-lock.json\n-rw-rw-r--  1 user01 user01    58  5\uc6d4 24 10:43 package.json\n-rw-r--r--  1 user01 user01   217  5\uc6d4 24 10:23 serverless.yml\nuser01@ubuntu:~\/project03\/aws-node-http-api-project$ serverless deploy -r ap-northeast-2\nuser01@ubuntu:~\/project03\/aws-node-http-api-project$ curl -X POST https:\/\/op4jrexi5m.execute-api.ap-northeast-2.amazonaws.com\/ --header 'Content-type: application\/json' --data-raw '{ &quot;input&quot;: 1 }'\n{\n  &quot;message&quot;: &quot;\uba54\uc2dc\uc9c0\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4. \uc785\ub825\uac12: 1, \uacb0\uacfc: 2&quot;\n}user01@ubuntu:~\/project03\/aws-node-http-api-project$ curl -X POST https:\/\/op4jrexi5m.execute-api.ap-northeast-2.amazonaws.com\/ --header 'Content-type: application\/json' --data-raw '{ &quot;input&quot;: 2 }'\n{\n  &quot;message&quot;: &quot;\uba54\uc2dc\uc9c0\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4. \uc785\ub825\uac12: 2, \uacb0\uacfc: 3&quot;\n}user01@ubuntu:~\/project03\/aws-node-http-api-project$ curl -X POST https:\/\/op4jrexi5m.execute-api.ap-northeast-2.amazonaws.com\/ --header 'Content-type: application\/json' --data-raw '{ &quot;input&quot;: 3 }'\n{\n  &quot;message&quot;: &quot;\uba54\uc2dc\uc9c0\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4. \uc785\ub825\uac12: 3, \uacb0\uacfc: 4&quot;\nuser01@ubuntu:~\/project03\/aws-node-http-api-project$ sls remove\nRemoving aws-node-http-api-project from stage dev (ap-northeast-2)\n\n\u2714 Service aws-node-http-api-project has been successfully removed (26s)\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~\/project03\/aws-node-http-api-project$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">ll<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\ud569\uacc4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">60<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">drwxrwxr-x<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">4096<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:43<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">drwxrwxr-x<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">4096<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">..\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-r--r--<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #B48EAD\">86<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.gitignore<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">drwxrwxr-x<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">2<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">4096<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">.serverless\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-r--r--<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">2886<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">README.md<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rwxr--r--<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">root<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #A3BE8C\">root<\/span><span style=\"color: #D8DEE9FF\">       <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:34<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">createCustomer.js<\/span><span style=\"color: #81A1C1\">*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-r--r--<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">253<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">index.js<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">drwxrwxr-x<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">34<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">4096<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:43<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">node_modules\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-rw-r--<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">23496<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:43<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">package-lock.json<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-rw-r--<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #B48EAD\">58<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:43<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">package.json<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">-rw-r--r--<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">user01<\/span><span style=\"color: #D8DEE9FF\">   <\/span><span style=\"color: #B48EAD\">217<\/span><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #B48EAD\">5<\/span><span style=\"color: #A3BE8C\">\uc6d4<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">24<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">10<\/span><span style=\"color: #A3BE8C\">:23<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">serverless.yml<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~\/project03\/aws-node-http-api-project$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">serverless<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">deploy<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-r<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">ap-northeast-2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~\/project03\/aws-node-http-api-project$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-X<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">POST<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/op4jrexi5m.execute-api.ap-northeast-2.amazonaws.com\/<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--header<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Content-type: application\/json<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">--data-raw<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">{ &quot;input&quot;: 1 }<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">&quot;message&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\uba54\uc2dc\uc9c0\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4. \uc785\ub825\uac12: 1, \uacb0\uacfc: 2<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">user01@ubuntu:<\/span><span style=\"color: #81A1C1\">~<\/span><span style=\"color: #D8DEE9FF\">\/project03\/aws-node-http-api-project$ curl -X POST https:\/\/op4jrexi5m.execute-api.ap-northeast-2.amazonaws.com\/ --header <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Content-type: application\/json<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> --data-raw <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">{ &quot;input&quot;: 2 }<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">&quot;message&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\uba54\uc2dc\uc9c0\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4. \uc785\ub825\uac12: 2, \uacb0\uacfc: 3<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><span style=\"color: #D8DEE9FF\">user01@ubuntu:<\/span><span style=\"color: #81A1C1\">~<\/span><span style=\"color: #D8DEE9FF\">\/project03\/aws-node-http-api-project$ curl -X POST https:\/\/op4jrexi5m.execute-api.ap-northeast-2.amazonaws.com\/ --header <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">Content-type: application\/json<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> --data-raw <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">{ &quot;input&quot;: 3 }<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">  <\/span><span style=\"color: #88C0D0\">&quot;message&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">\uba54\uc2dc\uc9c0\ub97c \ubc1b\uc558\uc2b5\ub2c8\ub2e4. \uc785\ub825\uac12: 3, \uacb0\uacfc: 4<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~\/project03\/aws-node-http-api-project$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">sls<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">remove<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">Removing<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">aws-node-http-api-project<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">from<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">stage<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">dev<\/span><span style=\"color: #D8DEE9FF\"> (ap-northeast-2)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">\u2714<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">Service<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">aws-node-http-api-project<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">has<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">been<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">successfully<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">removed<\/span><span style=\"color: #D8DEE9FF\"> (26s)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Create_Severless_Project_SQS_Worker\"><\/span>Create Severless Project (SQS Worker) <span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p><a href=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/Tutorial-02-aws-node-sqs-worker-project\" data-type=\"URL\" data-id=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/Tutorial-02-aws-node-sqs-worker-project\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Link<\/a><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\ud83d\udd20 SQS\uc5d0\uc11c\uc758 <strong>message<\/strong>\uc640 <strong>queue<\/strong>\nAWS\uc5d0\uc11c \uc81c\uacf5\ud558\ub294 Simple Queue Service\uc758 \uc57d\uc790\uc774\uba70 \uc11c\ubc84\ub4e4\ub07c\ub9ac \uc0ac\uc6a9\ud560 \uc218 \uc788\ub294 'message queue'\ub97c \uc81c\uacf5\ud558\ub294 \uc11c\ube44\uc2a4\uc774\ub2e4.\n\uc5ec\uae30\uc11c 'message' \uc640 'queue'\ub97c \uac04\ub2e8\ud558\uac8c \uc124\uba85\ud558\uc790\uba74\n'message'\ub294 XML, JSON\uacfc \uac19\uc740 text \ud615\ud0dc\uc758 SQS\uc758 \uae30\ubcf8 \ub370\uc774\ud130 \ub2e8\uc704 \uc774\uace0 \n'queue'\ub294 message\ub97c \ub2f4\ub294 \uacf5\uac04\uc774\ub2e4.\n\n\ud83d\udccc \ub450\ubc88\uc9f8\ub85c \ubc30\ud3ec\ud560 \ud504\ub85c\uc81d\ud2b8\ub294 SQS Worker\ub85c \ubc30\ud3ec\ud560 \uac83\uc774\uba70 Producer Consumer \uad6c\uc870(\uba40\ud2f0\uc2a4\ub808\ub4dc \ud658\uacbd\uc5d0\uc11c \ub370\uc774\ud130\ub97c \uc0dd\uc131\ud558\ub294 \ud504\ub85c\ub4c0\uc11c(Producer)\uc640 \ub370\uc774\ud130\ub97c \uc18c\ube44\ud558\ub294 \ucee8\uc288\uba38(Consumer) \uc0ac\uc774\uc758 \ud611\ub825\uc801\uc778 \uc791\uc5c5\uc744 \uc870\uc815\ud558\uae30 \uc704\ud55c \ub514\uc790\uc778 \ud328\ud134)\ub85c \ub418\uc5b4\uc788\uc2b5\ub2c8\ub2e4.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"block-430d5a6d-05c7-41b2-94bc-f6da911f483d\"><span class=\"ez-toc-section\" id=\"Producer-Consumer_%ED%8C%A8%ED%84%B4%EC%9D%98_%EC%9E%A5%EC%A0%90\"><\/span>Producer-Consumer \ud328\ud134\uc758 \uc7a5\uc810<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<ul>\n<li>\uc0dd\uc0b0\uc790\uc640 \uc18c\ube44\uc790\uc758 \uc5ed\ud560 \ubd84\ub9ac<br>\ub370\uc774\ud130 \uc0dd\uc131\uacfc \ucc98\ub9ac\ub97c \ubcc4\uac1c\uc758 \uc2a4\ub808\ub4dc\ub85c \ubd84\ub9ac\ud568\uc73c\ub85c\uc368, \uc0dd\uc0b0\uc790\uc640 \uc18c\ube44\uc790 \uac04\uc758 \ub3c5\ub9bd\uc131\uacfc \uc720\uc5f0\uc131\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ub3d9\uae30\ud654 \ubc0f \ud611\ub825<br>\ud050\ub098 \ubc84\ud37c\uc640 \uac19\uc740 \uc911\uac04 \ub370\uc774\ud130 \uad6c\uc870\ub97c \ud1b5\ud574 \uc0dd\uc0b0\uc790\uc640 \uc18c\ube44\uc790 \uc0ac\uc774\uc758 \ud611\ub825\uc744 \uc870\uc815\ud558\uace0 \ub3d9\uae30\ud654\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ucc98\ub9ac\ub7c9 \uc870\uc808<br>\ud504\ub85c\ub4c0\uc11c\uc640 \ucee8\uc288\uba38 \uc0ac\uc774\uc758 \ub370\uc774\ud130 \ucc98\ub9ac \uc18d\ub3c4\ub97c \uc870\uc808\ud558\uc5ec, \uc2dc\uc2a4\ud15c \uc804\ubc18\uc801\uc778 \ucc98\ub9ac\ub7c9\uc744 \ud5a5\uc0c1\uc2dc\ud0ac \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ud655\uc7a5\uc131<br>\uc5ec\ub7ec \uac1c\uc758 \uc0dd\uc0b0\uc790 \ubc0f \uc18c\ube44\uc790 \uc2a4\ub808\ub4dc\ub97c \ub3d9\uc2dc\uc5d0 \uc0ac\uc6a9\ud558\uc5ec \uc2dc\uc2a4\ud15c\uc744 \ud655\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98_%EC%9D%B4%EB%AF%B8%EC%A7%80_%EC%98%88%EC%8B%9C\"><\/span>\uc544\ud0a4\ud14d\ucc98 \uc774\ubbf8\uc9c0 \uc608\uc2dc<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"207\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-27-1024x207.png\" alt=\"\" class=\"wp-image-578\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-27-1024x207.png 1024w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-27-300x61.png 300w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-27-768x155.png 768w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-27.png 1085w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>serverless \ud15c\ud50c\ub9bf \uc911 <code>SQS Worker<\/code> \uc744 \uc120\ud0dd\ud558\uc5ec \uc0dd\uc131 \ud55c\ud6c4 <code>index.js<\/code> \ud30c\uc77c\uc744 \uc544\ub798\uc640 \uac19\uc774 \ud3b8\uc9d1\ud558\uc600\uc2b5\ub2c8\ub2e4. \uc0dd\uc131 \uacfc\uc815\uc740 HTTP API \ud15c\ud50c\ub9bf \uc0dd\uc131\uacfc\uc815\uacfc \ub3d9\uc77c\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"DLQ_%EC%8B%A4%EC%8A%B5\"><\/span>DLQ \uc2e4\uc2b5<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">\ud83d\udd20 DLQ\ub780?\nDead-letter Queue\uc758 \uc57d\uc790\ub85c \uc18c\ud504\ud2b8\uc6e8\uc5b4 \uc2dc\uc2a4\ud15c\uc5d0\uc11c \uc624\ub958\ub85c \uc778\ud574 \ucc98\ub9ac\ud560 \uc218 \uc5c6\ub294 \uba54\uc2dc\uc9c0\ub97c \uc784\uc2dc\ub85c \uc800\uc7a5\ud558\ub294 \ud2b9\uc218\ud55c \uc720\ud615\uc758 \uba54\uc2dc\uc9c0 \ub300\uae30\uc5f4\uc785\ub2c8\ub2e4. \uc798\ubabb\ub41c \uba54\uc2dc\uc9c0 \ubc0f \uc2e4\ud328\ud55c \uba54\uc2dc\uc9c0\uc758 \uc784\uc2dc \uc800\uc7a5\uc18c \uc5ed\ud560\uc744 \ud569\ub2c8\ub2e4. DLQ\ub294 \uc18c\uc2a4 \ub300\uae30\uc5f4\uc5d0 \ucc98\ub9ac\ub418\uc9c0 \uc54a\uc740 \uba54\uc2dc\uc9c0\uac00 \ub118\uce58\uc9c0 \uc54a\ub3c4\ub85d \ud569\ub2c8\ub2e4. DLQ\ub85c \uba54\uc2dc\uc9c0\uac00 \ubcf4\uad00\ub428\uc73c\ub85c\uc11c \uac1c\ubc1c\uc790\uac00 \uc624\ub958\uc758 \uc6d0\uc778\uc744 \uc2dd\ubcc4\ud558\ub294 \ub370 \uc9d1\uc911\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uc218\uc2e0\uc790\uac00 \uba54\uc2dc\uc9c0\ub97c \ucc98\ub9ac\ud560 \uc218 \uc5c6\ub294 \uc774\uc720\ub97c \uc870\uc0ac\ud558\uace0, \uc218\uc815 \uc0ac\ud56d\uc744 \uc801\uc6a9\ud55c \ud6c4, \uba54\uc2dc\uc9c0\ub97c \uc804\uc1a1\ud558\ub294 \uc0c8\ub85c\uc6b4 \uc2dc\ub3c4\ub97c \uc218\ud589\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\n<a href=\"https:\/\/aws.amazon.com\/ko\/what-is\/dead-letter-queue\/\" data-type=\"URL\" data-id=\"https:\/\/aws.amazon.com\/ko\/what-is\/dead-letter-queue\/\">[AWS docs] DLQ(Dead Letter Queue)\ub780 \ubb34\uc5c7\uc778\uac00\uc694?<\/a><\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"317\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-30-1024x317.png\" alt=\"\" class=\"wp-image-581\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-30-1024x317.png 1024w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-30-300x93.png 300w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-30-768x238.png 768w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-30.png 1145w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<pre class=\"wp-block-preformatted\">\ud83d\udccc consumer \ud568\uc218\uc5d0\uc11c \ud568\uc218\uc758 \uc2e4\ud589\uc744 15\ucd08\ub97c \uc9c0\uc5f0 \uc2dc\ucf1c\uc11c \uc5d0\ub7ec\ub97c \ubc1c\uc0dd\uc2dc\ud0a4\uace0 \uba54\uc138\uc9c0\uac00 \ub9ac\ub4dc\ub77c\uc774\ube0c \uc815\ucc45(\ubc30\ub2ec\ud560 \uc218 \uc5c6\ub294 \uba54\uc2dc\uc9c0\ub97c \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uac70\ub098 \ub300\uae30\uc5f4\ub85c \uc804\uc1a1\ud558\ub294 \ubc29\uc2dd\uc744 \uc815\uc758\ud558\ub294 \uc815\ucc45)\uc73c\ub85c DLQ\ub85c \uba54\uc138\uc9c0\uac00 \ub118\uc5b4\uac00\uac8c \ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4. \uae30\uc874\uc5d0 \uc0dd\uc131\ud55c SQS Worker \ud15c\ud50c\ub9bf\uc5d0\uc11c \uc544\ub798\uc640 \uac19\uc774 index.js \ud30c\uc77c\ub9cc \uc218\uc815\ud558\uc5ec \uc9c4\ud589\ud558\uaca0\uc2b5\ub2c8\ub2e4.<\/pre>\n\n\n\n<p>\ubc30\ud3ec \uc9c4\ud589 \ud6c4 <code>\"body\": \"hello world\"<\/code> \uac12\uc73c\ub85c \ud14c\uc2a4\ud2b8\ub97c \uc9c4\ud589\ud558\uc5ec SQS\uc5d0\uc11c \uba54\uc2dc\uc9c0\uac00 dlq\ub85c \ub118\uc5b4\uac00\ub294\uc9c0 \ud655\uc778<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"235\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-33-1024x235.png\" alt=\"\" class=\"wp-image-584\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-33-1024x235.png 1024w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-33-300x69.png 300w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-33-768x176.png 768w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-33.png 1313w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<pre class=\"wp-block-preformatted\">\ud83d\udca1 Visibility Timeout\nAWS Lambda\uc5d0\uc11c \"\uae30\ubcf8 \ud45c\uc2dc \uc81c\ud55c \uc2dc\uac04\" \ub610\ub294 \"Visibility Timeout\"\uc740 SQS \ub300\uae30\uc5f4\uc5d0\uc11c \uba54\uc2dc\uc9c0\uac00 \ub2e4\ub978 Lambda \ud568\uc218\uc5d0\uac8c \ubcf4\uc774\uc9c0 \uc54a\uace0 \ub300\uae30\ud558\ub294 \uae30\uac04\uc785\ub2c8\ub2e4. \uae30\ubcf8\uac12\uc740 30\ucd08\uc774\uba70, \uc774 \uc2dc\uac04\uc774 \uacbd\uacfc\ud558\uba74 \uba54\uc2dc\uc9c0\ub294 \ub2e4\uc2dc \uc0ac\uc6a9 \uac00\ub2a5\ud55c \uc0c1\ud0dc\ub85c \uc124\uc815\ub429\ub2c8\ub2e4. Lambda \ud568\uc218\uac00 \uba54\uc2dc\uc9c0 \ucc98\ub9ac\ub97c \uc644\ub8cc\ud558\uc9c0 \ubabb\ud55c \uacbd\uc6b0, \uc2dc\uac04\uc774 \uacbd\uacfc\ud558\uba74 \ub300\uae30\uc5f4\uc740 \ud574\ub2f9 \uba54\uc2dc\uc9c0\ub97c \ub2e4\uc2dc \uc0ac\uc6a9 \uac00\ub2a5\ud55c \uc0c1\ud0dc\ub85c \uc124\uc815\ud558\uc5ec \ub2e4\ub978 Lambda \ud568\uc218\uac00 \uba54\uc2dc\uc9c0\ub97c \ucc98\ub9ac\ud560 \uc218 \uc788\uac8c \ub429\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ubc29\uc2dd\uc73c\ub85c \uae30\ubcf8 \ud45c\uc2dc \uc81c\ud55c \uc2dc\uac04\uc740 \uba54\uc2dc\uc9c0 \ucc98\ub9ac\uc758 \uc131\uacf5 \ub610\ub294 \uc2e4\ud328\uc5d0 \ub530\ub77c \ub300\uae30\uc5f4\uc5d0\uc11c \uba54\uc2dc\uc9c0\uc758 \uac00\uc6a9\uc131\uc744 \uc81c\uc5b4\ud569\ub2c8\ub2e4.\n\uc608\ub97c \ub4e4\uc5b4 \uc774\ubc88 \uc2e4\uc2b5\uc5d0\uc11c consumer \ud568\uc218\uac00 15\ucd08\uac00 \uc9c0\uc5f0\ub418\uac8c \ud588\ub294\ub370 Visibility Timeout \uc2dc\uac04\uc744 15\ucd08\ubcf4\ub2e4 \uc801\uc740 \uc2dc\uac04\uc73c\ub85c \uc124\uc815 \ud558\uac8c \ub418\uba74 \ud574\ub2f9 Lambda\uac00 \uba54\uc138\uc9c0\ub97c \uc18c\ube44\ud558\ub3c4 DLQ\uc5d0\ub3c4 \uba54\uc138\uc9c0 \ub300\uae30\uc5f4\uc5d0 \ucd94\uac00\ub418\ub294 \uc0c1\ud669\uc774 \ubc1c\uc0dd\ub418\ubbc0\ub85c \ucc38\uace0\ud574\uc57c \ud55c\ub2e4.<\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD_%EB%B6%84%EC%84%9D_%EB%B0%8F_%EC%B4%88%EA%B8%B0_%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8_%EC%9E%91%EC%84%B1\"><\/span>\uc694\uad6c\uc0ac\ud56d \ubd84\uc11d \ubc0f \ucd08\uae30 \ub2e4\uc774\uc5b4\uadf8\ub7a8 \uc791\uc131<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD\"><\/span>\ud504\ub85c\uc81d\ud2b8 \uc694\uad6c\uc0ac\ud56d<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<ol>\n<li>\uc7ac\uace0\ubd80\uc871\uc73c\ub85c \uc778\ud55c \uad6c\ub9e4\uc2e4\ud328\uc5d0 \ub300\ud55c \uc870\uce58\n<ul>\n<li>Sales API \ub97c \ud1b5\ud574 \uc694\uccad\uc744 \ubc1b\uc740 \uc11c\ubc84\uac00 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \uc7ac\uace0 \uc0c1\ud669\uc744 \ud655\uc778\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\uc7ac\uace0\uac00 \uc788\ub2e4\uba74 \uac10\uc18c\uc2dc\ud0a4\uace0 \uc751\ub2f5\uc73c\ub85c \ud310\ub9e4\uc644\ub8cc \ub0b4\uc6a9\uc744 \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\uc7ac\uace0\uac00 \uc5c6\ub294 \uacbd\uc6b0 \uacf5\uc7a5\uc5d0 \uc8fc\ubb38\uc744 \uc9c4\ud589\ud569\ub2c8\ub2e4<\/li>\n\n\n\n<li>\uc7ac\uace0\uac00 \uc5c6\ub2e4\ub294 \ub0b4\uc6a9\uc744 \ub2f4\uc740 \uba54\uc138\uc9c0 \ud398\uc774\ub85c\ub4dc\uc640 \ud568\uaed8 <strong>SNS topic<\/strong>\uc774 \uc0dd\uc131\ub429\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\uba54\uc2dc\uc9c0\uac00 <strong>SQS<\/strong>\ub85c \uad6c\ud604\ub41c <strong>stock_queue<\/strong>\uc5d0 \uc218\uc2e0\ub429\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>\uba54\uc2dc\uc9c0 \ub204\ub77d \uc0c1\ud669\uc5d0 \ub300\ud55c \uc870\uce58\n<ul>\n<li>\ube48\ubc88\ud55c \uc694\uccad\uc73c\ub85c \uba54\uc2dc\uc9c0 \ub204\ub77d\uc774 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>SQS<\/strong>\uc5d0\uc11c \ucc98\ub9ac\uc644\ub8cc\ub418\uc9c0 \uc54a\uc740 \uba54\uc2dc\uc9c0\ub4e4\uc744 \uccb4\uacc4\uc801\uc73c\ub85c \uad00\ub9ac\ud560 <strong>DLQ(dead_letter_queue)<\/strong>\ub97c \uc0dd\uc131\ud574\uc57c\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>stock_queue<\/strong>\uc640 <strong><strong>DLQ(dead_letter_queue)<\/strong><\/strong>\ub97c \uc5f0\uacb0\ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Legacy \uc2dc\uc2a4\ud15c(Factory \u2192 Warehouse) \uc131\ub2a5\ubb38\uc81c\uc5d0 \ub300\ud55c \uc870\uce58\n<ul>\n<li>\uc548\uc815\uc801\uc73c\ub85c \uc774\ubca4\ud2b8\uac00 \uc804\ub2ec \ub420 \uc218 \uc788\ub294 \uc2dc\uc2a4\ud15c\uc744 \uad6c\ucd95\ud574\uc57c\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li><strong>stock_queue<\/strong> \uc758 \uba54\uc2dc\uc9c0\ub97c \uc18c\ube44\ud558\ub294 <strong>stock_lambda<\/strong>\uc5d0 \uc758\ud574 Factory API\uac00 \ud638\ucd9c\ub429\ub2c8\ub2e4.<\/li>\n\n\n\n<li>Factory\uc758 \uc0dd\uc0b0 \uc644\ub8cc \uba54\uc2dc\uc9c0\ub97c \uc218\uc2e0\ud55c <strong>stock_inc_lambda<\/strong>\uac00 <strong>DB<\/strong>\uc5d0 \uc0c1\ud488 \uc7ac\uace0\ub97c \uc99d\uac00\uc2dc\ud0b5\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"987\" height=\"657\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-34.png\" alt=\"\" class=\"wp-image-590\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-34.png 987w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-34-300x200.png 300w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-34-768x511.png 768w\" sizes=\"(max-width: 987px) 100vw, 987px\" \/><\/figure><\/div>\n\n\n<ol>\n<li><strong>[API\uac8c\uc774\ud2b8\uc6e8\uc774]<\/strong>\ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uad6c\ub9e4\ubc84\ud2bc\uc744 \ub20c\ub7ec \ud1b5\uc2e0\uc744 \ub2e8\uc77c\uc9c4\uc785\uc810\uc778 API\uac8c\uc774\ud2b8\uc6e8\uc774\ub85c \uc2dc\uc791\ud55c\ub2e4.<\/li>\n\n\n\n<li><strong>[Lambda]<\/strong> &#8211; \uad6c\ub9e4 \uc694\uccad(producer)\n<ul>\n<li>API Gateway\ub85c GET \uc694\uccad\uc744 \ubc1b\uc740 \uc11c\ubc84\uac00 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \uc7ac\uace0 \uc0c1\ud669\uc744 \ud655\uc778 -&gt; [RDS]<\/li>\n\n\n\n<li>API Gateway\ub85c POST \uc694\uccad\uc744 \ubc1b\uac8c \ub418\uba74 \uc7ac\uace0\ub97c \ud655\uc778\n<ul>\n<li>\uc7ac\uace0\uac00 \uc788\ub2e4\uba74 \uac10\uc18c\uc2dc\ud0a4\uace0 \uc751\ub2f5\uc73c\ub85c \ud310\ub9e4\uc644\ub8cc \ub0b4\uc6a9\uc744 \uc804\ub2ec -&gt; [API\uac8c\uc774\ud2b8\uc6e8\uc774]<\/li>\n\n\n\n<li>\uc7ac\uace0\uac00 \uc5c6\ub294 \uacbd\uc6b0 \uacf5\uc7a5\uc5d0 \uc8fc\ubb38\uc744 \uc9c4\ud589 -&gt; [SNS]<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>[SNS] <\/strong>: \uc7ac\uace0\uac00 \uc5c6\ub2e4\ub294 Topic(\uc8fc\uc81c)\ub97c \uc0dd\uc131 \ud6c4 \uba54\uc138\uc9c0\ub97c SQS\ub85c \uc804\ub2ec<\/li>\n\n\n\n<li><strong>[SQS]<\/strong>\n<ul>\n<li>SNS\ub97c \ud1b5\ud574 \ubc1b\uc740 \uba54\uc138\uc9c0\ud050\ub97c Lambda\uac00 \uba54\uc2dc\uc9c0\ub97c \ubc1b\uc744 \uc900\ube44\uac00 \ub418\uba74 \ucc98\ub9ac <code>loose coupling<\/code><\/li>\n\n\n\n<li>\ube48\ubc88\ud55c \uc694\uccad\uc73c\ub85c \uba54\uc2dc\uc9c0 \ub204\ub77d\uc774 \ubc1c\uc0dd\ub418\ubbc0\ub85c \uc774 \uba54\uc138\uc9c0\ub4e4\uc744 \uad00\ub9ac\ud560 \ub300\uae30\uc5f4 \uc0dd\uc131 -&gt; [DLQ]<\/li>\n\n\n\n<li>DLQ\uc5d0 \ub204\ub77d\ub41c \uba54\uc138\uc9c0\ub294 \uc8fc\uae30\uc801\uc73c\ub85c SQS \uc7ac\uc2dc\ub3c4 \ud655\uc778 \uc2dc\ub3c4 \ud558\uace0 \ub3d9\uc77c\ud55c \uba54\uc138\uc9c0\uac00 DLQ\ub85c \ub4e4\uc5b4\uc628\ub2e4\uba74 SNS Topic\uc744 \uc0dd\uc131\ud558\uc5ec \uc6b4\uc601\uc790\uc5d0\uac8c \uba54\uc138\uc9c0\ub85c \uc54c\ub9b0\ub2e4.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>[Lambda]<\/strong> &#8211; \uacf5\uc7a5 \uc8fc\ubb38 (cosumer)\n<ul>\n<li>\ud568\uc218\uac00 \uc2e4\ud589\ub418\uba74 \uacf5\uc7a5 API\ub85c \uc774\ubca4\ud2b8\uac00 \uc804\ub2ec<\/li>\n\n\n\n<li>\uc7ac\uace0\uac00 \ucc3d\uace0\ub85c \uc804\ub2ec\ub418\uba74 \uc7ac\uace0 \uc99d\uac00 \ud504\ub85c\uc138\uc2a4\ub97c \uc9c4\ud589\ud558\uc5ec DB\uc5d0 \uc0c1\ud488 \uc7ac\uace0\ub97c \uc99d\uac00\uc2dc\ud0b4<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Day_2_%E2%80%93_%EA%B5%AC%EB%A7%A4_%EC%9A%94%EC%B2%AD_%EB%B0%8F_%EC%9E%AC%EA%B3%A0_%EA%B4%80%EB%A6%AC_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EA%B5%AC%ED%98%84\"><\/span>Day 2 &#8211; \uad6c\ub9e4 \uc694\uccad \ubc0f \uc7ac\uace0 \uad00\ub9ac \ud504\ub85c\uc138\uc2a4 \uad6c\ud604<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-6\">\n<div class=\"wp-block-column is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-36.png\" alt=\"\" class=\"wp-image-592\" width=\"423\" height=\"438\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-36.png 724w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-36-290x300.png 290w\" sizes=\"(max-width: 423px) 100vw, 423px\" \/><\/figure><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\">\n<ul>\n<li>\uba54\uc2dc\uc9c0 \ud050\uc758 Pub\/Sub \ud328\ud134\uacfc Producer\/Consumer \ud328\ud134\uc758 \ucc28\uc774\ub97c \uc774\ud574\ud55c\ub2e4<\/li>\n\n\n\n<li>DB\uc640 \uc11c\ubc84\uc640\uc758 \ud1b5\uc2e0\uc774 \uac00\ub2a5\ud558\ub3c4\ub85d \uc5f0\uacb0\ud55c\ub2e4<\/li>\n\n\n\n<li>\ud2b9\uc815 \uc0c1\ud669\uc5d0\uc11c SNS, SQS\ub85c \uba54\uc2dc\uc9c0\uac00 \uc804\ub2ec\ub418\ub3c4\ub85d \uc2dc\uc2a4\ud15c\uc744 \uad6c\uc131\ud55c\ub2e4<\/li>\n\n\n\n<li>SQS\uc5d0 \ub4e4\uc5b4\uc628 \uba54\uc2dc\uc9c0\ub97c \ub808\uac70\uc2dc \uc2dc\uc2a4\ud15c(Factory API)\uc73c\ub85c \uc804\ub2ec\ud558\ub294 \uc2dc\uc2a4\ud15c\uc744 \uad6c\uc131\ud55c\ub2e4<\/li>\n\n\n\n<li>\ub808\uac70\uc2dc \uc2dc\uc2a4\ud15c(Factory API)\uc758 \ucf5c\ubc31 \ub300\uc0c1\uc774 \ub418\ub294 \ub9ac\uc18c\uc2a4\ub97c \uc0dd\uc131\ud574 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\uac8c \ud55c\ub2e4<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EA%B5%AC%EB%A7%A4_%EC%9A%94%EC%B2%AD_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EA%B5%AC%ED%98%84\"><\/span>\uad6c\ub9e4 \uc694\uccad \ud504\ub85c\uc138\uc2a4 \uad6c\ud604<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-9\">\n<div class=\"wp-block-column is-layout-flow\" style=\"flex-basis:66.66%\">\n<pre class=\"wp-block-preformatted\">\u2714 \uc0c1\ud488 \uc815\ubcf4 \ud14c\uc774\ube14, \uacf5\uc7a5 \uc815\ubcf4 \ud14c\uc774\ube14 \uc0dd\uc131\n     DB\uc640 \uc11c\ubc84 \ud1b5\uc2e0\uc774 \uac00\ub2a5\ud558\ub3c4\ub85d \uc5f0\uacb0<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center has-base-2-background-color has-background is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-39.png\" alt=\"\" class=\"wp-image-600\" width=\"50\" height=\"62\"\/><\/figure><\/div><\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Create_Database\"><\/span>Create Database<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"218\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-37-1024x218.png\" alt=\"\" class=\"wp-image-598\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-37-1024x218.png 1024w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-37-300x64.png 300w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-37-768x163.png 768w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-37.png 1383w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-12\">\n<div class=\"wp-block-column is-layout-flow\" style=\"flex-basis:66.66%\">\n<pre class=\"wp-block-preformatted\">\u2714 \ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc811\uadfc\ud560 API, \uad6c\ub9e4\uc694\uccad\ucc98\ub9ac\ud568\uc218 Lambda, \uc7ac\uace0\uc694\uccad\ud560 SQS \uc0dd\uc131<\/pre>\n\n\n\n<ul>\n<li>\ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc694\uccad\ud55c \uc0c1\ud488\uc758 \uc7ac\uace0\uac00 \uc874\uc7ac\ud558\ub294 \uacbd\uc6b0 product \ud14c\uc774\ube14\uc5d0 stock \uceec\ub7fc\uc758 number\ub97c \uc694\uccad\ud55c \uc0c1\ud488\uc758 \uac1c\uc218\ub9cc\ud07c \uac10\uc18c<\/li>\n\n\n\n<li>\ud074\ub77c\uc774\uc5b8\ud2b8\uac00 \uc694\uccad\ud55c \uc0c1\ud488\uc758 \uc7ac\uace0\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\ub294 \uacbd\uc6b0 \uc7ac\uace0 \uc694\uccad \uba54\uc138\uc9c0 \ud050\ub97c \uc0dd\uc131\ud558\uc5ec SQS\ub85c \uc804\ub2ec<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/sales-api\" data-type=\"URL\" data-id=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/sales-api\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Link<\/a><\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column has-base-2-background-color has-background is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-40.png\" alt=\"\" class=\"wp-image-603\" width=\"171\" height=\"378\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-40.png 342w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-40-136x300.png 136w\" sizes=\"(max-width: 171px) 100vw, 171px\" \/><\/figure><\/div><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>\ud83d\udca1 \uc5ec\uae30\uc11c <code>!Ref<\/code>\ub294 \ubb50\uc9c0..?<\/p>\n<cite>Reference\uc758 \uc57d\uc790 \uc774\uba70 AWS CloudFormation \ud15c\ud50c\ub9bf\uc5d0\uc11c \uc0ac\uc6a9\ub418\ub294 \ub0b4\uc7a5 \ud568\uc218\uc785\ub2c8\ub2e4. \uc774 \ud568\uc218\ub294 \ub9ac\uc18c\uc2a4\ub098 \ub9e4\uac1c \ubcc0\uc218\uc758 \uac12\uc744 \ucc38\uc870\ud560 \ub54c \uc0ac\uc6a9\ub429\ub2c8\ub2e4.<br>\uc608\ub97c \ub4e4\uc5b4, <code>!Ref SuperTopic<\/code>\ub294 <code>SuperTopic<\/code> \ub9ac\uc18c\uc2a4\uc758 \uc2dd\ubcc4\uc790\ub098 \uac12\uc744 \ucc38\uc870\ud569\ub2c8\ub2e4. CloudFormation\uc740 \uc774 \ucc38\uc870\ub97c \ud1b5\ud574 \ud574\ub2f9 \ub9ac\uc18c\uc2a4\uc5d0 \ub300\ud55c \uc815\ubcf4\ub97c \uac00\uc838\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub530\ub77c\uc11c <code>TOPIC_ARN<\/code> \ud658\uacbd \ubcc0\uc218\uc5d0 <code>SuperTopic<\/code>\uc758 ARN(Amazon Resource Name)\uc774 \ud560\ub2f9\ub429\ub2c8\ub2e4.<br>\uc774\ub7ec\ud55c \ubc29\uc2dd\uc73c\ub85c, <code>!Ref<\/code> \ud568\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \ud15c\ud50c\ub9bf \ub0b4\uc5d0\uc11c \ub9ac\uc18c\uc2a4 \uac04\uc5d0 \uc0c1\ud638 \uc791\uc6a9\ud558\uac70\ub098 \ub2e4\ub978 \uc124\uc815\uc5d0 \uac12\uc744 \uc804\ub2ec\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/cite><\/blockquote>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%F0%9F%86%97%EB%B0%B0%ED%8F%AC_%ED%9B%84_API_Endpoint_Get_Test\"><\/span>\ud83c\udd97\ubc30\ud3ec \ud6c4 API Endpoint Get Test<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"614\" height=\"182\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-41.png\" alt=\"\" class=\"wp-image-614\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-41.png 614w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-41-300x89.png 300w\" sizes=\"(max-width: 614px) 100vw, 614px\" \/><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%F0%9F%86%97%EB%B0%B0%ED%8F%AC_%ED%9B%84_API_Endpoint_POST_Test\"><\/span>\ud83c\udd97\ubc30\ud3ec \ud6c4 API Endpoint POST Test<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"user01@ubuntu:~$ curl -X POST https:\/\/bukg10mi8f.execute-api.ap-northeast-2.amazonaws.com\/checkout\n{&quot;message&quot;:&quot;\uad6c\ub9e4 \uc644\ub8cc! \ub0a8\uc740 \uc7ac\uace0: 2&quot;}\nuser01@ubuntu:~$ curl -X GET https:\/\/bukg10mi8f.execute-api.ap-northeast-2.amazonaws.com\/product\/donut\n{&quot;product_id&quot;:&quot;082f04d0-fac9-11ed-8f43-0e2f76dd43b0&quot;,&quot;name&quot;:&quot;\ubd80\uc0b0\ub3c4\ub108\uce20&quot;,&quot;price&quot;:19900,&quot;stock&quot;:2,&quot;BIN_TO_UUID(factory_id)&quot;:&quot;809d9d64-fac8-11ed-8f43-0e2f76dd43b0&quot;,&quot;BIN_TO_UUID(ad_id)&quot;:&quot;809fc9f0-fac8-11ed-8f43-0e2f76dd43b0&quot;}\nuser01@ubuntu:~$ curl -X POST https:\/\/bukg10mi8f.execute-api.ap-northeast-2.amazonaws.com\/checkout\n{&quot;message&quot;:&quot;\uad6c\ub9e4 \uc644\ub8cc! \ub0a8\uc740 \uc7ac\uace0: 1&quot;}\nuser01@ubuntu:~$ curl -X GET https:\/\/bukg10mi8f.execute-api.ap-northeast-2.amazonaws.com\/product\/donut\n{&quot;product_id&quot;:&quot;082f04d0-fac9-11ed-8f43-0e2f76dd43b0&quot;,&quot;name&quot;:&quot;\ubd80\uc0b0\ub3c4\ub108\uce20&quot;,&quot;price&quot;:19900,&quot;stock&quot;:1,&quot;BIN_TO_UUID(factory_id)&quot;:&quot;809d9d64-fac8-11ed-8f43-0e2f76dd43b0&quot;,&quot;BIN_TO_UUID(ad_id)&quot;:&quot;809fc9f0-fac8-11ed-8f43-0e2f76dd43b0&quot;}\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-X<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">POST<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/bukg10mi8f.execute-api.ap-northeast-2.amazonaws.com\/checkout<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #88C0D0\">&quot;message&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;\uad6c\ub9e4 \uc644\ub8cc! \ub0a8\uc740 \uc7ac\uace0: 2&quot;<\/span><span style=\"color: #88C0D0\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-X<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">GET<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/bukg10mi8f.execute-api.ap-northeast-2.amazonaws.com\/product\/donut<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #88C0D0\">&quot;product_id&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;082f04d0-fac9-11ed-8f43-0e2f76dd43b0&quot;<\/span><span style=\"color: #88C0D0\">,<\/span><span style=\"color: #88C0D0\">&quot;name&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;\ubd80\uc0b0\ub3c4\ub108\uce20&quot;<\/span><span style=\"color: #88C0D0\">,<\/span><span style=\"color: #88C0D0\">&quot;price&quot;<\/span><span style=\"color: #88C0D0\">:19900,<\/span><span style=\"color: #88C0D0\">&quot;stock&quot;<\/span><span style=\"color: #88C0D0\">:2,<\/span><span style=\"color: #88C0D0\">&quot;BIN_TO_UUID(factory_id)&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;809d9d64-fac8-11ed-8f43-0e2f76dd43b0&quot;<\/span><span style=\"color: #88C0D0\">,<\/span><span style=\"color: #88C0D0\">&quot;BIN_TO_UUID(ad_id)&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;809fc9f0-fac8-11ed-8f43-0e2f76dd43b0&quot;<\/span><span style=\"color: #88C0D0\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-X<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">POST<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/bukg10mi8f.execute-api.ap-northeast-2.amazonaws.com\/checkout<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #88C0D0\">&quot;message&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;\uad6c\ub9e4 \uc644\ub8cc! \ub0a8\uc740 \uc7ac\uace0: 1&quot;<\/span><span style=\"color: #88C0D0\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88C0D0\">user01@ubuntu:~$<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">curl<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">-X<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">GET<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #A3BE8C\">https:\/\/bukg10mi8f.execute-api.ap-northeast-2.amazonaws.com\/product\/donut<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><span style=\"color: #88C0D0\">&quot;product_id&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;082f04d0-fac9-11ed-8f43-0e2f76dd43b0&quot;<\/span><span style=\"color: #88C0D0\">,<\/span><span style=\"color: #88C0D0\">&quot;name&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;\ubd80\uc0b0\ub3c4\ub108\uce20&quot;<\/span><span style=\"color: #88C0D0\">,<\/span><span style=\"color: #88C0D0\">&quot;price&quot;<\/span><span style=\"color: #88C0D0\">:19900,<\/span><span style=\"color: #88C0D0\">&quot;stock&quot;<\/span><span style=\"color: #88C0D0\">:1,<\/span><span style=\"color: #88C0D0\">&quot;BIN_TO_UUID(factory_id)&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;809d9d64-fac8-11ed-8f43-0e2f76dd43b0&quot;<\/span><span style=\"color: #88C0D0\">,<\/span><span style=\"color: #88C0D0\">&quot;BIN_TO_UUID(ad_id)&quot;<\/span><span style=\"color: #88C0D0\">:<\/span><span style=\"color: #88C0D0\">&quot;809fc9f0-fac8-11ed-8f43-0e2f76dd43b0&quot;<\/span><span style=\"color: #88C0D0\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Day_3_%EC%9E%AC%EA%B3%A0_%EA%B4%80%EB%A6%AC_%EC%8B%9C%EC%8A%A4%ED%85%9C_%EC%99%84%EC%84%B1\"><\/span>Day 3 \uc7ac\uace0 \uad00\ub9ac \uc2dc\uc2a4\ud15c \uc644\uc131<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-15\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"765\" height=\"584\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-45.png\" alt=\"\" class=\"wp-image-622\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-45.png 765w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-45-300x229.png 300w\" sizes=\"(max-width: 765px) 100vw, 765px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\">\n<ul>\n<li>[Day 2 &#8211; \uad6c\ud604\uc644\ub8cc]\uc7ac\uace0\uac00 \uc5c6\uc744 \uacbd\uc6b0 SNS\ub85c \uc54c\ub9bc\uc744 \ubc1b\uc544 SQS\ub85c \uba54\uc138\uc9c0 \ud050\ub97c \uc0dd\uc131\uc2dc\ud0a4\ub294 \uac83\uae4c\uc9c0 \uc644\ub8cc\ud558\uc600\uc2b5\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\ub2e4\uc74c\uc73c\ub85c Lambda \ud568\uc218\uac00 \ud574\ub2f9 \uba54\uc138\uc9c0 \ud050\ub97c \uc804\ub2ec \ubc1b\uc544 \uc815\ud655\ud55c \ud488\ubaa9\uc744 \uc8fc\ubb38\ud558\uae30 \uc704\ud574 \ud488\ubaa9\uc18d\uc131\uc744 \uc815\uc758\ud55c \ub370\uc774\ud130\ub97c \uacf5\uc7a5\uc73c\ub85c \uc804\ub2ec\ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\uacf5\uc7a5\uc5d0\uc11c \ud574\ub2f9 \ud488\ubaa9\uc774 \uc0dd\uc131\ub418\uace0 \ucc3d\uace0\ub85c \uc7ac\uace0\uac00 \ud655\ubcf4\ub418\uba74 \uc7ac\uace0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc7ac\uace0 \uc218\ub7c9\uc744 \uc5c5\ub370\uc774\ud2b8 \ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EA%B3%B5%EC%9E%A5_%EC%A3%BC%EB%AC%B8_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EA%B5%AC%ED%98%84\"><\/span>\uacf5\uc7a5 \uc8fc\ubb38 \ud504\ub85c\uc138\uc2a4 \uad6c\ud604<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-18\">\n<div class=\"wp-block-column is-layout-flow\" style=\"flex-basis:66.66%\">\n<pre class=\"wp-block-preformatted\">\u2714 Lambda \uc0dd\uc131\uc2dc SQS \ud2b8\ub9ac\uac70 \ucd94\uac00\n     \uc0dd\uc131\ud55c Lambda\ub294 \uc8fc\ubb38\ud560 \ud488\ubaa9\uc744 \ud398\uc774\ub85c\ub4dc\ub85c \uacf5\uc7a5\uc73c\ub85c \uc804\ub2ec<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"405\" height=\"127\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-46.png\" alt=\"\" class=\"wp-image-623\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-46.png 405w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-46-300x94.png 300w\" sizes=\"(max-width: 405px) 100vw, 405px\" \/><\/figure><\/div><\/div>\n<\/div>\n\n\n\n<p><a href=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/stock-lambda\" data-type=\"URL\" data-id=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/stock-lambda\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Link<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EC%9E%AC%EA%B3%A0_%EC%A6%9D%EA%B0%80_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4_%EA%B5%AC%ED%98%84\"><\/span>\uc7ac\uace0 \uc99d\uac00 \ud504\ub85c\uc138\uc2a4 \uad6c\ud604<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-21\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\" style=\"flex-basis:66.66%\">\n<pre class=\"wp-block-preformatted\">\u2714 \uacf5\uc7a5\uc5d0\uc11c \uc7ac\uace0 \uc0dd\uc131\uc644\ub8cc\uac00 \ub418\uba74 API Gateway\ub85c \ud574\ub2f9 \ud398\uc774\ub85c\ub4dc\ub97c \uc804\ub2ec \ubc1b\uc74c\n     \uc804\ub2ec\ubc1b\uc740 \ud398\uc774\ub85c\ub4dc\ub294 Lambda \uc11c\ube44\uc2a4\uac00 \uc774\uc5b4\uc11c \ucc98\ub9ac\ub97c \uc9c4\ud589\n     \ud574\ub2f9 Lambda \ud568\uc218\ub294 RDS\ub85c \uc7ac\uace0 \uc218\ub7c9\uc744 \uc5c5\ub370\uc774\ud2b8<\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"275\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-48.png\" alt=\"\" class=\"wp-image-625\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-48.png 403w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-48-300x205.png 300w\" sizes=\"(max-width: 403px) 100vw, 403px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p><a href=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/stock-increase-lambda\" data-type=\"URL\" data-id=\"https:\/\/github.com\/Park-ChanKyu\/devops-bootcamp-Project03\/tree\/main\/stock-increase-lambda\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Link<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EB%B0%B0%ED%8F%AC_%ED%9B%84_Test\"><\/span><img decoding=\"async\" draggable=\"false\" class=\"eedee-emoji\" src=\"https:\/\/s.w.org\/images\/core\/emoji\/12.0.0-1\/svg\/1f197.svg\" alt=\"\ud83c\udd97\">\ubc30\ud3ec \ud6c4 Test<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-24\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\">\n<p><strong>1\ufe0f\u20e3[POST] \ub3c4\ub11b \uc694\uccad!<\/strong><\/p>\n\n\n\n<ul>\n<li>\uad6c\ub9e4\uc790 : \ubc15\ub3c4\ub11b<\/li>\n\n\n\n<li>\ud488\ubaa9 : \ubd80\uc0b0\ub3c4\ub108\uce20<\/li>\n\n\n\n<li>\uc218\ub7c9 : 9\uac1c<\/li>\n<\/ul>\n\n\n\n<p>\u27a1\ubc15\ub3c4\ub11b\uc740 \ubd80\uc0b0\ub3c4\ub108\uce20\ub97c 9\uac1c\ub97c \uc694\uccad\uc744 \ud588\ub2e4 \ud558\uc9c0\ub9cc \uc7ac\uace0\uac00 \uc5c6\uc73c\ubbc0\ub85c \uacf5\uc7a5\uc73c\ub85c \ud574\ub2f9 \ud488\ubaa9\uc744 \uc8fc\ubb38 \uc694\uccad\uc744 \ubcf4\ub0b8\ub2e4<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-52.png\" alt=\"\" class=\"wp-image-629\" width=\"673\" height=\"364\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-52.png 584w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-52-300x162.png 300w\" sizes=\"(max-width: 673px) 100vw, 673px\" \/><\/figure><\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"707\" height=\"579\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-59.png\" alt=\"\" class=\"wp-image-638\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-59.png 707w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-59-300x246.png 300w\" sizes=\"(max-width: 707px) 100vw, 707px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-27\">\n<div class=\"wp-block-column is-layout-flow\">\n<p>2\ufe0f\u20e3<strong>\uc8fc\ubb38 \uc694\uccad\uc744 \ubc1b\uc740 \ub2e4\uc74c \ud544\uc694\ud55c \uc815\ubcf4\ub9cc \uac00\uacf5 \ud6c4 \uacf5\uc7a5\uc73c\ub85c \uc804\ub2ec<\/strong><\/p>\n\n\n\n<p>\ud83d\udcc9SQS\uc5d0\uc11c \uc804\ub2ec\ubc1b\uc740 Request body log<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"935\" height=\"531\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-57.png\" alt=\"\" class=\"wp-image-635\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-57.png 935w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-57-300x170.png 300w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-57-768x436.png 768w\" sizes=\"(max-width: 935px) 100vw, 935px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"709\" height=\"578\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-62.png\" alt=\"\" class=\"wp-image-641\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-62.png 709w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-62-300x245.png 300w\" sizes=\"(max-width: 709px) 100vw, 709px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-30\">\n<div class=\"wp-block-column is-layout-flow\">\n<p>3\ufe0f\u20e3 \uc8fc\ubb38 \uba54\uc138\uc9c0\ub97c \ubc1b\uc740 \uacf5\uc7a5\uc5d0\uc11c \uc0dd\uc0b0 \uc9c4\ud589\u23f3<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"788\" height=\"468\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-56.png\" alt=\"\" class=\"wp-image-633\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-56.png 788w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-56-300x178.png 300w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-56-768x456.png 768w\" sizes=\"(max-width: 788px) 100vw, 788px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"585\" height=\"476\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-63.png\" alt=\"\" class=\"wp-image-642\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-63.png 585w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-63-300x244.png 300w\" sizes=\"(max-width: 585px) 100vw, 585px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-33\">\n<div class=\"wp-block-column is-layout-flow\">\n<p>4\ufe0f\u20e3\uacf5\uc7a5\uc740 \uc0dd\uc0b0\uc774 \uc644\ub8cc\ub41c \ud6c4 \uc7ac\uace0\uc99d\uac00 API\ub85c POST<\/p>\n\n\n\n<p>\ud83d\udcc9\uacf5\uc7a5\uc5d0\uc11c \ubc1b\uc740 Request body log<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"140\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-65.png\" alt=\"\" class=\"wp-image-644\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-65.png 652w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-65-300x64.png 300w\" sizes=\"(max-width: 652px) 100vw, 652px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"584\" height=\"484\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-64.png\" alt=\"\" class=\"wp-image-643\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-64.png 584w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-64-300x249.png 300w\" sizes=\"(max-width: 584px) 100vw, 584px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-36\">\n<div class=\"wp-block-column is-layout-flow\">\n<p>\ud83c\udd97\uc7ac\uace0\uc99d\uac00 \ud504\ub85c\uc138\uc2a4\uac00 \uc644\ub8cc \ub41c \ud6c4 \ud655\uc778<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"320\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-69-1024x320.png\" alt=\"\" class=\"wp-image-648\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-69-1024x320.png 1024w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-69-300x94.png 300w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-69-768x240.png 768w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-69.png 1058w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"596\" height=\"473\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-66.png\" alt=\"\" class=\"wp-image-645\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-66.png 596w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-66-300x238.png 300w\" sizes=\"(max-width: 596px) 100vw, 596px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EC%9E%AC%EA%B3%A0_%EA%B4%80%EB%A6%AC_%EC%8B%9C%EC%8A%A4%ED%85%9C_%EC%99%B8_%EC%B6%94%EA%B0%80_%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4\"><\/span>\uc7ac\uace0 \uad00\ub9ac \uc2dc\uc2a4\ud15c \uc678 \ucd94\uac00 \uc2dc\ub098\ub9ac\uc624<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">\ud83d\udd20 \uc2e4\uc81c \uad6c\ud604\ud558\uc9c0\ub294 \uc54a\uc558\uc9c0\ub9cc \uc7ac\uace0 \uad00\ub9ac \ud504\ub85c\uc138\uc2a4 \uc644\uc131 \ud6c4 \uc544\ub798 \uc694\uad6c\uc0ac\ud56d\uc774 \ucd94\uac00\ub418\uc5c8\ub2e4\uace0 \uc0dd\uac01\ud558\uace0 \ub2e4\uc774\uc5b4\uadf8\ub7a8\uc73c\ub85c\ub9cc \ud3b8\uc9d1\ud588\uc73c\uba70 \ud504\ub85c\uc81d\ud2b8 \ud300\uc6d0\uacfc \uc758\uacac\uc744 \ub098\ub204\uba74\uc11c \uc544\ud0a4\ud14d\ucc98\ub97c \ud655\uc7a5\uc744 \ud574\ubcf4\uc558\uc2b5\ub2c8\ub2e4.<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EC%B6%94%EA%B0%80_%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4_%EC%9A%94%EA%B5%AC_%EC%82%AC%ED%95%AD\"><\/span>\ucd94\uac00 \uc2dc\ub098\ub9ac\uc624 \uc694\uad6c \uc0ac\ud56d<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EA%B4%91%EA%B3%A0_%EC%A4%91%EB%8B%A8_%EC%9A%94%EC%B2%AD_%EC%A7%84%ED%96%89\"><\/span>\uad11\uace0 \uc911\ub2e8 \uc694\uccad \uc9c4\ud589<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>\uc7ac\uace0\uac00 \uc5c6\ub294 \uc0c1\ud669\uc5d0\uc11c\ub3c4 \uad11\uace0\uac00 \uacc4\uc18d \uc9c4\ud589\ub418\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uad11\uace0 \ube44\uc6a9 \uc808\uac10\uacfc \uace0\uac1d\ubd88\ub9cc\uc744 \ub0ae\ucd94\uae30 \uc704\ud55c \uc870\uce58\uac00 \ud544\uc694\ud569\ub2c8\ub2e4. \uba54\uc2dc\uc9c0\uac00 \uc720\uc2e4\ub418\ub294 \uc0c1\ud669\uc744 \ub9c9\uae30 \uc704\ud574 \ub0b4\uad6c\uc131\uc744 \uac16\ucd98 \uc2dc\uc2a4\ud15c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<ul>\n<li>\uc694\uad6c\uc0ac\ud56d\n<ul>\n<li>\uc7ac\uace0\ub97c \ucc44\uc6b0\uae30 \uc704\ud55c \uacfc\uc815\uc774 \uc9c4\ud589\ub420 \ub54c \uad11\uace0 \ub2f4\ub2f9\uc790\uc5d0\uac8c \uad11\uace0 \uc911\ub2e8 \uc694\uccad \ub0b4\uc6a9\uc744 \ub2f4\uc740 \uc774\uba54\uc77c\uc774 \uc804\uc1a1\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\uba54\uc2dc\uc9c0\uc5d0 \ub300\ud55c \ub0b4\uad6c\uc131\uc744 \uac15\ud654\ud558\uae30 \uc704\ud574 \uba54\uc2dc\uc9c0 Queue\uac00 \uc0ac\uc6a9\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>AWS SES \uc11c\ube44\uc2a4\ub97c \uc774\uc6a9\ud574\uc11c \uc774\uba54\uc77c\uc744 \uc804\uc1a1\ud574\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"VIP_%EA%B3%A0%EA%B0%9D%EA%B4%80%EB%A6%AC_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4\"><\/span>VIP \uace0\uac1d\uad00\ub9ac \ud504\ub85c\uc138\uc2a4<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<blockquote class=\"wp-block-quote\">\n<p>\ubaa8\ub2c8\ud130\ub9c1 \uacb0\uacfc \ub300\ub7c9 \uc8fc\ubb38\uc744 \ud558\ub294 \uc77c\ubd80 \uace0\uac1d\ub4e4\uc774 \ud655\uc778\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \ub300\ub7c9 \uad6c\ub9e4 \uace0\uac1d\ub4e4\uc758 \uc0ac\uc6a9\uc790 \uc815\ubcf4\ub97c \uc2dd\ubcc4\ud560 \uc218 \uc788\uc5b4\uc57c \ud569\ub2c8\ub2e4. \uace0\uac1d\uc815\ubcf4\ub294 \ubcc4\ub3c4\uc758 \uc11c\ubc84(EC2)\uc640 \ub370\uc774\ud130\ubca0\uc774\uc2a4(RDS)\uc5d0\uc11c \uad00\ub9ac\ub418\uace0 \uc788\uc2b5\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uae30\ub85d\uacfc \uc678\ubd80 \ub9c8\ucf00\ud305 \uc2dc\uc2a4\ud15c\uc73c\ub85c\uc758 \uc5f0\uacb0\uacfc\uc815\uc758 \uc624\ub958\ub97c \ub300\ube44\ud558\uae30 \uc704\ud55c \ub0b4\uad6c\uc131 \uac16\ucd98 \uc2dc\uc2a4\ud15c\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.<\/p>\n<\/blockquote>\n\n\n\n<ul>\n<li>\uc694\uad6c\uc0ac\ud56d\n<ul>\n<li>100\uac1c \uc774\uc0c1 \uad6c\ub9e4\uac00 \ubc1c\uc0dd \uc2dc \ud574\ub2f9 \uc720\uc800\uc758 \ud0c0\uc785\uc774 normal\uc5d0\uc11c Vip\ub85c \ubcc0\uacbd\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\uba54\uc2dc\uc9c0\uc5d0 \ub300\ud55c \ub0b4\uad6c\uc131\uc744 \uac15\ud654\ud558\uae30 \uc704\ud574 \uba54\uc2dc\uc9c0 Queue\uac00 \uc0ac\uc6a9\ub418\uc5b4\uc57c \ud569\ub2c8\ub2e4.<\/li>\n\n\n\n<li>\uace0\uac1d\uad00\ub9ac\ub294 \ubcc4\ub3c4\uc758 \ub370\uc774\ud130\ubca0\uc774\uc2a4(RDS)\ub85c \uad00\ub9ac\ub418\uace0 \uc788\uae30 \ub54c\ubb38\uc5d0 \ud574\ub2f9 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc811\uadfc\ud574\uc11c \uc815\ubcf4\ub97c \uc218\uc815\ud574\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EC%B6%94%EA%B0%80_%EC%8B%9C%EB%82%98%EB%A6%AC%EC%98%A4_%EA%B5%AC%EC%84%B1_%EC%A7%84%ED%96%89\"><\/span>\ucd94\uac00 \uc2dc\ub098\ub9ac\uc624 \uad6c\uc131 \uc9c4\ud589<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-81-1024x935.png?v=1685261488\" alt=\"\" class=\"wp-image-689\" width=\"730\" height=\"666\" srcset=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-81-1024x935.png 1024w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-81-300x274.png 300w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-81-768x701.png 768w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-81-1536x1402.png 1536w, https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-81.png 1607w\" sizes=\"(max-width: 730px) 100vw, 730px\" \/><\/figure>\n\n\n\n<p>\ud300\uc6d0\uacfc \uc758\uacac\uc744 \ub098\ub204\uba70 \uc9c4\ud589\uc744 \ud588\uc73c\uba70 \uac01 \ud300\uc6d0\uba85\uc740 \uacf5\uac1c\uc801\uc778 \ub178\ucd9c\uc744 \ud53c\ud558\uae30 \uc704\ud574 \uc774\ub2c8\uc15c\ub85c\ub9cc \uc791\uc131\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul>\n<li>PCK : \ud504\ub85c\uc138\uc2a4 \ubcc4\ub85c \uadf8\ub8f9\ud654\ub97c \ud558\uc5ec \uac00\uc2dc\uc131\uc744 \ud655\ubcf4<\/li>\n\n\n\n<li>ORR : \ud574\ub2f9 \uc11c\ube44\uc2a4\uc5d0\uc11c \uba54\uc138\uc9c0\ub97c \ubcf4\ub0bc\ub54c \uc5b4\ub5a4 \ub9ac\uc18c\uc2a4\ub97c \uc774\uc6a9\ud574\uc11c \uc804\ub2ec\ub418\ub294\uc9c0 \ud45c\ud604\ud558\uae30 \uc704\ud574 \ub9ac\uc18c\uc2a4 \uc544\uc774\ucf58 \ucd94\uac00<\/li>\n\n\n\n<li>OTK(Team Leader) : \ud504\ub85c\uc138\uc2a4 \ubcc4\ub85c SQS \uc11c\ube44\uc2a4\ub97c \uad6c\ubd84, \uad11\uace0 \uc911\ub2e8 \ud504\ub85c\uc138\uc2a4\uc5d0\uc11c \uad11\uace0 \uc9c4\ud589 \uc5ec\ubd80\ub97c \ud655\uc778\ud558\uae30 \uc704\ud574 RDS\ub85c \uc5f0\uacb0<\/li>\n\n\n\n<li>KWM : \uc7ac\uace0 \uad00\ub9ac \ud504\ub85c\uc138\uc2a4\uc5d0\uc11c \uace0\uac1d\uad00\ub9ac \ud504\ub85c\uc138\uc2a4\ub85c \uba54\uc138\uc9c0\ub97c \ubcf4\ub0bc\ub54c \uc5b4\ub5a4 \uc870\uac74\uc778\uc9c0 \uba85\uc2dc<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EA%B4%91%EA%B3%A0_%EC%A4%91%EB%8B%A8_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4\"><\/span>\uad11\uace0 \uc911\ub2e8 \ud504\ub85c\uc138\uc2a4<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<ul>\n<li>\uad11\uace0 \uc911\ub2e8 \uc694\uccad\uc774 SQS\ub97c \ud1b5\ud574 \ub4e4\uc5b4\uc624\uba74 RDS\uc5d0 \uc7ac\uace0\uac00 \uc5c6\ub294\uc9c0 \ud655\uc778\ud558\uac8c \ub428<\/li>\n\n\n\n<li>\uc7ac\uace0\uac00 \uc5c6\uc744 \uacbd\uc6b0 SES\ub97c \ud1b5\ud574 \ub2f4\ub2f9\uc790\uc5d0\uac8c \uc774\uba54\uc77c\uc744 \ubcf4\ub0c4<\/li>\n<\/ul>\n\n\n\n<h5 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EA%B3%A0%EA%B0%9D_%EA%B4%80%EB%A6%AC_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4\"><\/span>\uace0\uac1d \uad00\ub9ac \ud504\ub85c\uc138\uc2a4<span class=\"ez-toc-section-end\"><\/span><\/h5>\n\n\n\n<ul>\n<li>\uc7ac\uace0\uad00\ub9ac \ud504\ub85c\uc138\uc2a4\uc5d0 \uc788\ub294 Sales\ud568\uc218\uc5d0\uc11c 100\uac1c \uc774\uc0c1 \uad6c\ub9e4\ub97c \uc870\uac74\uc73c\ub85c SNS\ub85c \uba54\uc138\uc9c0 \uc804\ub2ec<\/li>\n\n\n\n<li>\uace0\uac1d\uc815\ubcf4\ub97c \uad00\ub9ac\ud558\ub294 EC2 \uc11c\ubc84\uc5d0 \ubc14\ub85c \uc804\ub2ec\ud558\uc9c0 \uc54a\uace0 VIP\uace0\uac1d\uc73c\ub85c \ubcc0\uacbd\uc744 \ubcf4\uc7a5\ud558\uae30 \uc704\ud574 \uc911\uac04\uc5d0 SQS\ub97c \uc0ac\uc6a9\ud568<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Day_4_%E2%80%93_%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%ED%9A%8C%EA%B3%A0\"><\/span>Day 4 &#8211; \ud504\ub85c\uc81d\ud2b8 \ud68c\uace0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<pre class=\"wp-block-preformatted\">\ud83c\udd97 \uc7ac\uace0 \uad00\ub9ac \ud504\ub85c\uc138\uc2a4\ub97c \uad6c\uc131\ud558\uae30 \uc704\ud574 \uba54\uc138\uc9c0\ub97c \uc804\ub2ec \ubc1b\uace0 \uac00\uacf5\ud558\uace0 \ucd9c\ub825\ud558\ub294 \ubc18\ubcf5\uc758 \uacfc\uc815<\/pre>\n\n\n\n<p>\ud504\ub85c\uc81d\ud2b8 \uc644\ub8cc\uac00 \ub2e4\uac00\uc624\uba74\uc11c AWS \uc5d0\uc11c \uc65c Lambda, SQS, SNS \uc11c\ube44\uc2a4\ub97c \uc0ac\uc6a9\ud588\uc744\uae4c \ud558\uba74\uc11c \uc758\ubb38\uc744 \ud488\uc5b4\uc654\ub2e4. \ud504\ub85c\uc81d\ud2b8 \uc9c4\ud589\ud558\uba74\uc11c \ubc1c\uc0dd\ub41c \ube44\uc6a9 $0.04&#8230; \ub2e4\uc2dc \ud55c\ubc88 AWS\uc758 \ud3b8\ub9ac\ud568(\uc644\uc804 \uad00\ub9ac\ud615)\uacfc \uc0ac\uc6a9\ud55c \uac83 \ub9cc\ud07c\uc758 \ube44\uc6a9(Pay-per-use)\uc5d0 \uac10\ud0c4\ud55c\uac8c \ub418\uc5c8\ub2e4. <br>\ud2b9\ud788 Lambda\ub97c \uc0ac\uc6a9\ud558\uc9c0 \uc54a\uace0 EC2\ub97c \uc0ac\uc6a9\ud588\uc73c\uba74 \ubcf4\ub2e4 \ub354 \ube60\ub978 \uc751\ub2f5\uc774 \uad6c\ud604\ub418\uc5c8\uaca0\uc9c0\ub9cc \ubd88\ud3b8\ud560\uc815\ub3c4\ub85c \uccb4\uac10\uc774 \ub418\uc9c0 \uc54a\uc558\uace0 \uc774\ubca4\ud2b8\uac00 \ubc1c\uc0dd\ud560\ub54c\ub9cc \uc2e4\ud589\ub41c\ub2e4\ub294 \uc810\uc774 \ubb34\ucc99 \ub9e4\ub825\uc801\uc778 \uc11c\ube44\uc2a4\uc600\ub358\uac70 \uac19\ub2e4. \ub610\ud55c On-premise \ud658\uacbd\uc774\uc5c8\ub2e4\uba74 \uc6d0\ud558\ub294 \ud504\ub85c\uc138\uc2a4 \ub3d9\uc791\uc774 \uc774\ub904\uc9c0\uc9c0 \uc54a\uc73c\uba74 \ub124\ud2b8\uc6cc\ud06c\ubd80\ud130 \uc2dc\uc791\ud574\uc11c \uc11c\ubc84\uae4c\uc9c0 \uad00\ub9ac \ud3ec\uc778\ud2b8 \ubcc4\ub85c \ud655\uc778\uc744 \uc548\ud574\ub3c4 \ub41c\ub2e4\ub294\uac83\uc774 \ub108\ubb34 \uc88b\uc558\ub2e4. <\/p>\n\n\n\n<p><strong>SQS\uc640 SNS\uc758 \uc774\ud574 \ubd80\uc871<\/strong><\/p>\n\n\n\n<p>\ud504\ub85c\uc81d\ud2b8\ub97c \ud558\uae30\uc804\uae4c\uc9c0 \ub2e8\uc21c\ud788 \uba54\uc138\uc9c0\ub97c \uc804\ub2ec\ud574\uc8fc\ub294 \ub9e4\uac1c\uccb4\ub85c\ub9cc \uc0dd\uac01\uc744 \ud558\uace0 \uadf8 \uc774\uc0c1 \uae4a\uac8c \ud559\uc2b5\uc744 \uc548\ud588\ub358\uac83\uc5d0 \ubc18\uc131\ud558\uac8c \ub418\uc5c8\uc73c\uba70 \uc0ac\uc6a9\ud558\ub294 \ubaa9\uc801\uacfc \ucc28\uc774\ub97c \uc9da\uc5b4\ubcf4\uace0 \ub9cc\uc57d \uc774 \uc11c\ube44\uc2a4\uac00 \uc5c6\uc5c8\ub2e4\uba74 \uc5b4\ub5a4\uac78 \uc774\uc6a9\ud588\uc744\uc9c0\ub3c4 \uc0dd\uac01\ud574\ubcf4\ub294 \uae30\ud68c\uac00 \ub418\uc5c8\ub2e4.<\/p>\n\n\n\n<p><strong>\ud300\uc6d0\ub4e4\uacfc\uc758 \ud611\uc5c5<\/strong><\/p>\n\n\n\n<p>\uc81c\uc77c \ud765\ubbf8\ub85c\uc6e0\ub358\uac74 \uac01 \ud300\uc6d0\ubcc4\ub85c \ud504\ub85c\uc81d\ud2b8\ub97c \ubc14\ub77c\ubcf4\ub294 \uc2dc\uac01\uacfc \uc9c4\ud589\ud558\uba74\uc11c \ubb38\uc81c\ub77c\uace0 \uc0dd\uac01\ud558\ub294\uac83\ub4e4\uc774 \ub2e4\uc591\ud574\uc9c0\uba74\uc11c \ub04a\uc784\uc5c6\ub294 \uc758\ubb38\uc774 \uc0dd\uaca8\ub0ac\ub2e4. \ubb38\uc81c\ub294 \ub108\ubb34 \ub9ce\uc740 \uc758\ubb38\uc774 \uc0dd\uaca8\uc11c \uc870\uae08 \uc9c0\uce58\uae30\ub3c4\ud588\uc9c0\ub9cc.. \ub098\ub294 \uc774\uac83\uc774 \ubcc4 \ubb38\uc81c\uac00 \uc544\ub2c8\ub77c\uace0 \uc0dd\uac01\ud588\uc5c8\uc9c0\ub9cc \ub2e4\ub978 \ud300\uc6d0\uc740 \ubb38\uc81c\ub77c\uace0 \uc0dd\uac01\ud558\uace0 \uac19\uc774 \uace0\ubbfc\uc744 \uc9c4\ud589\uc744 \ud574\uc11c \uc5bb\uac8c \ub418\ub294 \uacbd\ud5d8\ub4e4\uc774 \uc644\ub8cc\uac00 \ub418\uc5b4\uac08\ub54c\ucbe4 \ud070 \ub3c4\uc6c0\uc774 \ub418\uc5c8\ub2e4. <\/p>\n\n\n\n<p>\ud504\ub85c\uc81d\ud2b8\ub97c \uc9c4\ud589\ud558\uba74\uc11c \uc2dc\uac04\uc5d0 \ucad3\uae30\ub4ef\uc774 \uc9c4\ud589\ud558\uba74\uc11c \uc0bd\uc9c8\ub3c4 \ub9ce\uc774 \ud588\uc5c8\ub2e4. \uadf8\ub798\ub3c4 \uc774\ub85c\uc6b4 \uc0bd\uc9c8\uc740 \uc5b8\uc81c\ub098 \uc633\ub2e4\uace0 \ud558\uc9c0\ub9cc \uc5b4\ub290\uc815\ub3c4\ub294 \uc2dc\uac04\uad00\ub9ac\ub97c \ud558\uba74\uc11c \ud300\uc6d0\uacfc\uc758 \uc18d\ub3c4\uac00 \ucc28\uc774\ub098\ub294\uac8c \uc544\uc26c\uc6b4 \ubd80\ubd84\uc774\uc5c8\ub2e4. \ub9c8\ubb34\ub9ac\ub97c \ud558\uba74\uc11c \uc5ed\uc2dc \uc544\ub294\ub9cc\ud07c \ubcf4\uc778\ub2e4\uace0 \ud504\ub85c\uc81d\ud2b8 \uc9c4\ud589 \uc804\uacfc \ud6c4\uc758 \ub9ac\uc18c\uc2a4(\ud504\ub85c\uc81d\ud2b8\ub97c \ud558\uba74\uc11c \uc0ac\uc6a9\ud588\ub358)\ub4e4\uc744 \uc5b8\uc81c \uc5b4\ub514\uc11c \uc0ac\uc6a9\ud574\uc57c \uc801\ud569\ud560\uc9c0 \uace0\ubbfc\ud558\ub294 \uacc4\uae30\uac00 \ub418\uc5c8\ub2e4.<br>\ub9c8\uce58\uba74\uc11c \ucc98\uc74c\uc5d0 \uc798\ubabb\ub530\ub77c\uac00\uc11c \ub4a4\uccd0\uc9c0\uace0\uc788\uc5c8\ub294\ub370 \ub3c4\uc6c0\uc744 \uc8fc\uc2dc\uace0 \uc758\uacac\uc5d0 \uadc0\uae30\uc6b8\uc5ec \uc8fc\uc2e0 \ud300\uc6d0\ubd84\ub4e4\uaed8 \uac10\uc0ac\ub4dc\ub9bd\ub2c8\ub2e4.<br><\/p>\n<script type=\"text\/javascript\"> toolTips('.classtoolTips11','<span class=\"notion-enable-hover\" data-token-index=\"0\">Uniform Resource Locator<br\/><\/span><br\/><br\/><a href=\"\/wordpress\/?p=65\">Detail<\/a>'); <\/script>","protected":false},"excerpt":{"rendered":"<p>\ud504\ub85c\uc81d\ud2b8 \uac1c\uc694 \ud83d\udcd1 AWS \ud074\ub77c\uc6b0\ub4dc \ud658\uacbd\uc744 \uae30\ubc18\uc73c\ub85c \ud558\ub294 \ub290\uc2a8\ud558\uac8c \uc5f0\uacb0\ub41c(loosely coupled) \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc544\ud0a4\ud0dd\ucc98\uc5d0 \ub300\ud55c \uc774\ud574\ub97c \ubaa9\ud45c\ub85c \ud558\uba70 \uc694\uad6c\uc0ac\ud56d\uc5d0 \ub530\ub77c \uc778\ud504\ub77c\ub97c \uad6c\ud604 \ud83d\udca1 loose coupling(\ub290\uc2a8\ud55c \uacb0\ud569) \uc774\ub780?\uc2dc\uc2a4\ud15c\uc758 \uad6c\uc131 \uc694\uc18c\ub4e4\uc774 \uc11c\ub85c\uc5d0\uac8c \ucd5c\uc18c\ud55c\uc758 \uc758\uc874\uc131\uc744 \uac00\uc9c0\uace0 \uc0c1\ud638\uc791\uc6a9\ud558\ub294 \ub514\uc790\uc778 \uc6d0\uce59\uc785\ub2c8\ub2e4. \uc774\ub97c \ud1b5\ud574 \uac01 \uad6c\uc131 \uc694\uc18c\ub294 \ub3c5\ub9bd\uc801\uc73c\ub85c \uac1c\ubc1c, \ubc30\ud3ec \ubc0f \ud655\uc7a5\ub420 \uc218 \uc788\uc73c\uba70, \ubcc0\uacbd \uc0ac\ud56d\uc774 \ub2e4\ub978 \uad6c\uc131 \uc694\uc18c\uc5d0 \ubbf8\uce58\ub294 \uc601\ud5a5\uc744 \ucd5c\uc18c\ud654\ud560 &#8230; <a title=\"[Project] Serverless Framework\ub97c \uc774\uc6a9\ud558\uc5ec \uc790\ub3d9 \uc7ac\uace0 \ud655\ubcf4 \uc2dc\uc2a4\ud15c \uad6c\ud604\ud558\uae30\" class=\"read-more\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=577\" aria-label=\"More on [Project] Serverless Framework\ub97c \uc774\uc6a9\ud558\uc5ec \uc790\ub3d9 \uc7ac\uace0 \ud655\ubcf4 \uc2dc\uc2a4\ud15c \uad6c\ud604\ud558\uae30\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":590,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":""},"categories":[37],"tags":[24,36,38,39],"_links":{"self":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/577"}],"collection":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=577"}],"version-history":[{"count":35,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/577\/revisions"}],"predecessor-version":[{"id":881,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/577\/revisions\/881"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/590"}],"wp:attachment":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}