{"id":27005,"date":"2025-04-08T15:13:47","date_gmt":"2025-04-08T08:13:47","guid":{"rendered":"https:\/\/hitek.com.vn\/?p=27005"},"modified":"2025-04-08T15:13:47","modified_gmt":"2025-04-08T08:13:47","slug":"web-server-development","status":"publish","type":"post","link":"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/","title":{"rendered":"\ub098\ub9cc\uc758 \uc6f9\uc11c\ubc84 \uad6c\ud604\ud574\ubcf4\uae30: \ucd08\ubcf4\uc790\ub3c4 \uc27d\uac8c \ub530\ub77c\ud560 \uc218 \uc788\ub294 \uac00\uc774\ub4dc"},"content":{"rendered":"<p>\uc6f9\uc11c\ubc84\ub97c \uc9c1\uc811 \uad6c\ucd95\ud574\ubcf4\uace0 \uc2f6\uc9c0\ub9cc \uc5b4\ub514\uc11c\ubd80\ud130 \uc2dc\uc791\ud574\uc57c \ud560\uc9c0 \ub9c9\ub9c9\ud55c\uac00\uc694? \uc624\ub298\uc740 <strong>Node.js, Nginx, Apache<\/strong> \uac19\uc740 \uae30\uc220\uc744 \ud65c\uc6a9\ud574 \ub098\ub9cc\uc758 \uc6f9\uc11c\ubc84\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \ub2e8\uacc4\ubcc4\ub85c \uc548\ub0b4\ud569\ub2c8\ub2e4. \ucd08\ubcf4\uc790\ub3c4 \uc27d\uac8c \ub530\ub77c\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uba85\ud588\uc73c\ub2c8, \ucc28\uadfc\ucc28\uadfc \uc77d\uc5b4\ubcf4\uc138\uc694.<\/p>\n<hr \/>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_80 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title ez-toc-toggle\" style=\"cursor:pointer\">Contents<\/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=\"\ubaa9\ucc28 \ud1a0\uae00\"><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:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#%EC%99%9C_%EB%82%98%EB%A7%8C%EC%9D%98_%EC%9B%B9%EC%84%9C%EB%B2%84%EB%A5%BC_%EA%B5%AC%EC%B6%95%ED%95%B4%EC%95%BC_%ED%95%A0%EA%B9%8C\" >\uc65c \ub098\ub9cc\uc758 \uc6f9\uc11c\ubc84\ub97c \uad6c\ucd95\ud574\uc57c \ud560\uae4c?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#%EC%9B%B9%EC%84%9C%EB%B2%84_%EA%B5%AC%EC%B6%95_%EB%B0%A9%EB%B2%95_3%EA%B0%80%EC%A7%80_%EB%B9%84%EA%B5%90\" >\uc6f9\uc11c\ubc84 \uad6c\ucd95 \ubc29\ubc95 3\uac00\uc9c0 \ube44\uad50<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#Nodejs%EB%A1%9C_%EA%B0%84%EB%8B%A8%ED%95%9C_%EC%9B%B9%EC%84%9C%EB%B2%84_%EB%A7%8C%EB%93%A4%EA%B8%B0\" >Node.js\ub85c \uac04\ub2e8\ud55c \uc6f9\uc11c\ubc84 \ub9cc\ub4e4\uae30<\/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:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#1_Nodejs_%EC%84%A4%EC%B9%98\" >1. Node.js \uc124\uce58<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#2_%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EC%83%9D%EC%84%B1_%EB%B0%8F_Express_%EC%84%A4%EC%B9%98\" >2. \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131 \ubc0f Express \uc124\uce58<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#3_%EA%B8%B0%EB%B3%B8_%EC%84%9C%EB%B2%84_%EC%BD%94%EB%93%9C_%EC%9E%91%EC%84%B1_serverjs\" >3. \uae30\ubcf8 \uc11c\ubc84 \ucf54\ub4dc \uc791\uc131 (server.js)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#4_%EC%84%9C%EB%B2%84_%EC%8B%A4%ED%96%89\" >4. \uc11c\ubc84 \uc2e4\ud589<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#Nginx%EB%A1%9C_%EA%B3%A0%EC%84%B1%EB%8A%A5_%EC%9B%B9%EC%84%9C%EB%B2%84_%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0\" >Nginx\ub85c \uace0\uc131\ub2a5 \uc6f9\uc11c\ubc84 \uad6c\ucd95\ud558\uae30<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#1_Nginx_%EC%84%A4%EC%B9%98_Ubuntu_%EA%B8%B0%EC%A4%80\" >1. Nginx \uc124\uce58 (Ubuntu \uae30\uc900)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#2_Nginx_%EC%8B%A4%ED%96%89_%EB%B0%8F_%ED%99%95%EC%9D%B8\" >2. Nginx \uc2e4\ud589 \ubc0f \ud655\uc778<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#3_Nodejs_%EC%95%B1%EA%B3%BC_%EC%97%B0%EB%8F%99_%EB%A6%AC%EB%B2%84%EC%8A%A4_%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%A4%EC%A0%95\" >3. Node.js \uc571\uacfc \uc5f0\ub3d9 (\ub9ac\ubc84\uc2a4 \ud504\ub85d\uc2dc \uc124\uc815)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#%EB%8F%84%EB%A9%94%EC%9D%B8_%EC%97%B0%EA%B2%B0_%EB%B0%8F_HTTPS_%EB%B3%B4%EC%95%88_%EC%84%A4%EC%A0%95\" >\ub3c4\uba54\uc778 \uc5f0\uacb0 \ubc0f HTTPS \ubcf4\uc548 \uc124\uc815<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#1_Certbot_%EC%84%A4%EC%B9%98\" >1. Certbot \uc124\uce58<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#2_SSL_%EC%9D%B8%EC%A6%9D%EC%84%9C_%EB%B0%9C%EA%B8%89\" >2. SSL \uc778\uc99d\uc11c \ubc1c\uae09<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/hitek.com.vn\/ko\/blog-ko\/web-server-development\/#%EB%A7%88%EB%AC%B4%EB%A6%AC_%EC%9B%B9%EC%84%9C%EB%B2%84_%EC%9A%B4%EC%98%81_%EC%8B%9C_%EC%A3%BC%EC%9D%98%ED%95%A0_%EC%A0%90\" >\ub9c8\ubb34\ub9ac: \uc6f9\uc11c\ubc84 \uc6b4\uc601 \uc2dc \uc8fc\uc758\ud560 \uc810<\/a><\/li><\/ul><\/nav><\/div>\n<h2 id=\"-\"><span class=\"ez-toc-section\" id=\"%EC%99%9C_%EB%82%98%EB%A7%8C%EC%9D%98_%EC%9B%B9%EC%84%9C%EB%B2%84%EB%A5%BC_%EA%B5%AC%EC%B6%95%ED%95%B4%EC%95%BC_%ED%95%A0%EA%B9%8C\"><\/span><strong>\uc65c \ub098\ub9cc\uc758 \uc6f9\uc11c\ubc84\ub97c \uad6c\ucd95\ud574\uc57c \ud560\uae4c?<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\uac1c\uc778 \ud504\ub85c\uc81d\ud2b8\ub97c \ud638\uc2a4\ud305\ud558\uac70\ub098, \uac1c\ubc1c \uacf5\ubd80\ub97c \uc704\ud574 \uc2e4\uc81c \uc11c\ubc84 \ud658\uacbd\uc744 \uacbd\ud5d8\ud558\ub294 \uac83\uc740 \ud070 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. <strong>AWS, Google Cloud, Naver Cloud<\/strong> \uac19\uc740 \ud50c\ub7ab\ud3fc\uc744 \uc774\uc6a9\ud558\uba74 \uac04\ud3b8\ud558\uac8c \uc11c\ubc84\ub97c \uc6b4\uc601\ud560 \uc218 \uc788\uc9c0\ub9cc, \uc9c1\uc811 \uc11c\ubc84\ub97c \uad6c\ucd95\ud558\uba74 <strong>\ub124\ud2b8\uc6cc\ud06c, \ubcf4\uc548, \uc2dc\uc2a4\ud15c \uad00\ub9ac<\/strong>\uc5d0 \ub300\ud55c \uc774\ud574\ub3c4\ub97c \ub192\uc77c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub610\ud55c, <strong>\ub85c\uceec \ud658\uacbd\uc5d0\uc11c \ud14c\uc2a4\ud2b8<\/strong>\ud558\uac70\ub098 <strong>\uac1c\uc778 \ube14\ub85c\uadf8<\/strong>\ub97c \uc6b4\uc601\ud560 \ub54c\ub3c4 \uc720\uc6a9\ud569\ub2c8\ub2e4. \uc6f9\uc11c\ubc84\ub97c \uc9c1\uc811 \ub2e4\ub8e8\uba74 \ubc31\uc5d4\ub4dc \uac1c\ubc1c\uc758 \ud575\uc2ec \uc6d0\ub9ac\ub97c \uccb4\ud5d8\ud560 \uc218 \uc788\uc5b4, \ud480\uc2a4\ud0dd \uac1c\ubc1c\uc790\ub85c \uc131\uc7a5\ud558\ub294 \ub370 \ud070 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4.<\/p>\n<hr \/>\n<h2 id=\"-3-\"><span class=\"ez-toc-section\" id=\"%EC%9B%B9%EC%84%9C%EB%B2%84_%EA%B5%AC%EC%B6%95_%EB%B0%A9%EB%B2%95_3%EA%B0%80%EC%A7%80_%EB%B9%84%EA%B5%90\"><\/span><strong>\uc6f9\uc11c\ubc84 \uad6c\ucd95 \ubc29\ubc95 3\uac00\uc9c0 \ube44\uad50<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\uc6f9\uc11c\ubc84\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc740 \uc5ec\ub7ec \uac00\uc9c0\uac00 \uc788\uc2b5\ub2c8\ub2e4. \uac01 \ubc29\ubc95\uc758 \uc7a5\ub2e8\uc810\uc744 \ube44\uad50\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<table>\n<thead>\n<tr>\n<th>\ubc29\ubc95<\/th>\n<th>\uc7a5\uc810<\/th>\n<th>\ub2e8\uc810<\/th>\n<th>\ucd94\ucc9c \ub300\uc0c1<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Node.js + Express<\/strong><\/td>\n<td>\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub85c \uc27d\uac8c \uac1c\ubc1c \uac00\ub2a5, \uc2e4\uc2dc\uac04 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\uc5d0 \uac15\uc810<\/td>\n<td>\ub2e8\uc77c \uc2a4\ub808\ub4dc\ub85c \ub300\uc6a9\ub7c9 \ud2b8\ub798\ud53d \ucc98\ub9ac \uc5b4\ub824\uc6c0<\/td>\n<td>\ud504\ub860\ud2b8\uc5d4\ub4dc \uac1c\ubc1c\uc790, \uc2e4\uc2dc\uac04 \ucc44\ud305 \uc11c\ube44\uc2a4<\/td>\n<\/tr>\n<tr>\n<td><strong>Apache<\/strong><\/td>\n<td>\uc548\uc815\uc801\uc774\uace0 \ud638\ud658\uc131 \uc88b\uc74c, PHP\uc640 \ud638\ud658 \ucd5c\uc801\ud654<\/td>\n<td>\ub3d9\uc2dc \uc811\uc18d \ub9ce\uc744 \ub54c \uc131\ub2a5 \uc800\ud558 \uac00\ub2a5<\/td>\n<td>PHP \uae30\ubc18 \uc6f9\uc0ac\uc774\ud2b8 (WordPress \ub4f1)<\/td>\n<\/tr>\n<tr>\n<td><strong>Nginx<\/strong><\/td>\n<td>\uace0\uc131\ub2a5, \ube44\ub3d9\uae30 \ucc98\ub9ac\ub85c \ud2b8\ub798\ud53d \ud6a8\uc728\uc801 \uad00\ub9ac<\/td>\n<td>\uc124\uc815\uc774 \ubcf5\uc7a1\ud560 \uc218 \uc788\uc74c<\/td>\n<td>\uc815\uc801 \uc0ac\uc774\ud2b8, \ud504\ub85d\uc2dc \uc11c\ubc84 \ud544\uc694 \uc2dc<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\uc774 \uc911\uc5d0\uc11c <strong>\ucd08\ubcf4\uc790\uc5d0\uac8c \uac00\uc7a5 \ucd94\ucc9c\ud558\ub294 \ubc29\ubc95\uc740 Node.js<\/strong>\uc785\ub2c8\ub2e4. \uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8 \uae30\ubc18\uc774\ub77c \uc811\uadfc\uc131\uc774 \ub192\uace0, \ube60\ub974\uac8c \uacb0\uacfc\ubb3c\uc744 \ud655\uc778\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc785\ub2c8\ub2e4.<\/p>\n<hr \/>\n<h2 id=\"-node-js-\"><span class=\"ez-toc-section\" id=\"Nodejs%EB%A1%9C_%EA%B0%84%EB%8B%A8%ED%95%9C_%EC%9B%B9%EC%84%9C%EB%B2%84_%EB%A7%8C%EB%93%A4%EA%B8%B0\"><\/span><strong>Node.js\ub85c \uac04\ub2e8\ud55c \uc6f9\uc11c\ubc84 \ub9cc\ub4e4\uae30<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3 id=\"-1-node-js-\"><span class=\"ez-toc-section\" id=\"1_Nodejs_%EC%84%A4%EC%B9%98\"><\/span><strong>1. Node.js \uc124\uce58<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\uba3c\uc800 <a href=\"https:\/\/nodejs.org\/\" target=\"_blank\" rel=\"noopener\">Node.js \uacf5\uc2dd \uc6f9\uc0ac\uc774\ud2b8<\/a>\uc5d0\uc11c LTS \ubc84\uc804\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud574 \uc124\uce58\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"lang-bash\"><span class=\"hljs-comment\"># \uc124\uce58 \ud655\uc778  <\/span>\r\n<span class=\"hljs-keyword\">node<\/span> <span class=\"hljs-title\">-v<\/span>  \r\nnpm -v\r\n<\/code><\/pre>\n<h3 id=\"-2-express-\"><span class=\"ez-toc-section\" id=\"2_%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8_%EC%83%9D%EC%84%B1_%EB%B0%8F_Express_%EC%84%A4%EC%B9%98\"><\/span><strong>2. \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131 \ubc0f Express \uc124\uce58<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"lang-bash\"><span class=\"hljs-keyword\">mkdir<\/span> <span class=\"hljs-keyword\">my<\/span>-webserver  \r\ncd <span class=\"hljs-keyword\">my<\/span>-webserver  \r\nnpm init -<span class=\"hljs-keyword\">y<\/span>  \r\nnpm install express\r\n<\/code><\/pre>\n<h3 id=\"-3-server-js-\"><span class=\"ez-toc-section\" id=\"3_%EA%B8%B0%EB%B3%B8_%EC%84%9C%EB%B2%84_%EC%BD%94%EB%93%9C_%EC%9E%91%EC%84%B1_serverjs\"><\/span><strong>3. \uae30\ubcf8 \uc11c\ubc84 \ucf54\ub4dc \uc791\uc131 (server.js)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"lang-javascript\">const express = <span class=\"hljs-built_in\">require<\/span>(<span class=\"hljs-string\">'express'<\/span>);  \r\nconst app = express();  \r\nconst PORT = <span class=\"hljs-number\">3000<\/span>;  \r\n\r\napp.get(<span class=\"hljs-string\">'\/'<\/span>, <span class=\"hljs-function\"><span class=\"hljs-params\">(req, res)<\/span> =&gt;<\/span> {  \r\n  res.send(<span class=\"hljs-string\">'\ub098\ub9cc\uc758 \uc6f9\uc11c\ubc84\uac00 \uc2e4\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4!'<\/span>);  \r\n});  \r\n\r\napp.listen(PORT, <span class=\"hljs-function\"><span class=\"hljs-params\">()<\/span> =&gt;<\/span> {  \r\n  <span class=\"hljs-built_in\">console<\/span>.log(`<span class=\"javascript\">\uc11c\ubc84\uac00 http:<span class=\"hljs-comment\">\/\/localhost:${PORT}\uc5d0\uc11c \uc2e4\ud589 \uc911\uc785\ub2c8\ub2e4.<\/span><\/span>`);  \r\n});\r\n<\/code><\/pre>\n<h3 id=\"-4-\"><span class=\"ez-toc-section\" id=\"4_%EC%84%9C%EB%B2%84_%EC%8B%A4%ED%96%89\"><\/span><strong>4. \uc11c\ubc84 \uc2e4\ud589<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"lang-bash\"><span class=\"hljs-keyword\">node<\/span> <span class=\"hljs-title\">server<\/span>.js\r\n<\/code><\/pre>\n<p>\ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c <code>http:\/\/localhost:3000<\/code>\uc5d0 \uc811\uc18d\ud558\uba74 \uba54\uc2dc\uc9c0\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4!<\/p>\n<hr \/>\n<h2 id=\"-nginx-\"><span class=\"ez-toc-section\" id=\"Nginx%EB%A1%9C_%EA%B3%A0%EC%84%B1%EB%8A%A5_%EC%9B%B9%EC%84%9C%EB%B2%84_%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0\"><\/span><strong>Nginx\ub85c \uace0\uc131\ub2a5 \uc6f9\uc11c\ubc84 \uad6c\ucd95\ud558\uae30<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Node.js\ub9cc\uc73c\ub85c\ub3c4 \uc11c\ubc84\ub97c \uc6b4\uc601\ud560 \uc218 \uc788\uc9c0\ub9cc, \uc2e4\uc81c \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c\ub294 <strong>Nginx<\/strong>\ub97c \uc55e\ub2e8\uc5d0 \ub450\uc5b4 \uc131\ub2a5\uc744 \ucd5c\uc801\ud654\ud569\ub2c8\ub2e4.<\/p>\n<h3 id=\"-1-nginx-ubuntu-\"><span class=\"ez-toc-section\" id=\"1_Nginx_%EC%84%A4%EC%B9%98_Ubuntu_%EA%B8%B0%EC%A4%80\"><\/span><strong>1. Nginx \uc124\uce58 (Ubuntu \uae30\uc900)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"lang-bash\">sudo apt <span class=\"hljs-keyword\">update<\/span>  \r\nsudo apt <span class=\"hljs-keyword\">install<\/span> nginx\r\n<\/code><\/pre>\n<h3 id=\"-2-nginx-\"><span class=\"ez-toc-section\" id=\"2_Nginx_%EC%8B%A4%ED%96%89_%EB%B0%8F_%ED%99%95%EC%9D%B8\"><\/span><strong>2. Nginx \uc2e4\ud589 \ubc0f \ud655\uc778<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"lang-bash\">sudo systemctl <span class=\"hljs-literal\">start<\/span> nginx\r\n<\/code><\/pre>\n<p>\uc774\uc81c <code>http:\/\/localhost<\/code> \ub610\ub294 \uc11c\ubc84 IP\ub85c \uc811\uc18d\ud558\uba74 Nginx \uae30\ubcf8 \ud398\uc774\uc9c0\uac00 \ub098\ud0c0\ub0a9\ub2c8\ub2e4.<\/p>\n<h3 id=\"-3-node-js-\"><span class=\"ez-toc-section\" id=\"3_Nodejs_%EC%95%B1%EA%B3%BC_%EC%97%B0%EB%8F%99_%EB%A6%AC%EB%B2%84%EC%8A%A4_%ED%94%84%EB%A1%9D%EC%8B%9C_%EC%84%A4%EC%A0%95\"><\/span><strong>3. Node.js \uc571\uacfc \uc5f0\ub3d9 (\ub9ac\ubc84\uc2a4 \ud504\ub85d\uc2dc \uc124\uc815)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"lang-bash\">sudo nano <span class=\"hljs-regexp\">\/etc\/<\/span>nginx<span class=\"hljs-regexp\">\/sites-available\/my<\/span>-webserver\r\n<\/code><\/pre>\n<p>\ub2e4\uc74c \ub0b4\uc6a9\uc744 \ucd94\uac00\ud569\ub2c8\ub2e4:<\/p>\n<pre><code class=\"lang-nginx\"><span class=\"hljs-section\">server<\/span> {  \r\n    <span class=\"hljs-attribute\">listen<\/span> <span class=\"hljs-number\">80<\/span>;  \r\n    <span class=\"hljs-attribute\">server_name<\/span> your_domain_or_ip;  \r\n\r\n    <span class=\"hljs-attribute\">location<\/span> \/ {  \r\n        <span class=\"hljs-attribute\">proxy_pass<\/span> http:\/\/localhost:3000;  \r\n        <span class=\"hljs-attribute\">proxy_http_version<\/span> <span class=\"hljs-number\">1<\/span>.<span class=\"hljs-number\">1<\/span>;  \r\n        <span class=\"hljs-attribute\">proxy_set_header<\/span> Upgrade <span class=\"hljs-variable\">$http_upgrade<\/span>;  \r\n        <span class=\"hljs-attribute\">proxy_set_header<\/span> Connection <span class=\"hljs-string\">'upgrade'<\/span>;  \r\n        <span class=\"hljs-attribute\">proxy_set_header<\/span> Host <span class=\"hljs-variable\">$host<\/span>;  \r\n        <span class=\"hljs-attribute\">proxy_cache_bypass<\/span> <span class=\"hljs-variable\">$http_upgrade<\/span>;  \r\n    }  \r\n}\r\n<\/code><\/pre>\n<pre><code class=\"lang-bash\">sudo ln -s <span class=\"hljs-meta-keyword\">\/etc\/<\/span>nginx<span class=\"hljs-meta-keyword\">\/sites-available\/<\/span>my-webserver <span class=\"hljs-meta-keyword\">\/etc\/<\/span>nginx\/sites-enabled  \r\nsudo nginx -t  <span class=\"hljs-meta\"># \uc124\uc815 \ud14c\uc2a4\ud2b8  <\/span>\r\nsudo systemctl restart nginx\r\n<\/code><\/pre>\n<p>\uc774\uc81c \uc678\ubd80\uc5d0\uc11c\ub3c4 \uc6f9\uc11c\ubc84\uc5d0 \uc811\uadfc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4!<\/p>\n<hr \/>\n<h2 id=\"-https-\"><span class=\"ez-toc-section\" id=\"%EB%8F%84%EB%A9%94%EC%9D%B8_%EC%97%B0%EA%B2%B0_%EB%B0%8F_HTTPS_%EB%B3%B4%EC%95%88_%EC%84%A4%EC%A0%95\"><\/span><strong>\ub3c4\uba54\uc778 \uc5f0\uacb0 \ubc0f HTTPS \ubcf4\uc548 \uc124\uc815<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\ubb34\ub8cc\ub85c <strong>Let\u2019s Encrypt<\/strong>\ub97c \uc774\uc6a9\ud574 HTTPS\ub97c \uc801\uc6a9\ud574\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.<\/p>\n<h3 id=\"-1-certbot-\"><span class=\"ez-toc-section\" id=\"1_Certbot_%EC%84%A4%EC%B9%98\"><\/span><strong>1. Certbot \uc124\uce58<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"lang-bash\">sudo apt <span class=\"hljs-keyword\">install<\/span> certbot python3-certbot-nginx\r\n<\/code><\/pre>\n<h3 id=\"-2-ssl-\"><span class=\"ez-toc-section\" id=\"2_SSL_%EC%9D%B8%EC%A6%9D%EC%84%9C_%EB%B0%9C%EA%B8%89\"><\/span><strong>2. SSL \uc778\uc99d\uc11c \ubc1c\uae09<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<pre><code class=\"lang-bash\">sudo certbot <span class=\"hljs-comment\">--nginx -d your_domain.com<\/span>\r\n<\/code><\/pre>\n<p>\uc778\uc99d\uc11c\uac00 \uc790\ub3d9\uc73c\ub85c \uc801\uc6a9\ub418\uace0, 3\uac1c\uc6d4\ub9c8\ub2e4 \uc790\ub3d9 \uac31\uc2e0\ub429\ub2c8\ub2e4.<\/p>\n<hr \/>\n<h2 id=\"-\"><span class=\"ez-toc-section\" id=\"%EB%A7%88%EB%AC%B4%EB%A6%AC_%EC%9B%B9%EC%84%9C%EB%B2%84_%EC%9A%B4%EC%98%81_%EC%8B%9C_%EC%A3%BC%EC%9D%98%ED%95%A0_%EC%A0%90\"><\/span><strong>\ub9c8\ubb34\ub9ac: \uc6f9\uc11c\ubc84 \uc6b4\uc601 \uc2dc \uc8fc\uc758\ud560 \uc810<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li><strong>\ubcf4\uc548<\/strong>: \uae30\ubcf8 \ud3ec\ud2b8 \ubcc0\uacbd, \ubc29\ud654\ubcbd \uc124\uc815, \uc815\uae30\uc801 \uc5c5\ub370\uc774\ud2b8<\/li>\n<li><strong>\ubaa8\ub2c8\ud130\ub9c1<\/strong>: <code>pm2<\/code>\ub85c Node.js \ud504\ub85c\uc138\uc2a4 \uad00\ub9ac<\/li>\n<li><strong>\ubc31\uc5c5<\/strong>: \ub370\uc774\ud130 \uc190\uc2e4 \ubc29\uc9c0\ub97c \uc704\ud574 \uc8fc\uae30\uc801 \ubc31\uc5c5<\/li>\n<\/ul>\n<p>\uc774\uc81c \uc5ec\ub7ec\ubd84\ub3c4 \ub098\ub9cc\uc758 \uc6f9\uc11c\ubc84\ub97c \uc131\uacf5\uc801\uc73c\ub85c \uad6c\ucd95\ud588\uc2b5\ub2c8\ub2e4! <strong>\ud074\ub77c\uc6b0\ub4dc \uc11c\ube44\uc2a4(AWS Lightsail, Naver Cloud)<\/strong>\uc5d0 \ubc30\ud3ec\ud558\uba74 \uc678\ubd80\uc5d0\uc11c\ub3c4 \uc811\uc18d\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<blockquote><p><strong>\ud83d\udca1 \ud55c \uac78\uc74c \ub354 \ub098\uc544\uac00\uae30<\/strong><\/p>\n<ul>\n<li><strong>Docker<\/strong>\ub85c \uc11c\ubc84 \ud658\uacbd\uc744 \uaca9\ub9ac\ud574\ubcf4\uc138\uc694.<\/li>\n<li><strong>MySQL, MongoDB<\/strong>\ub97c \uc5f0\uacb0\ud574 \ub370\uc774\ud130\ub97c \uc800\uc7a5\ud574\ubcf4\uc138\uc694.<\/li>\n<li><strong>CI\/CD \ud30c\uc774\ud504\ub77c\uc778<\/strong>\uc744 \uad6c\ucd95\ud574 \uc790\ub3d9 \ubc30\ud3ec\ub97c \uc801\uc6a9\ud574\ubcf4\uc138\uc694.<\/li>\n<\/ul>\n<\/blockquote>\n<p>\uc6f9\uc11c\ubc84 \uad6c\ucd95\uc740 \uac1c\ubc1c \uc2e4\ub825\uc744 \ud0a4\uc6b0\ub294 \uac00\uc7a5 \uc88b\uc740 \ubc29\ubc95 \uc911 \ud558\ub098\uc785\ub2c8\ub2e4. \uc9c0\uae08 \ubc14\ub85c \uc2dc\uc791\ud574\ubcf4\uc138\uc694!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\uc6f9\uc11c\ubc84\ub97c \uc9c1\uc811 \uad6c\ucd95\ud574\ubcf4\uace0 \uc2f6\uc9c0\ub9cc \uc5b4\ub514\uc11c\ubd80\ud130 \uc2dc\uc791\ud574\uc57c \ud560\uc9c0 \ub9c9\ub9c9\ud55c\uac00\uc694? \uc624\ub298\uc740 Node.js, Nginx, Apache \uac19\uc740 \uae30\uc220\uc744 \ud65c\uc6a9\ud574 \ub098\ub9cc\uc758 \uc6f9\uc11c\ubc84\ub97c \ub9cc\ub4dc\ub294 \ubc29\ubc95\uc744 \ub2e8\uacc4\ubcc4\ub85c \uc548\ub0b4\ud569\ub2c8\ub2e4. \ucd08\ubcf4\uc790\ub3c4 \uc27d\uac8c \ub530\ub77c\ud560 \uc218 \uc788\ub3c4\ub85d \uc124\uba85\ud588\uc73c\ub2c8, \ucc28\uadfc\ucc28\uadfc \uc77d\uc5b4\ubcf4\uc138\uc694. \uc65c \ub098\ub9cc\uc758 \uc6f9\uc11c\ubc84\ub97c \uad6c\ucd95\ud574\uc57c \ud560\uae4c? \uac1c\uc778 \ud504\ub85c\uc81d\ud2b8\ub97c \ud638\uc2a4\ud305\ud558\uac70\ub098, \uac1c\ubc1c \uacf5\ubd80\ub97c \uc704\ud574 \uc2e4\uc81c \uc11c\ubc84 \ud658\uacbd\uc744 \uacbd\ud5d8\ud558\ub294 \uac83\uc740 \ud070 \ub3c4\uc6c0\uc774 \ub429\ub2c8\ub2e4. AWS, Google Cloud, Naver Cloud \uac19\uc740 \ud50c\ub7ab\ud3fc\uc744 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":27006,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"default","adv-header-id-meta":"","stick-header-meta":"default","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[70],"tags":[],"class_list":["post-27005","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-ko"],"_links":{"self":[{"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/posts\/27005","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/comments?post=27005"}],"version-history":[{"count":2,"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/posts\/27005\/revisions"}],"predecessor-version":[{"id":27011,"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/posts\/27005\/revisions\/27011"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/media\/27006"}],"wp:attachment":[{"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/media?parent=27005"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/categories?post=27005"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hitek.com.vn\/ko\/wp-json\/wp\/v2\/tags?post=27005"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}