{"id":1167,"date":"2023-04-13T21:54:26","date_gmt":"2023-04-13T12:54:26","guid":{"rendered":"https:\/\/www.gyuroot.com\/wordpress\/?p=1167"},"modified":"2023-07-04T22:12:05","modified_gmt":"2023-07-04T13:12:05","slug":"sprint-%ec%95%a0%ed%94%8c%eb%a6%ac%ec%bc%80%ec%9d%b4%ec%85%98-%ec%bb%a8%ed%85%8c%ec%9d%b4%eb%84%88%ed%99%94","status":"publish","type":"post","link":"https:\/\/www.gyuroot.com\/wordpress\/?p=1167","title":{"rendered":"[Sprint] \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108\ud654"},"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-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#_%ED%95%99%EC%8A%B5_%EB%AA%A9%ED%91%9C\" title=\"# \ud559\uc2b5 \ubaa9\ud45c\"># \ud559\uc2b5 \ubaa9\ud45c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#_%ED%95%B4%EA%B2%B0_%EA%B3%BC%EC%A0%9C\" title=\"# \ud574\uacb0 \uacfc\uc81c\"># \ud574\uacb0 \uacfc\uc81c<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#_%EC%8B%A4%EC%8A%B5_%EC%9E%90%EB%A3%8C\" title=\"# \uc2e4\uc2b5 \uc790\ub8cc\"># \uc2e4\uc2b5 \uc790\ub8cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#_%EA%B3%BC%EC%A0%9C_%ED%95%AD%EB%AA%A9%EB%B3%84_%EC%A7%84%ED%96%89_%EC%83%81%ED%99%A9\" title=\"# \uacfc\uc81c \ud56d\ubaa9\ubcc4 \uc9c4\ud589 \uc0c1\ud669\"># \uacfc\uc81c \ud56d\ubaa9\ubcc4 \uc9c4\ud589 \uc0c1\ud669<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#Frontend_Dockerfile_%EC%9E%91%EC%84%B1\" title=\"Frontend Dockerfile \uc791\uc131\">Frontend Dockerfile \uc791\uc131<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#%EA%B2%B0%EA%B3%BC_%ED%99%95%EC%9D%B8\" title=\"\uacb0\uacfc \ud655\uc778\">\uacb0\uacfc \ud655\uc778<\/a><\/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=1167\/#Backend_Dockerfile_%EC%9E%91%EC%84%B1\" title=\"Backend Dockerfile \uc791\uc131\">Backend Dockerfile \uc791\uc131<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#%EA%B2%B0%EA%B3%BC_%ED%99%95%EC%9D%B8-2\" title=\"\uacb0\uacfc \ud655\uc778\">\uacb0\uacfc \ud655\uc778<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#docker-composeyaml_%EC%9E%91%EC%84%B1\" title=\"docker-compose.yaml \uc791\uc131\">docker-compose.yaml \uc791\uc131<\/a><\/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=1167\/#%EA%B2%B0%EA%B3%BC_%ED%99%95%EC%9D%B8-3\" title=\"\uacb0\uacfc \ud655\uc778\">\uacb0\uacfc \ud655\uc778<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#_TROUBLE_SHOOTING_LOG\" title=\"# TROUBLE SHOOTING LOG\"># TROUBLE SHOOTING LOG<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#%EC%9B%90%EC%9D%B8\" title=\"\uc6d0\uc778\">\uc6d0\uc778<\/a><\/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=1167\/#%ED%95%B4%EA%B2%B0_%EB%B0%A9%EC%95%88\" title=\"\ud574\uacb0 \ubc29\uc548\">\ud574\uacb0 \ubc29\uc548<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#_%ED%94%BC%EB%93%9C%EB%B0%B1\" title=\"# \ud53c\ub4dc\ubc31\"># \ud53c\ub4dc\ubc31<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\/#References\" title=\"#References\">#References<\/a><\/li><\/ul><\/nav><\/div>\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_%ED%95%99%EC%8A%B5_%EB%AA%A9%ED%91%9C\"><\/span># \ud559\uc2b5 \ubaa9\ud45c<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n<blockquote class=\"wp-block-quote has-text-color\" style=\"color: rgb(0, 0, 0)\">\n<p><strong>\ud480\uc2a4\ud0dd \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108\ud654 \ubc0f Docker Compose\ub97c \uc774\uc6a9\ud55c \uc2e4\ud589<\/strong><\/p>\n\n<\/blockquote>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_%ED%95%B4%EA%B2%B0_%EA%B3%BC%EC%A0%9C\"><\/span># \ud574\uacb0 \uacfc\uc81c<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-194-1024x246.png?v=1688456326\" alt=\"\"\/><\/figure>\n\n\n<p class=\"has-background\" style=\"background-color: rgb(241, 241, 239)\">&#x1f4a1; <strong>Bare minimum requirement<\/strong><\/p>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_%EC%8B%A4%EC%8A%B5_%EC%9E%90%EB%A3%8C\"><\/span># \uc2e4\uc2b5 \uc790\ub8cc<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n<p class=\"has-text-color\" style=\"color: rgb(0, 0, 0)\"><a href=\"https:\/\/github.com\/cs-devops-bootcamp\/sprint-docker-compose\">sprint-docker-compose<\/a><\/p>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_%EA%B3%BC%EC%A0%9C_%ED%95%AD%EB%AA%A9%EB%B3%84_%EC%A7%84%ED%96%89_%EC%83%81%ED%99%A9\"><\/span># \uacfc\uc81c \ud56d\ubaa9\ubcc4 \uc9c4\ud589 \uc0c1\ud669<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Frontend_Dockerfile_%EC%9E%91%EC%84%B1\"><\/span>Frontend Dockerfile \uc791\uc131<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<pre class=\"wp-block-code\"><code># Apache HTTP server \uc774\ubbf8\uc9c0\ub97c \ubc14\ud0d5\uc73c\ub85c \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud55c \ud6c4\n# http:\/\/localhost\ub85c \uc811\uc18d\ud588\uc744 \ub54c index.html\uc774 \ud45c\uc2dc\ub418\uac8c \ub9cc\ub4dc\uc138\uc694\n\n# Base \uc774\ubbf8\uc9c0\ub85c httpd:2.4 \uc9c0\uc815\nFROM httpd:2.4\n\n# \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac\ub85c \/usr\/local\/apache2\/htdocs \uc9c0\uc815\nWORKDIR \/usr\/local\/apache2\/htdocs\n\n# \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac\uc5d0 \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158 \uc18c\uc2a4 \ud30c\uc77c copy\nCOPY . .\n\n# 80 \ud3ec\ud2b8 \ub178\ucd9c\nEXPOSE 80<\/code><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EA%B2%B0%EA%B3%BC_%ED%99%95%EC%9D%B8\"><\/span>\uacb0\uacfc \ud655\uc778<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-195.png?v=1688456329\" alt=\"\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Backend_Dockerfile_%EC%9E%91%EC%84%B1\"><\/span>Backend Dockerfile \uc791\uc131<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<pre class=\"wp-block-code\"><code># node.js \uc774\ubbf8\uc9c0\ub97c \ubc14\ud0d5\uc73c\ub85c \ucee8\ud14c\uc774\ub108\ub97c \uc2e4\ud589\ud55c \ud6c4\n# http:\/\/localhost:3333\uc73c\ub85c \uc811\uc18d\ud588\uc744 \ub54c hello from server \uba54\uc2dc\uc9c0\uac00 \ud45c\uc2dc\ub418\uac8c \ub9cc\ub4dc\uc138\uc694\n\n# Base \uc774\ubbf8\uc9c0\ub85c node:16-alpine \uc9c0\uc815\nFROM node:16-alpine\n\n# \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac\ub85c \/usr\/src\/app \uc9c0\uc815\nWORKDIR \/usr\/src\/app\n\n# \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac\uc5d0 package.json, package-lock.json \ud30c\uc77c copy\nCOPY package*.json .\/\n\n# node package \uc124\uce58\nRUN npm install\n\n# \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac\uc5d0 \uc5b4\ud50c\ub9ac\ucf00\uc774\uc158 \uc18c\uc2a4 \ud30c\uc77c copy\nCOPY . .\n\n# 80 \ud3ec\ud2b8 \ub178\ucd9c\nEXPOSE 80\n\n# \ucee8\ud14c\uc774\ub108 \uc2e4\ud589\uc2dc node app.js \uba85\ub839 \uc2e4\ud589\nCMD [&quot;node&quot;, &quot;app.js&quot;]<\/code><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EA%B2%B0%EA%B3%BC_%ED%99%95%EC%9D%B8-2\"><\/span>\uacb0\uacfc \ud655\uc778<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-196.png?v=1688456332\" alt=\"\"\/><\/figure>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"docker-composeyaml_%EC%9E%91%EC%84%B1\"><\/span>docker-compose.yaml \uc791\uc131<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<pre class=\"wp-block-code\"><code># docker compose \ud30c\uc77c\uc744 \uc644\uc131\ud558\uace0\n# http:\/\/localhost\ub85c \uc811\uc18d\ud588\uc744 \ub54c \uc11c\ubc84\ub85c\ubd80\ud130 \uc628 \uba54\uc2dc\uc9c0\uac00 \ud45c\uc2dc\ub418\uac8c \ub9cc\ub4dc\uc138\uc694\n\nversion: &quot;3.0&quot;\n\nservices:\n  frontend:\n    image: taekyung\/client:latest # frontend \uc11c\ube44\uc2a4\uac00 \uc0ac\uc6a9\ud560 \uc774\ubbf8\uc9c0\n    restart: &#039;always&#039; # \ucee8\ud14c\uc774\ub108\uac00 \ucda9\ub3cc\ud558\uac70\ub098 \uc911\uc9c0\ub41c \uacbd\uc6b0 \uc790\ub3d9\uc73c\ub85c \uc7ac\uc2dc\uc791\n    ports:\n      - &quot;80:80&quot; # \ud638\uc2a4\ud2b8 \ud3ec\ud2b8 80 \uacfc \ucee8\ud14c\uc774\ub108 \ud3ec\ud2b8 80 \uc744 \ub9e4\ud551\n    container_name: frontend # \ucee8\ud14c\uc774\ub108 \uc774\ub984\n    depends_on: \n      - backend # backend \uc11c\ube44\uc2a4\uc5d0 \ub300\ud55c \uc758\uc874\uc131 \uc815\uc758\n\n  backend:\n    image: taekyung\/server:latest # backend \uc11c\ube44\uc2a4\uac00 \uc0ac\uc6a9\ud560 \uc774\ubbf8\uc9c0\n    restart: &#039;always&#039; # \ucee8\ud14c\uc774\ub108\uac00 \ucda9\ub3cc\ud558\uac70\ub098 \uc911\uc9c0\ub41c \uacbd\uc6b0 \uc790\ub3d9\uc73c\ub85c \uc7ac\uc2dc\uc791\n    ports:\n      - &quot;3333:80&quot; # \ud638\uc2a4\ud2b8 \ud3ec\ud2b8 3333 \uacfc \ucee8\ud14c\uc774\ub108 \ud3ec\ud2b8 80 \uc744 \ub9e4\ud551\n    container_name: backend # \ucee8\ud14c\uc774\ub108 \uc774\ub984<\/code><\/pre>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EA%B2%B0%EA%B3%BC_%ED%99%95%EC%9D%B8-3\"><\/span>\uacb0\uacfc \ud655\uc778<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/www.gyuroot.com\/wordpress\/wp-content\/uploads\/image-197.png?v=1688456334\" alt=\"\"\/><\/figure>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_TROUBLE_SHOOTING_LOG\"><\/span># TROUBLE SHOOTING LOG<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n<p class=\"has-background\" style=\"background-color: rgb(251, 243, 219)\">&#x1f4a1; <\/p>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%EC%9B%90%EC%9D%B8\"><\/span>\uc6d0\uc778<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<ol>\n<li>\ub3c4\ucee4\uac00 \uad6c\ub3d9\uc911\uc778 OS\uc5d0\uc11c 80 port \uac00 \uc0ac\uc6a9\uc911\uc774\uc5ec\uc11c port\ub97c \ubcc0\uacbd\ud574\uc11c \uc0ac\uc6a9<\/li>\n\n\n<li>CORS error<\/li>\n\n<\/ol>\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%ED%95%B4%EA%B2%B0_%EB%B0%A9%EC%95%88\"><\/span>\ud574\uacb0 \ubc29\uc548<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n<ol>\n<li>port \ubcc0\uacbd<\/li>\n\n<\/ol>\n\n\n<pre class=\"wp-block-code\"><code>version: &quot;3.0&quot;\n\nservices:\n  frontend:\n    image: frontend\n    restart: &#039;always&#039;\n    ports:\n      - &quot;81:80&quot;\n    container_name: CLI\n\n  backend:\n    image: backend\n    restart: &#039;always&#039;\n    ports:\n      - &quot;3333:80&quot;\n    container_name: SVR<\/code><\/pre>\n\n\n<ol>\n<li>CORS Error\nlocalhost\uac00 \uc544\ub2cc IP\uc8fc\uc18c\ub97c \uc9c0\uc815\ud574\uc11c \uc0ac\uc6a9\ud558\uace0 \uc788\ub358 \ud658\uacbd\uc5d0\uc11c \uc2e4\uc2b5\uc744 \ud558\ub2e4\ubcf4\ub2c8 CORS \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uace0 Backend\uc5d0\uc11c \ubaa8\ub4e0 \ucd9c\ucc98 \ud5c8\uc6a9\ud558\ub294 \ucf54\ub4dc \uc0bd\uc785<\/li>\n\n<\/ol>\n\n\n<pre class=\"wp-block-code\"><code>const express = require(&#039;express&#039;)\nconst cors = require(&#039;cors&#039;)\nconst app = express()\n\/\/app.use(cors())   \uc8fc\uc11d\ucc98\ub9ac\n\/\/ \uc544\ub798 \ucf54\ub4dc\ub85c \ubcc0\uacbd\napp.use((req, res, next) =&gt; {\n  res.header(&#039;Access-Control-Allow-Origin&#039;, &#039;*&#039;);\n  next();\n});\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\nconst port = 80\n\napp.get(&#039;\/&#039;, (req, res) =&gt; {\n  res.send(&#039;hello from server&#039;)\n})\n\napp.listen(port, () =&gt; {\n  console.log(`Example app listening at http:\/\/localhost:${port}`)\n})<\/code><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"_%ED%94%BC%EB%93%9C%EB%B0%B1\"><\/span># \ud53c\ub4dc\ubc31<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>\uc624\ud0dc\uacbd<\/th><th>\ubc15\ucc2c\uaddc<\/th><\/tr><\/thead><tbody><tr><td>Section1\uc5d0 \uad6c\ud604\ud574\ubcf8 WEB, WAS \ub97c \uc9c1\uc811 \ucee8\ud14c\uc774\ub108\ud654 \ud574\ubcf4\ub2c8, \ucee8\ud14c\uc774\ub108\uc5d0 \ub300\ud55c \uc774\ud574\ub3c4\uac00 \ub354 \uc62c\ub77c\uac14\ub2e4.<\/td><td>\ucee8\ud14c\uc774\ub108\uc640 \ucee8\ud14c\uc774\ub108 \uc0ac\uc774\uc758 \ud1b5\uc2e0\ub3c4 \uacb0\uad6d CORS\ubb38\uc81c\uac00 \uc0dd\uae34\uac83\uc744 \uc54c\uac8c \ub418\uc5c8\ub2e4<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"References\"><\/span>#References<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n<ul>\n<li><a href=\"https:\/\/nodejs.org\/ko\/docs\/guides\/nodejs-docker-webapp\">https:\/\/nodejs.org\/ko\/docs\/guides\/nodejs-docker-webapp<\/a><\/li>\n\n\n<li><a href=\"https:\/\/docs.docker.com\/compose\/compose-file\/\">https:\/\/docs.docker.com\/compose\/compose-file\/<\/a><\/li>\n\n<\/ul>\n\n","protected":false},"excerpt":{"rendered":"<p># \ud559\uc2b5 \ubaa9\ud45c \ud480\uc2a4\ud0dd \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108\ud654 \ubc0f Docker Compose\ub97c \uc774\uc6a9\ud55c \uc2e4\ud589 # \ud574\uacb0 \uacfc\uc81c &#x1f4a1; Bare minimum requirement # \uc2e4\uc2b5 \uc790\ub8cc sprint-docker-compose # \uacfc\uc81c \ud56d\ubaa9\ubcc4 \uc9c4\ud589 \uc0c1\ud669 Frontend Dockerfile \uc791\uc131 \uacb0\uacfc \ud655\uc778 Backend Dockerfile \uc791\uc131 \uacb0\uacfc \ud655\uc778 docker-compose.yaml \uc791\uc131 \uacb0\uacfc \ud655\uc778 # TROUBLE SHOOTING LOG &#x1f4a1; \uc6d0\uc778 \ud574\uacb0 \ubc29\uc548 # \ud53c\ub4dc\ubc31 \uc624\ud0dc\uacbd \ubc15\ucc2c\uaddc Section1\uc5d0 \uad6c\ud604\ud574\ubcf8 &#8230; <a title=\"[Sprint] \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108\ud654\" class=\"read-more\" href=\"https:\/\/www.gyuroot.com\/wordpress\/?p=1167\" aria-label=\"More on [Sprint] \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ucee8\ud14c\uc774\ub108\ud654\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_eb_attr":""},"categories":[45],"tags":[],"_links":{"self":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1167"}],"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=1167"}],"version-history":[{"count":1,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1167\/revisions"}],"predecessor-version":[{"id":1187,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1167\/revisions\/1187"}],"wp:attachment":[{"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gyuroot.com\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}