{"id":3833,"date":"2026-06-12T08:08:32","date_gmt":"2026-06-12T08:08:32","guid":{"rendered":"https:\/\/cloudsave.app\/?p=3833"},"modified":"2026-06-12T08:32:05","modified_gmt":"2026-06-12T08:32:05","slug":"diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4","status":"publish","type":"post","link":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/","title":{"rendered":"DIY \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc228\uaca8\uc9c4 \uc704\ud5d8\uc131: \ucee4\uc2a4\ud140 Bash\uac00 \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c \ud655\uc7a5\ub418\uc9c0 \uc54a\ub294 \uc774\uc720"},"content":{"rendered":"<p>\ubaa8\ub4e0 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub9ac\uc790(DBA)\uc640 \uc2dc\uc2a4\ud15c \uc5d4\uc9c0\ub2c8\uc5b4\ub294 \uacbd\ub825 \uc911 \uc5b8\uc820\uac00\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ubc31\uc5c5\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \uc178 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc791\uc131\ud574 \ubcf8 \uacbd\ud5d8\uc774 \uc788\uc744 \uac83\uc785\ub2c8\ub2e4. \uc774\ub294 \uc0ac\uc2e4\uc0c1 \ud1b5\uacfc \uc758\ub840\uc640\ub3c4 \uac19\uc2b5\ub2c8\ub2e4. \ud504\ub85c\uc81d\ud2b8 \ucd08\uae30 \ub2e8\uacc4\uc5d0\uc11c\ub294 <code>mysqldump<\/code>\ub098 <code>pg_dump<\/code>\ub97c \uc2e4\ud589\ud558\uc5ec <code>gzip<\/code>\uc73c\ub85c \ud30c\uc774\ud504\ud558\ub294 \uac04\ub2e8\ud55c cron \uc791\uc5c5\uc774 \uc6b0\uc544\ud558\uace0 \uac00\ubcbc\uc6b0\uba70 \ube44\uc6a9 \ud6a8\uc728\uc801\uc778 \uc194\ub8e8\uc158\ucc98\ub7fc \ubcf4\uc785\ub2c8\ub2e4.<\/p>\n<p>\uadf8\ub7ec\ub098 \uc778\ud504\ub77c\uac00 \ud655\uc7a5\ub418\uace0 \ub370\uc774\ud130 \ubcfc\ub968\uc774 \uc99d\uac00\ud558\uba70 \uac00\ub3d9 \uc2dc\uac04 SLA\uac00 \uc5c4\uaca9\ud574\uc9d0\uc5d0 \ub530\ub77c, \uadf8 10\uc904\uc9dc\ub9ac Bash \uc2a4\ud06c\ub9bd\ud2b8\ub294 \uc870\uc6a9\ud788 \uc2dc\ud55c\ud3ed\ud0c4\uc73c\ub85c \ubcc0\ud569\ub2c8\ub2e4. \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc740 \uace0\uac00\uc6a9\uc131, \uc5c4\uaca9\ud55c \ubcf5\uad6c \uc9c0\uc810 \ubaa9\ud45c(RPO), \uc2e0\uc18d\ud55c \ubcf5\uad6c \uc2dc\uac04 \ubaa9\ud45c(RTO)\ub97c \uc694\uad6c\ud569\ub2c8\ub2e4. \uc774\ub7ec\ud55c \ud658\uacbd\uc5d0\uc11c DIY \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc5d0 \uc758\uc874\ud558\ub294 \uac83\uc740 \ub370\uc774\ud130 \uc77c\uad00\uc131, \uc870\uc6a9\ud55c \uc2e4\ud328(silent failure), \ubcf4\uc548 \ucde8\uc57d\uc810 \ubc0f \uad00\ub9ac \ubd88\uac00\ub2a5\ud55c \ubcf5\uad6c \ud504\ub85c\uc138\uc2a4\uc640 \uad00\ub828\ub41c \uc2ec\uac01\ud55c \uc704\ud5d8\uc744 \ucd08\ub798\ud569\ub2c8\ub2e4.<\/p>\n<p>\uc774 \uae30\uc0ac\uc5d0\uc11c\ub294 DIY \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc544\ud0a4\ud14d\ucc98 \uacb0\ud568\uacfc \uc228\uaca8\uc9c4 \uc704\ud5d8\uc744 \ubd84\uc11d\ud558\uace0, \ub17c\ub9ac\uc801 \ubc31\uc5c5\uacfc \ubb3c\ub9ac\uc801 \ubc31\uc5c5\uc758 \uae30\uc220\uc801 \ud568\uc815\uc744 \ud0d0\uad6c\ud558\uba70, \ubbf8\uc158 \ud06c\ub9ac\ud2f0\uceec \ub370\uc774\ud130\ub97c \ubcf4\ud638\ud558\uae30 \uc704\ud574 CloudSave\uc640 \uac19\uc740 \uc5d4\ud130\ud504\ub77c\uc774\uc988\uae09 \uc194\ub8e8\uc158\uc73c\ub85c \uc804\ud658\ud558\ub294 \ubc29\ubc95\uc744 \ub17c\uc758\ud560 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<h2>\ub2e8\uc21c\ud568\uc758 \ud658\uc0c1: \uace0\uc804\uc801\uc778 DIY \uc2a4\ud06c\ub9bd\ud2b8 \ubd84\uc11d<\/h2>\n<p>\uc704\ud5d8\uc744 \uc774\ud574\ud558\ub824\uba74 \uba3c\uc800 \uc77c\ubc18\uc801\uc778 DIY \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uad6c\uc870\ub97c \uc0b4\ud3b4\ubd10\uc57c \ud569\ub2c8\ub2e4. MySQL \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \ub300\ud55c \ud45c\uc900 \uc811\uadfc \ubc29\uc2dd\uc740 \uc885\uc885 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n# \uac04\ub2e8\ud55c DIY MySQL \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\nBACKUP_DIR=\"\/mnt\/backups\"\nDATE=$(date +%F)\nDB_USER=\"admin\"\nDB_PASS=\"SuperSecret123!\"\n\nmysqldump -u $DB_USER -p$DB_PASS my_database | gzip &gt; $BACKUP_DIR\/mydb_$DATE.sql.gz\n\n# 30\uc77c \uc774\uc0c1 \ub41c \ubc31\uc5c5 \uc0ad\uc81c\nfind $BACKUP_DIR -type f -name \"*.sql.gz\" -mtime +30 -exec rm {} ;\n<\/code><\/pre>\n<p>\uc5b8\ub73b \ubcf4\uae30\uc5d0 \uc774 \uc2a4\ud06c\ub9bd\ud2b8\ub294 \ub370\uc774\ud130\ub97c \ucd94\ucd9c\ud558\uace0 \uc555\ucd95\ud558\uba70 \ubcf4\uc874 \uae30\uac04\uc744 \uad00\ub9ac\ud55c\ub2e4\ub294 \ubaa9\ud45c\ub97c \ub2ec\uc131\ud558\ub294 \uac83\ucc98\ub7fc \ubcf4\uc785\ub2c8\ub2e4. \ud558\uc9c0\ub9cc \uadf8 \uc774\uba74\uc5d0\ub294 \uacb0\uad6d \ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c \ub370\uc774\ud130 \uc190\uc2e4\ub85c \uc774\uc5b4\uc9c8 \uc218 \uc788\ub294 \uce58\uba85\uc801\uc778 \uacb0\ud568\ub4e4\uc774 \uac00\ub4dd\ud569\ub2c8\ub2e4.<\/p>\n<h2>\uc704\ud5d8 1: \uc870\uc6a9\ud55c \uc2e4\ud328(Silent Failures)\uc640 \ud30c\uc774\ud504 \ud568\uc815<\/h2>\n<p>DIY \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uac00\uc7a5 \uad50\ud65c\ud55c \uc704\ud5d8 \uc911 \ud558\ub098\ub294 \uc870\uc6a9\ud55c \uc2e4\ud328\uc785\ub2c8\ub2e4. \uc704\uc758 \uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c <code>mysqldump<\/code> \uba85\ub839\uc740 <code>gzip<\/code>\uc73c\ub85c \uc9c1\uc811 \ud30c\uc774\ud504(<code>|<\/code>)\ub429\ub2c8\ub2e4.<\/p>\n<p>Bash\uc5d0\uc11c \ud30c\uc774\ud504\ub77c\uc778\uc758 \uc885\ub8cc \uc0c1\ud0dc\ub294 \ud30c\uc774\ud504\ub77c\uc778\uc758 <em>\ub9c8\uc9c0\ub9c9<\/em> \uba85\ub839\uc758 \uc885\ub8cc \uc0c1\ud0dc\uc785\ub2c8\ub2e4. \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc11c\ubc84\uc758 \uba54\ubaa8\ub9ac\uac00 \ubd80\uc871\ud558\uac70\ub098, \uc5f0\uacb0\uc774 \ub04a\uae30\uac70\ub098, \ub364\ud504 \ub3c4\uc911 \uc7a0\uae34 \ud14c\uc774\ube14\uc744 \ub9cc\ub098\uba74 <code>mysqldump<\/code>\ub294 \uc2e4\ud328\ud558\uace0 \uc624\ub958\ub97c \ubc1c\uc0dd\uc2dc\ud0b5\ub2c8\ub2e4. \uadf8\ub7ec\ub098 <code>gzip<\/code>\uc740 \uc218\uc2e0\ud55c \ubd80\ubd84\uc801\uc778 \ucd9c\ub825\uc744 \uc131\uacf5\uc801\uc73c\ub85c \uc555\ucd95\ud558\uace0 <code>0<\/code>(\uc131\uacf5) \uc0c1\ud0dc \ucf54\ub4dc\ub85c \uc885\ub8cc\ub429\ub2c8\ub2e4.<\/p>\n<p>cron \uc791\uc5c5\uc758 \uc885\ub8cc \ucf54\ub4dc\ub97c \ud655\uc778\ud558\ub294 \ubaa8\ub2c8\ud130\ub9c1 \uc2dc\uc2a4\ud15c\uc740 \ubc31\uc5c5\uc774 \uc131\uacf5\ud588\ub2e4\uace0 \ubcf4\uace0\ud560 \uac83\uc785\ub2c8\ub2e4. \ub514\uc2a4\ud06c\uc5d0\ub294 \uc720\ud6a8\ud55c <code>.gz<\/code> \ud30c\uc77c\uc774 \uc788\uaca0\uc9c0\ub9cc, \uadf8 \uc548\uc5d0\ub294 \uc798\ub9ac\uace0 \uc4f8\ubaa8\uc5c6\ub294 SQL \ud30c\uc77c\uc774 \ub4e4\uc5b4\uc788\uc744 \uac83\uc785\ub2c8\ub2e4. \uc911\uc694\ud55c \ubcf5\uad6c\ub97c \uc2dc\ub3c4\ud558\uae30 \uc804\uae4c\uc9c0\ub294 \uc774 \uc0ac\uc2e4\uc744 \ubc1c\uacac\ud558\uc9c0 \ubabb\ud560 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<h3>\uc644\ud654 \ubc29\ubc95(\ubc0f \uadf8 \ud55c\uacc4)<\/h3>\n<p>\uc5d4\uc9c0\ub2c8\uc5b4\ub4e4\uc740 \uc885\uc885 Bash\uc5d0\uc11c \uc5c4\uaca9\ud55c \uc624\ub958 \ucc98\ub9ac\ub97c \ud65c\uc131\ud654\ud558\uc5ec \uc774\ub97c \uc218\uc815\ud558\ub824\uace0 \ud569\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-bash\">set -e\nset -o pipefail\n<\/code><\/pre>\n<p><code>set -o pipefail<\/code>\uc740 \ud30c\uc774\ud504\ub77c\uc778\uc758 <em>\uc5b4\ub5a4<\/em> \uba85\ub839\uc774\ub77c\ub3c4 \uc2e4\ud328\ud558\uba74 \uc2a4\ud06c\ub9bd\ud2b8\uac00 \uc2e4\ud328\ud558\ub3c4\ub85d \ubcf4\uc7a5\ud558\uc9c0\ub9cc, \uc5ec\uc804\ud788 \uc2a4\ud06c\ub9bd\ud2b8 \uc8fc\ubcc0\uc5d0 \uac15\ub825\ud55c \uc54c\ub9bc, \ub85c\uae45 \ubc0f \uc7ac\uc2dc\ub3c4 \uba54\ucee4\ub2c8\uc998\uc744 \uad6c\ucd95\ud574\uc57c \ud569\ub2c8\ub2e4. \uc77c\uc2dc\uc801\uc778 \ub124\ud2b8\uc6cc\ud06c \uc624\ub958\ub85c \uc778\ud574 \uc624\uc804 2\uc2dc\uc5d0 \uc2e4\ud328\uac00 \ubc1c\uc0dd\ud558\uba74 DIY \uc2a4\ud06c\ub9bd\ud2b8\ub294 \ub2e8\uc21c\ud788 \uc885\ub8cc\ub429\ub2c8\ub2e4. \uc5d4\ud130\ud504\ub77c\uc774\uc988 \ud50c\ub7ab\ud3fc\uc740 \uc9c0\ub2a5\uc801\uc778 \uc9c0\uc218 \ubc31\uc624\ud504(exponential backoff) \uc7ac\uc2dc\ub3c4\ub97c \ud1b5\ud574 \uc774\ub7ec\ud55c \uc77c\uc2dc\uc801\uc778 \uc624\ub958\ub97c \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n<h2>\uc704\ud5d8 2: \ub370\uc774\ud130 \uc77c\uad00\uc131 \ubc0f \uc7a0\uae08 \uc545\ubabd<\/h2>\n<p>DIY \uc2a4\ud06c\ub9bd\ud2b8\ub294 \ub17c\ub9ac\uc801 \ubc31\uc5c5(<code>mysqldump<\/code>, <code>pg_dump<\/code>)\uc5d0 \ud06c\uac8c \uc758\uc874\ud569\ub2c8\ub2e4. \ub17c\ub9ac\uc801 \ubc31\uc5c5\uc740 \ubaa8\ub4e0 \ud14c\uc774\ube14\uc5d0 \ub300\ud574 <code>SELECT<\/code> \ubb38\uc744 \uc2e4\ud589\ud558\uc5ec \ub370\uc774\ud130\ub97c \ucd94\ucd9c\ud569\ub2c8\ub2e4. \ud2b8\ub79c\uc7ad\uc158\uc774 \ub9ce\uc740 \ud504\ub85c\ub355\uc158 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c\ub294 \ub370\uc774\ud130\uac00 \uc9c0\uc18d\uc801\uc73c\ub85c \ubcc0\uacbd\ub429\ub2c8\ub2e4. \uc2a4\ud06c\ub9bd\ud2b8\uac00 100GB \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ub364\ud504\ud558\ub294 \ub370 45\ubd84\uc774 \uac78\ub9b0\ub2e4\uba74, \ub364\ud504 \uc2dc\uc791 \uc2dc\uc810\uc758 \ub370\uc774\ud130\ub294 \ub05d \uc2dc\uc810\uc758 \ub370\uc774\ud130\ubcf4\ub2e4 45\ubd84 \ub354 \uc624\ub798\ub41c \uac83\uc774 \ub418\uc5b4 ACID \uc900\uc218\ub97c \uc704\ubc18\ud558\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<h3>MySQL \ud2b8\ub79c\uc7ad\uc158 \uc77c\uad00\uc131<\/h3>\n<p>InnoDB\ub97c \uc0ac\uc6a9\ud558\uc5ec MySQL\uc5d0\uc11c \uc77c\uad00\ub41c \uc2a4\ub0c5\uc0f7\uc744 \uc5bb\uc73c\ub824\uba74 \ud2b9\uc815 \ud50c\ub798\uadf8\ub97c \uc804\ub2ec\ud574\uc57c \ud569\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-bash\">mysqldump --single-transaction --quick --routines --events -u user -p db &gt; dump.sql\n<\/code><\/pre>\n<p><code>--single-transaction<\/code> \ud50c\ub798\uadf8\ub294 \uaca9\ub9ac \uc218\uc900\uc744 <code>REPEATABLE READ<\/code>\ub85c \uc124\uc815\ud558\uace0 \ub364\ud504 \uc804\uc5d0 \ud2b8\ub79c\uc7ad\uc158\uc744 \uc2dc\uc791\ud569\ub2c8\ub2e4. \uadf8\ub7ec\ub098 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0 \uc5ec\uc804\ud788 \ub808\uac70\uc2dc MyISAM \ud14c\uc774\ube14\uc774 \ud3ec\ud568\ub418\uc5b4 \uc788\ub2e4\uba74, \uc774 \ud50c\ub798\uadf8\ub294 \uc7a0\uae08\uc744 \ubc29\uc9c0\ud558\uc9c0 \ubabb\ud558\uc5ec \ubc31\uc5c5\uc774 \uc2e4\ud589\ub418\ub294 \ub3d9\uc548 \ud504\ub85c\ub355\uc158 \uc77d\uae30\/\uc4f0\uae30 \ud2b8\ub798\ud53d\uc774 \uc911\ub2e8\ub420 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \ub610\ud55c \ubc31\uc5c5 \uc911\uc5d0 \uac1c\ubc1c\uc790\uac00 \uc2e4\ud589\ud55c \ubaa8\ub4e0 <code>ALTER TABLE<\/code>, <code>DROP TABLE<\/code> \ub610\ub294 <code>RENAME TABLE<\/code> \ubb38\uc740 <code>REPEATABLE READ<\/code> \uc2a4\ub0c5\uc0f7\uc744 \uae68\ub728\ub824 \ub364\ud504 \uc2e4\ud328\ub97c \uc720\ubc1c\ud569\ub2c8\ub2e4.<\/p>\n<h3>PostgreSQL \ubc0f WAL \uc544\uce74\uc774\ube59<\/h3>\n<p>PostgreSQL\uc758 \uacbd\uc6b0 <code>pg_dump<\/code>\ub294 \uc77c\uad00\ub41c \ub17c\ub9ac\uc801 \ubc31\uc5c5\uc744 \uc81c\uacf5\ud558\uc9c0\ub9cc, \ub17c\ub9ac\uc801 \ubc31\uc5c5\ub9cc\uc73c\ub85c\ub294 \ud2b9\uc815 \uc2dc\uc810 \ubcf5\uad6c(PITR)\ub97c \uc81c\uacf5\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc624\ud6c4 4\uc2dc\uc5d0 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uac00 \ucda9\ub3cc\ud558\uace0 \ub9c8\uc9c0\ub9c9 cron \uc2a4\ud06c\ub9bd\ud2b8\uac00 \uc790\uc815\uc5d0 \uc2e4\ud589\ub418\uc5c8\ub2e4\uba74 16\uc2dc\uac04 \ubd84\ub7c9\uc758 \ub370\uc774\ud130\ub97c \uc783\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<p>PITR\uc744 \ub2ec\uc131\ud558\ub824\uba74 WAL(Write-Ahead Logs)\uc758 \uc9c0\uc18d\uc801\uc778 \uc544\uce74\uc774\ube59\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. <code>archive_command<\/code>\ub97c \uc548\uc804\ud558\uac8c \ucc98\ub9ac\ud558\ub294 DIY \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc791\uc131\ud558\ub294 \uac83\uc740 \ub9e4\uc6b0 \uc5b4\ub835\uae30\ub85c \uc720\uba85\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-ini\"># postgresql.conf\nwal_level = replica\narchive_mode = on\narchive_command = 'test ! -f \/mnt\/wal_archive\/%f &amp;&amp; cp %p \/mnt\/wal_archive\/%f'\n<\/code><\/pre>\n<p>\ub300\uc0c1 \uc2a4\ud1a0\ub9ac\uc9c0(<code>\/mnt\/wal_archive\/<\/code>)\uac00 \uac00\ub4dd \ucc28\uac70\ub098 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uac8c \ub418\uba74 <code>archive_command<\/code>\ub294 \uc2e4\ud328\ud569\ub2c8\ub2e4. \uadf8\ub7ec\uba74 PostgreSQL\uc740 \uae30\ubcf8 \ub514\uc2a4\ud06c\uac00 \uac00\ub4dd \ucc30 \ub54c\uae4c\uc9c0 WAL \ud30c\uc77c\uc744 \ub85c\uceec\uc5d0 \uc313\uc544\ub450\uc5b4 \uc804\uccb4 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc911\ub2e8\uc744 \ucd08\ub798\ud569\ub2c8\ub2e4. DIY \uc2a4\ud06c\ub9bd\ud2b8\ub294 \uc911\ub2e8\uc774 \ubc1c\uc0dd\ud558\uae30 \uc804\uc5d0 WAL \ucd95\uc801\uc744 \ubaa8\ub2c8\ud130\ub9c1\ud558\uace0 \uad00\ub9ac\uc790\uc5d0\uac8c \uc54c\ub9ac\ub294 \ub370 \ud544\uc694\ud55c \uc6d0\uaca9 \uce21\uc815\uc744 \uac70\uc758 \uc81c\uacf5\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc704\ud5d8 3: \ubcf4\uc874 \uc815\ucc45\uc758 \ub3c4\ubc15<\/h2>\n<p>\ucd08\uae30 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \ubcf4\uc874 \uba85\ub839\uc744 \ub2e4\uc2dc \uc0b4\ud3b4\ubcf4\uc2ed\uc2dc\uc624:<\/p>\n<pre><code class=\"language-bash\">find $BACKUP_DIR -type f -name \"*.sql.gz\" -mtime +30 -exec rm {} ;\n<\/code><\/pre>\n<p>\uc774\ub294 \uce58\uba85\uc801\uc778 \ub370\uc774\ud130 \uc190\uc2e4 \uc0ac\uace0\uac00 \ubc1c\uc0dd\ud558\uae30\ub97c \uae30\ub2e4\ub9ac\ub294 \uac83\uacfc \uac19\uc2b5\ub2c8\ub2e4. \uad6c\uc131 \ubcc0\uacbd\uc73c\ub85c \uc778\ud574 <code>mysqldump<\/code> \uc778\uc99d\uc774 \uc911\ub2e8\ub418\ub294 \uc2dc\ub098\ub9ac\uc624\ub97c \uc0c1\uc0c1\ud574 \ubcf4\uc2ed\uc2dc\uc624. \uc2a4\ud06c\ub9bd\ud2b8\ub294 \uc0c8 \ubc31\uc5c5\uc744 \uc0dd\uc131\ud558\uc9c0 \ubabb\ud558\uc9c0\ub9cc, <code>find<\/code> \uba85\ub839\uc740 \ub9e4\uc77c \ubc24 \uacc4\uc18d \uc2e4\ud589\ub418\uc5b4 30\uc77c \uc774\uc0c1 \ub41c \ud30c\uc77c\uc744 \uc131\uc2e4\ud558\uac8c \uc0ad\uc81c\ud569\ub2c8\ub2e4.<\/p>\n<p>30\uc77c \ub3d9\uc548 \ubc31\uc5c5 \uc2e4\ud328\uac00 \uc870\uc6a9\ud788 \uc9c0\uc18d\ub41c \ud6c4, <code>find<\/code> \uba85\ub839\uc740 \ub9c8\uc9c0\ub9c9\uc73c\ub85c \ub0a8\uc740 \uc88b\uc740 \ubc31\uc5c5\ub9c8\uc800 \uc0ad\uc81c\ud560 \uac83\uc785\ub2c8\ub2e4. \uc774\uc81c \ubc31\uc5c5\uc774 \ud558\ub098\ub3c4 \ub0a8\uc9c0 \uc54a\uac8c \ub429\ub2c8\ub2e4.<\/p>\n<p>CloudSave\uc640 \uac19\uc740 \uc5d4\ud130\ud504\ub77c\uc774\uc988 \ubc31\uc5c5 \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub294 \uc0c1\ud0dc \uc800\uc7a5 \ubcf4\uc874 \uc815\ucc45\uc744 \ud65c\uc6a9\ud569\ub2c8\ub2e4. \uc774\ub294 &#8220;30\uc77c \uc774\uc0c1 \ub41c \ubc31\uc5c5 \uc0ad\uc81c&#8221;\uc640 &#8220;\uc624\ub798\ub41c \ub370\uc774\ud130\ub97c \uc815\ub9ac\ud558\uae30 \uc804\uc5d0 \ucd5c\uc18c 30\uac1c\uc758 \uc131\uacf5\uc801\uc778 \ubcf5\uad6c \uc9c0\uc810\uc774 \uc874\uc7ac\ud558\ub294\uc9c0 \ud655\uc778&#8221;\ud558\ub294 \uac83\uc758 \ucc28\uc774\ub97c \uc774\ud574\ud569\ub2c8\ub2e4.<\/p>\n<h2>\uc704\ud5d8 4: \ubcf4\uc548, \uc554\ud638\ud654 \ubc0f \uaddc\uc815 \uc900\uc218\uc758 \uc0ac\uac01\uc9c0\ub300<\/h2>\n<p>\ub79c\uc12c\uc6e8\uc5b4\uc640 \uc5c4\uaca9\ud55c \uaddc\uc815 \uc900\uc218 \ud504\ub808\uc784\uc6cc\ud06c(GDPR, HIPAA, SOC 2)\uc758 \uc2dc\ub300\uc5d0 \ubc31\uc5c5\uc740 \uc8fc\uc694 \ud45c\uc801\uc785\ub2c8\ub2e4. DIY \uc2a4\ud06c\ub9bd\ud2b8\ub294 \ubcf4\uc548 \ubaa8\ubc94 \uc0ac\ub840\ub97c \uc790\uc8fc \uc704\ubc18\ud569\ub2c8\ub2e4:<\/p>\n<ol>\n<li><strong>\ud558\ub4dc\ucf54\ub529\ub41c \uc790\uaca9 \uc99d\uba85:<\/strong> \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ube44\ubc00\ubc88\ud638\ub97c \uc77c\ubc18 \ud14d\uc2a4\ud2b8 \uc2a4\ud06c\ub9bd\ud2b8\ub098 cron \uc815\uc758\uc5d0 \uc800\uc7a5\ud558\ub294 \uac83\uc740 \uc5c4\uccad\ub09c \ubcf4\uc548 \uc704\ud5d8\uc785\ub2c8\ub2e4. MySQL\uc758 <code>mysql_config_editor<\/code>\ub098 PostgreSQL\uc758 <code>.pgpass<\/code> \ud30c\uc77c\uacfc \uac19\uc740 \ub3c4\uad6c\uac00 \uc774\ub97c \uc644\ud654\ud558\uc9c0\ub9cc, \uc5ec\uc804\ud788 \uc11c\ubc84\uc5d0\uc11c \ub85c\uceec \ud0a4 \ud30c\uc77c\uc744 \uad00\ub9ac\ud574\uc57c \ud569\ub2c8\ub2e4.<\/li>\n<li><strong>\uc800\uc7a5 \ub370\uc774\ud130 \uc554\ud638\ud654 \ubd80\uc7ac:<\/strong> \uc6d0\uc2dc SQL\uc744 \ub514\uc2a4\ud06c\uc5d0 \ub364\ud504\ud558\uba74 \ubbfc\uac10\ud55c PII\/PHI\uac00 \ub178\ucd9c\ub41c \uc0c1\ud0dc\ub85c \ub0a8\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>\ubcf5\uc7a1\ud55c \uc554\ud638\ud654 \ud30c\uc774\ud504\ub77c\uc778:<\/strong> GPG\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc989\uc11d\uc5d0\uc11c \ubc31\uc5c5\uc744 \uc554\ud638\ud654\ud558\ub824\uace0 \uc2dc\ub3c4\ud558\uba74 \uc2ec\uac01\ud55c CPU \uc624\ubc84\ud5e4\ub4dc\uc640 \ud0a4 \uad00\ub9ac \ubcf5\uc7a1\uc131\uc774 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.<\/li>\n<\/ol>\n<pre><code class=\"language-bash\"># DIY \uc554\ud638\ud654 \ubc31\uc5c5 \ud30c\uc774\ud504\ub77c\uc778\npg_dump mydb | gzip | gpg --symmetric --cipher-algo AES256 --passphrase-file \/etc\/keys\/backup.key &gt; backup.sql.gz.gpg\n<\/code><\/pre>\n<p>\uc11c\ubc84\uac00 \uc190\uc0c1\ub418\uba74 \uacf5\uaca9\uc790\ub294 \uc554\ud638\ud654\ub41c \ubc31\uc5c5\uacfc <code>\/etc\/keys\/backup.key<\/code> \ud30c\uc77c \ubaa8\ub450\uc5d0 \uc561\uc138\uc2a4\ud560 \uc218 \uc788\uc5b4 \uc554\ud638\ud654\uac00 \ubb34\uc6a9\uc9c0\ubb3c\uc774 \ub429\ub2c8\ub2e4. \ub610\ud55c GPG \ud0a4\ub97c \uc0dd\uc131\ud55c DBA\uac00 \ud68c\uc0ac\ub97c \ub5a0\ub098\uace0 \ud0a4\ub97c \ubd84\uc2e4\ud558\uba74 \ubc31\uc5c5\uc744 \ubcf5\uad6c\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n<h2>\uc704\ud5d8 5: RTO \ud604\uc2e4 \uc810\uac80 (\ubcf5\uad6c\ub294 \ubc31\uc5c5\ubcf4\ub2e4 \uc5b4\ub835\ub2e4)<\/h2>\n<p>\ubc31\uc5c5\uc758 \uad81\uadf9\uc801\uc778 \ud14c\uc2a4\ud2b8\ub294 \ubcf5\uad6c\uc785\ub2c8\ub2e4. DIY \uc2a4\ud06c\ub9bd\ud2b8\ub85c \uc0dd\uc131\ub41c \ub17c\ub9ac\uc801 \ubc31\uc5c5\uc740 \ubcf5\uad6c \uc18d\ub3c4\uac00 \ub290\ub9ac\uae30\ub85c \uc720\uba85\ud569\ub2c8\ub2e4. 500GB SQL \ub364\ud504\ub97c \ub9cc\ub4dc\ub294 \ub370 15\ubd84\uc774 \uac78\ub9b4 \uc218 \uc788\uc9c0\ub9cc, \uc774\ub97c \ubcf5\uad6c\ud558\ub824\uba74 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc5d4\uc9c4\uc774 SQL\uc744 \uad6c\ubb38 \ubd84\uc11d\ud558\uace0, \uc778\ub371\uc2a4\ub97c \ub2e4\uc2dc \ube4c\ub4dc\ud558\uace0, \uc81c\uc57d \uc870\uac74\uc744 \ub2e4\uc2dc \uacc4\uc0b0\ud574\uc57c \ud569\ub2c8\ub2e4. \uc774\ub294 \uba87 \uc2dc\uac04 \ub610\ub294 \uba70\uce60\uc774 \uac78\ub9b4 \uc218 \uc788\uc73c\uba70, RTO\ub97c \uc644\uc804\ud788 \ud30c\uad34\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub300\uaddc\ubaa8 \ud504\ub85c\ub355\uc158 \ub370\uc774\ud130\ubca0\uc774\uc2a4\uc758 \uacbd\uc6b0 \ubb3c\ub9ac\uc801 \ubc31\uc5c5(\uc2e4\uc81c \ub370\uc774\ud130 \ud30c\uc77c \ubcf5\uc0ac)\uc774 \ud544\uc218\uc801\uc785\ub2c8\ub2e4. Percona XtraBackup\uc774\ub098 <code>pg_basebackup<\/code>\uacfc \uac19\uc740 \ub3c4\uad6c\uac00 \uc874\uc7ac\ud558\uc9c0\ub9cc, \uc774\ub97c DIY Bash \uc2a4\ud06c\ub9bd\ud2b8\ub85c \uac10\uc2f8\ub294 \uac83\uc740 \ub9e4\uc6b0 \ubcf5\uc7a1\ud569\ub2c8\ub2e4. LVM \uc2a4\ub0c5\uc0f7\uc744 \uad00\ub9ac\ud558\uace0, \ud30c\uc77c \uc2dc\uc2a4\ud15c \uba48\ucda4(quiescing)\uc744 \ucc98\ub9ac\ud558\uba70, \ub124\ud2b8\uc6cc\ud06c \uc778\ud130\ud398\uc774\uc2a4\ub97c \ud3ec\ud654\uc2dc\ud0a4\uc9c0 \uc54a\uace0 \uc624\ud504\uc0ac\uc774\ud2b8\ub85c \ubc31\uc5c5\uc774 \uc804\uc1a1\ub418\ub3c4\ub85d \ubcf4\uc7a5\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<h3>LVM \uc2a4\ub0c5\uc0f7\uc758 \ud568\uc815<\/h3>\n<p>\ub9ce\uc740 \uc5d4\uc9c0\ub2c8\uc5b4\uac00 LVM \uc2a4\ub0c5\uc0f7\uc744 \uc0ac\uc6a9\ud558\uc5ec &#8220;\ubb34\uc911\ub2e8&#8221; \ubb3c\ub9ac\uc801 \ubc31\uc5c5\uc744 \uc2dc\ub3c4\ud569\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-bash\"># \uc2a4\ub0c5\uc0f7 \uc0dd\uc131\nlvcreate --size 20G --snapshot --name db_snap \/dev\/vg0\/db_vol\n\n# \ub9c8\uc6b4\ud2b8 \ubc0f \ubcf5\uc0ac\nmount \/dev\/vg0\/db_snap \/mnt\/snap\ntar -czf \/backups\/db_physical.tar.gz \/mnt\/snap\/mysql\n<\/code><\/pre>\n<p>\ub370\uc774\ud130\ubca0\uc774\uc2a4\uc5d0\uc11c \uc4f0\uae30 I\/O\uac00 \uac11\uc790\uae30 \uae09\uc99d\ud558\uba74 20G LVM \uc2a4\ub0c5\uc0f7\uc774 \uc989\uc2dc \uac00\ub4dd \ucc30 \uc218 \uc788\uc2b5\ub2c8\ub2e4. LVM \uc2a4\ub0c5\uc0f7\uc774 \uac00\ub4dd \ucc28\uba74 \uc720\ud6a8\ud558\uc9c0 \uc54a\uac8c \ub418\uace0 \ubc31\uc5c5\uc740 \uc2e4\ud328\ud569\ub2c8\ub2e4. \ub354 \ub098\uc05c \uac83\uc740, \uacfc\ub3c4\ud558\uac8c \uc0ac\uc6a9\ub418\ub294 LVM \uc2a4\ub0c5\uc0f7\uc774 \uae30\ubcf8 \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubcfc\ub968\uc758 I\/O \uc131\ub2a5\uc744 \uc2ec\uac01\ud558\uac8c \uc800\ud558\uc2dc\ucf1c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc9c0\uc5f0 \uc2dc\uac04 \uae09\uc99d\uc744 \uc720\ubc1c\ud560 \uc218 \uc788\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4.<\/p>\n<h2>\uc5d4\ud130\ud504\ub77c\uc774\uc988\uae09 \ubcf4\ud638\ub85c\uc758 \uc804\ud658<\/h2>\n<p>DIY \uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c \uc5d4\ud130\ud504\ub77c\uc774\uc988 \ud50c\ub7ab\ud3fc\uc73c\ub85c\uc758 \uc804\ud658\uc740 \ubaa8\ub4e0 \uc778\ud504\ub77c \ud300\uc5d0\uac8c \uc911\uc694\ud55c \uc131\uc219\ub3c4 \uc774\uc815\ud45c\uc785\ub2c8\ub2e4. \ubaa9\ud45c\ub294 &#8220;\uc2a4\ud06c\ub9bd\ud2b8\uac00 \uc2e4\ud589\ub418\uae30\ub97c \ubc14\ub77c\ub294 \uac83&#8221;\uc5d0\uc11c \ubcf5\uad6c \uac00\ub2a5\uc131\uc5d0 \ub300\ud55c \uc554\ud638\ud559\uc801 \uc99d\uba85\uc744 \ud655\ubcf4\ud558\ub294 \uac83\uc73c\ub85c \ub098\uc544\uac00\ub294 \uac83\uc785\ub2c8\ub2e4.<\/p>\n<p>CloudSave\uc640 \uac19\uc740 \ud50c\ub7ab\ud3fc\uc740 DIY \uc2a4\ud06c\ub9bd\ud305\uc758 \uc0ac\uac01\uc9c0\ub300\ub97c \uc81c\uac70\ud558\ub3c4\ub85d \ud2b9\ubcc4\ud788 \uc124\uacc4\ub418\uc5c8\uc2b5\ub2c8\ub2e4. \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc778\uc2dd \uc5d0\uc774\uc804\ud2b8\ub97c \ubc30\ud3ec\ud568\uc73c\ub85c\uc368 CloudSave\ub294 \ub370\uc774\ud130\ubca0\uc774\uc2a4 API(MySQL, PostgreSQL, MS SQL, Oracle)\uc640 \uc9c1\uc811 \uc0c1\ud638 \uc791\uc6a9\ud558\uc5ec \ud14c\uc774\ube14\uc744 \uc7a0\uadf8\uac70\ub098 \uc131\ub2a5\uc744 \uc800\ud558\uc2dc\ud0a4\uc9c0 \uc54a\uace0 \uc77c\uad00\ub41c \ubb3c\ub9ac\uc801 \ubc0f \ub17c\ub9ac\uc801 \ubc31\uc5c5\uc744 \uc870\uc815\ud569\ub2c8\ub2e4.<\/p>\n<h3>\uc2a4\ud06c\ub9bd\ud2b8\uc5d0\uc11c \ubc97\uc5b4\ub0a0 \ub54c\uc758 \uc8fc\uc694 \uc774\uc810:<\/h3>\n<ol>\n<li><strong>\uc790\ub3d9\ud654\ub41c \uac80\uc99d:<\/strong> \ucd5c\uc2e0 \ud50c\ub7ab\ud3fc\uc740 \ub2e8\uc21c\ud788 \ubc31\uc5c5\uc744 \uc218\ud589\ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \ud14c\uc2a4\ud2b8\ub3c4 \uc218\ud589\ud569\ub2c8\ub2e4. CloudSave\ub294 \uc784\uc2dc \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uc778\uc2a4\ud134\uc2a4\ub97c \uc790\ub3d9\uc73c\ub85c \uac00\ub3d9\ud558\uace0, \ubc31\uc5c5\uc744 \ubcf5\uad6c\ud558\uace0, \uc77c\uad00\uc131 \uac80\uc0ac(\uc608: <code>DBCC CHECKDB<\/code>)\ub97c \uc2e4\ud589\ud55c \ub2e4\uc74c \uc0ad\uc81c\ud558\uc5ec \ubc31\uc5c5\uc774 \uc2e4\uc81c\ub85c \uc0ac\uc6a9 \uac00\ub2a5\ud558\ub2e4\ub294 \uac80\uc99d\ub41c \ubcf4\uace0\uc11c\ub97c \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/li>\n<li><strong>\ubd88\ubcc0 \uc2a4\ud1a0\ub9ac\uc9c0(Immutable Storage):<\/strong> \ub79c\uc12c\uc6e8\uc5b4\uc5d0 \ub300\uc751\ud558\ub824\uba74 \ubc31\uc5c5\uc740 \ubd88\ubcc0\ud574\uc57c \ud569\ub2c8\ub2e4. DIY \uc2a4\ud06c\ub9bd\ud2b8\ub294 WORM(Write Once, Read Many) \uc2a4\ud1a0\ub9ac\uc9c0\uc5d0 \uc27d\uac8c \uc4f8 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. \uc5d4\ud130\ud504\ub77c\uc774\uc988 \uc194\ub8e8\uc158\uc740 S3 Object Lock \ubc0f \ubd88\ubcc0 \ud074\ub77c\uc6b0\ub4dc \uc2a4\ud1a0\ub9ac\uc9c0\uc640 \uae30\ubcf8\uc801\uc73c\ub85c \ud1b5\ud569\ub418\uc5b4 \uc11c\ubc84\uac00 \uc644\uc804\ud788 \uc190\uc0c1\ub418\ub354\ub77c\ub3c4 \uacf5\uaca9\uc790\uac00 \ubc31\uc5c5\uc744 \uc0ad\uc81c\ud558\uac70\ub098 \uc554\ud638\ud654\ud560 \uc218 \uc5c6\ub3c4\ub85d \ubcf4\uc7a5\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>\uac04\uc18c\ud654\ub41c PITR:<\/strong> \ubcf5\uc7a1\ud55c <code>recovery.conf<\/code> \ub610\ub294 <code>postgresql.auto.conf<\/code> \ub9e4\uac1c\ubcc0\uc218\ub97c \uc0ac\uc6a9\ud558\uc5ec \uae30\ubcf8 \ubc31\uc5c5\uacfc \uc218\ubc31 \uac1c\uc758 WAL \ud30c\uc77c\uc744 \uc218\ub3d9\uc73c\ub85c \uc5f0\uacb0\ud558\ub294 \ub300\uc2e0, \ud50c\ub7ab\ud3fc\uc740 \uc2dc\uac01\uc801 \ud0c0\uc784\ub77c\uc778\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4. \ubcf5\uad6c\ud558\ub824\ub294 \uc815\ud655\ud55c \ubd84\uc744 \uc120\ud0dd\ud558\uae30\ub9cc \ud558\uba74 \uc18c\ud504\ud2b8\uc6e8\uc5b4\uac00 \uc790\ub3d9\uc73c\ub85c \ub85c\uadf8 \uc7ac\uc0dd\uc744 \ucc98\ub9ac\ud569\ub2c8\ub2e4.<\/li>\n<li><strong>\uc911\ubcf5 \uc81c\uac70 \ubc0f \uc555\ucd95:<\/strong> DIY \uc2a4\ud06c\ub9bd\ud2b8\ub294 \uac01 \ud30c\uc77c\uc744 \uac1c\ubcc4\uc801\uc73c\ub85c \uc555\ucd95\ud558\ub294 <code>gzip<\/code>\uc5d0 \uc758\uc874\ud569\ub2c8\ub2e4. \uc5d4\ud130\ud504\ub77c\uc774\uc988 \ubc31\uc5c5 \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub294 \uae00\ub85c\ubc8c \ube14\ub85d \uc218\uc900 \uc911\ubcf5 \uc81c\uac70\ub97c \ud65c\uc6a9\ud558\uc5ec \uc624\ud504\uc0ac\uc774\ud2b8\ub85c \ubc31\uc5c5\uc744 \uc804\uc1a1\ud560 \ub54c \uc2a4\ud1a0\ub9ac\uc9c0 \ube44\uc6a9\uacfc \ub124\ud2b8\uc6cc\ud06c \ub300\uc5ed\ud3ed\uc744 \ud68d\uae30\uc801\uc73c\ub85c \uc904\uc785\ub2c8\ub2e4.<\/li>\n<\/ol>\n<h2>\uacb0\ub860<\/h2>\n<p>\ub370\uc774\ud130\ubca0\uc774\uc2a4\ub97c \ubc31\uc5c5\ud558\uae30 \uc704\ud574 \uc0ac\uc6a9\uc790 \uc9c0\uc815 Bash \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc791\uc131\ud558\ub294 \uac83\uc740 \uc27d\uc2b5\ub2c8\ub2e4. \uc870\uc6a9\ud55c \ud30c\uc774\ud504\ub77c\uc778 \uc2e4\ud328\ub97c \ucc98\ub9ac\ud558\uace0, ACID \uc77c\uad00\uc131\uc744 \ubcf4\uc7a5\ud558\uba70, \uc554\ud638\ud654 \ud0a4\ub97c \uc548\uc804\ud558\uac8c \uad00\ub9ac\ud558\uace0, \ubcf4\uc874 \uae30\ubc18 \ub370\uc774\ud130 \uc190\uc2e4\uc744 \ubc29\uc9c0\ud558\uba70, \uc5c4\uaca9\ud55c RTO\/RPO SLA\ub97c \ubcf4\uc7a5\ud558\ub294 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc791\uc131\ud558\ub294 \uac83\uc740 \uac70\uc758 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4.<\/p>\n<p>\ud504\ub85c\ub355\uc158 \ud658\uacbd\uc5d0\uc11c \ub370\uc774\ud130\ubca0\uc774\uc2a4\ub294 \ube44\uc988\ub2c8\uc2a4\uc758 \uac00\uc7a5 \uc911\uc694\ud55c \uc790\uc0b0\uc785\ub2c8\ub2e4. \uc218\ubc31 \uc904\uc758 \uc178 \uc2a4\ud06c\ub9bd\ud2b8\ub85c \uc720\uc9c0 \uad00\ub9ac\ub418\ub294 \uc0ac\uc774\ub4dc \ud504\ub85c\uc81d\ud2b8\ucc98\ub7fc \ubcf4\ud638\ub97c \ucde8\uae09\ud558\ub294 \uac83\uc740 \uc5b4\ub5a4 \uae30\uc5c5\ub3c4 \uac10\ub2f9\ud560 \uc218 \uc5c6\ub294 \uc704\ud5d8\uc785\ub2c8\ub2e4. \ud604\uc7ac\uc758 \ubc31\uc5c5 \uc804\ub7b5\uc744 \uac10\uc0ac\ud558\uace0, \ub17c\ub9ac\uc801 \ub364\ud504\uc758 \ud55c\uacc4\ub97c \uc774\ud574\ud558\uba70, CloudSave\uc640 \uac19\uc740 \uac15\ub825\ud55c \uc790\ub3d9\ud654 \ud50c\ub7ab\ud3fc\uc73c\ub85c \ub9c8\uc774\uadf8\ub808\uc774\uc158\ud568\uc73c\ub85c\uc368 DevOps \ubc0f DBA \ud300\uc740 \uc0ac\uc6a9\uc790 \uc9c0\uc815 \uc2a4\ud06c\ub9bd\ud2b8\uc758 &#8220;\ubc84\uc2a4 \uc694\uc778(bus factor)&#8221;\uc744 \uc81c\uac70\ud558\uace0 \ub370\uc774\ud130\uac00 \uc9c4\uc815\uc73c\ub85c \ubcf5\uc6d0\ub825\uc744 \uac16\ucd94\ub3c4\ub85d \ubcf4\uc7a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>** Discover the hidden dangers of DIY database backup scripts. Learn why custom Bash scripts fail in production, the risks of logical dumps, and how to secure your data with enterprise solutions.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Why DIY Database Backup Scripts Fail in Production","rank_math_description":"** Discover the hidden dangers of DIY database backup scripts. Learn why custom Bash scripts fail in production, the risks of logical dumps, and how to secure your data with enterprise solutions.","rank_math_focus_keyword":"DIY database backup scripts","footnotes":""},"categories":[519],"tags":[2640,1011,2641,2642,2643,2644,1015],"class_list":["post-3833","post","type-post","status-publish","format-standard","hentry","category-database-backup","tag-bash-scripts","tag-database-administration","tag-diy-backups","tag-mysqldump","tag-pg_dump","tag-production-backups","tag-rpo-and-rto"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.7 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Why DIY Database Backup Scripts Fail in Production<\/title>\n<meta name=\"description\" content=\"** Discover the hidden dangers of DIY database backup scripts. Learn why custom Bash scripts fail in production, the risks of logical dumps, and how to secure your data with enterprise solutions.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DIY \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc228\uaca8\uc9c4 \uc704\ud5d8\uc131: \ucee4\uc2a4\ud140 Bash\uac00 \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c \ud655\uc7a5\ub418\uc9c0 \uc54a\ub294 \uc774\uc720\" \/>\n<meta property=\"og:description\" content=\"** Discover the hidden dangers of DIY database backup scripts. Learn why custom Bash scripts fail in production, the risks of logical dumps, and how to secure your data with enterprise solutions.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/\" \/>\n<meta property=\"og:site_name\" content=\"CloudSave\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-12T08:08:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-12T08:32:05+00:00\" \/>\n<meta name=\"author\" content=\"shervinrv\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"shervinrv\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"2\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/knowledge-base\\\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/knowledge-base\\\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\\\/\"},\"author\":{\"name\":\"shervinrv\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"headline\":\"DIY \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc228\uaca8\uc9c4 \uc704\ud5d8\uc131: \ucee4\uc2a4\ud140 Bash\uac00 \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c \ud655\uc7a5\ub418\uc9c0 \uc54a\ub294 \uc774\uc720\",\"datePublished\":\"2026-06-12T08:08:32+00:00\",\"dateModified\":\"2026-06-12T08:32:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/knowledge-base\\\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\\\/\"},\"wordCount\":119,\"publisher\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"keywords\":[\"bash scripts\",\"Database Administration\",\"DIY backups\",\"mysqldump\",\"pg_dump\",\"production backups\",\"RPO and RTO\"],\"articleSection\":[\"Database Backup\"],\"inLanguage\":\"ko-KR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/knowledge-base\\\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\\\/\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/knowledge-base\\\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\\\/\",\"name\":\"Why DIY Database Backup Scripts Fail in Production\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/#website\"},\"datePublished\":\"2026-06-12T08:08:32+00:00\",\"dateModified\":\"2026-06-12T08:32:05+00:00\",\"description\":\"** Discover the hidden dangers of DIY database backup scripts. Learn why custom Bash scripts fail in production, the risks of logical dumps, and how to secure your data with enterprise solutions.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/knowledge-base\\\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\\\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/cloudsave.app\\\/ko\\\/knowledge-base\\\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/knowledge-base\\\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DIY \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc228\uaca8\uc9c4 \uc704\ud5d8\uc131: \ucee4\uc2a4\ud140 Bash\uac00 \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c \ud655\uc7a5\ub418\uc9c0 \uc54a\ub294 \uc774\uc720\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/#website\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/\",\"name\":\"CloudSave\",\"description\":\"CloudSave\",\"publisher\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/#\\\/schema\\\/person\\\/286beefe68281d868e87f46603a7ae4d\",\"name\":\"shervinrv\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/cloudsave.app\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo_Name-2.png\",\"url\":\"https:\\\/\\\/cloudsave.app\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo_Name-2.png\",\"contentUrl\":\"https:\\\/\\\/cloudsave.app\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo_Name-2.png\",\"width\":859,\"height\":150,\"caption\":\"shervinrv\"},\"logo\":{\"@id\":\"https:\\\/\\\/cloudsave.app\\\/wp-content\\\/uploads\\\/2026\\\/02\\\/Logo_Name-2.png\"},\"sameAs\":[\"http:\\\/\\\/cloudsave.app\"],\"url\":\"https:\\\/\\\/cloudsave.app\\\/ko\\\/knowledge-base\\\/author\\\/shervinrv\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Why DIY Database Backup Scripts Fail in Production","description":"** Discover the hidden dangers of DIY database backup scripts. Learn why custom Bash scripts fail in production, the risks of logical dumps, and how to secure your data with enterprise solutions.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/","og_locale":"ko_KR","og_type":"article","og_title":"DIY \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc228\uaca8\uc9c4 \uc704\ud5d8\uc131: \ucee4\uc2a4\ud140 Bash\uac00 \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c \ud655\uc7a5\ub418\uc9c0 \uc54a\ub294 \uc774\uc720","og_description":"** Discover the hidden dangers of DIY database backup scripts. Learn why custom Bash scripts fail in production, the risks of logical dumps, and how to secure your data with enterprise solutions.","og_url":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/","og_site_name":"CloudSave","article_published_time":"2026-06-12T08:08:32+00:00","article_modified_time":"2026-06-12T08:32:05+00:00","author":"shervinrv","twitter_card":"summary_large_image","twitter_misc":{"\uae00\uc4f4\uc774":"shervinrv","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"2\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/#article","isPartOf":{"@id":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/"},"author":{"name":"shervinrv","@id":"https:\/\/cloudsave.app\/ko\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"headline":"DIY \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc228\uaca8\uc9c4 \uc704\ud5d8\uc131: \ucee4\uc2a4\ud140 Bash\uac00 \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c \ud655\uc7a5\ub418\uc9c0 \uc54a\ub294 \uc774\uc720","datePublished":"2026-06-12T08:08:32+00:00","dateModified":"2026-06-12T08:32:05+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/"},"wordCount":119,"publisher":{"@id":"https:\/\/cloudsave.app\/ko\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"keywords":["bash scripts","Database Administration","DIY backups","mysqldump","pg_dump","production backups","RPO and RTO"],"articleSection":["Database Backup"],"inLanguage":"ko-KR"},{"@type":"WebPage","@id":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/","url":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/","name":"Why DIY Database Backup Scripts Fail in Production","isPartOf":{"@id":"https:\/\/cloudsave.app\/ko\/#website"},"datePublished":"2026-06-12T08:08:32+00:00","dateModified":"2026-06-12T08:32:05+00:00","description":"** Discover the hidden dangers of DIY database backup scripts. Learn why custom Bash scripts fail in production, the risks of logical dumps, and how to secure your data with enterprise solutions.","breadcrumb":{"@id":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cloudsave.app\/ko\/knowledge-base\/diy-%eb%8d%b0%ec%9d%b4%ed%84%b0%eb%b2%a0%ec%9d%b4%ec%8a%a4-%eb%b0%b1%ec%97%85-%ec%8a%a4%ed%81%ac%eb%a6%bd%ed%8a%b8%ec%9d%98-%ec%88%a8%ea%b2%a8%ec%a7%84-%ec%9c%84%ed%97%98%ec%84%b1-%ec%bb%a4%ec%8a%a4\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudsave.app\/ko\/"},{"@type":"ListItem","position":2,"name":"DIY \ub370\uc774\ud130\ubca0\uc774\uc2a4 \ubc31\uc5c5 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uc228\uaca8\uc9c4 \uc704\ud5d8\uc131: \ucee4\uc2a4\ud140 Bash\uac00 \uc6b4\uc601 \ud658\uacbd\uc5d0\uc11c \ud655\uc7a5\ub418\uc9c0 \uc54a\ub294 \uc774\uc720"}]},{"@type":"WebSite","@id":"https:\/\/cloudsave.app\/ko\/#website","url":"https:\/\/cloudsave.app\/ko\/","name":"CloudSave","description":"CloudSave","publisher":{"@id":"https:\/\/cloudsave.app\/ko\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudsave.app\/ko\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":["Person","Organization"],"@id":"https:\/\/cloudsave.app\/ko\/#\/schema\/person\/286beefe68281d868e87f46603a7ae4d","name":"shervinrv","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/cloudsave.app\/wp-content\/uploads\/2026\/02\/Logo_Name-2.png","url":"https:\/\/cloudsave.app\/wp-content\/uploads\/2026\/02\/Logo_Name-2.png","contentUrl":"https:\/\/cloudsave.app\/wp-content\/uploads\/2026\/02\/Logo_Name-2.png","width":859,"height":150,"caption":"shervinrv"},"logo":{"@id":"https:\/\/cloudsave.app\/wp-content\/uploads\/2026\/02\/Logo_Name-2.png"},"sameAs":["http:\/\/cloudsave.app"],"url":"https:\/\/cloudsave.app\/ko\/knowledge-base\/author\/shervinrv\/"}]}},"_links":{"self":[{"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/posts\/3833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/comments?post=3833"}],"version-history":[{"count":3,"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/posts\/3833\/revisions"}],"predecessor-version":[{"id":4028,"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/posts\/3833\/revisions\/4028"}],"wp:attachment":[{"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/media?parent=3833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/categories?post=3833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudsave.app\/ko\/wp-json\/wp\/v2\/tags?post=3833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}