์ด ๋ ธํธ์์๋ ๋ฐฑ์ ์๋ฒ์ ์์นด์ด๋ธ๋ฅผ ์์ฑํ์ฌ ๋ฐฑ์ ์ ์ํํ๋ ๋ฐฑ์ ๋๊ตฌ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๊ฒ ์ค์๋ ์ด์ค์ฑ(deja dup ํํ์ ๋ฉ์ง ์ธํฐํ์ด์ค๊ฐ ์์)๊ณผ ์ด์ค์ฑ์ด ์์ต๋๋ค.
๋งค์ฐ ์ฃผ๋ชฉํ ๋งํ ๋ ๋ค๋ฅธ ๋ฐฑ์ ๋๊ตฌ๋ dar์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด ๋๊ตฌ์๋ ๋งค์ฐ ๊ด๋ฒ์ํ ์ต์ ๋ชฉ๋ก์ด ์์ผ๋ฏ๋ก(ํ ์คํธ ๋ฐฉ๋ฒ๋ก ์ ํด๋น ๊ธฐ๋ฅ์ ๊ฑฐ์ 10%๋ง ๋ค๋ฃจ๋ฏ๋ก) ํ์ฌ ์ฃผ๊ธฐ์ ์ผ๋ถ๋ก ํ ์คํธํ์ง ์์ต๋๋ค.
์์ ๊ฒฐ๊ณผ
๋ ํ๋ณด ๋ชจ๋ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ์์นด์ด๋ธ๋ฅผ ์์ฑํ๋ฏ๋ก ์ผ๋ฐ tar๋ฅผ ๊ฐ์ด๋๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ํ ์ ์ฒด ๋ณต์ฌ๋ณธ๊ณผ ํ์ผ์ ํ์ฌ ์ํ ๋๋ ์ด์ ์์นด์ด๋ธ์ ํ์ฌ ์์นด์ด๋ธ(์ฆ๋ถ, ๊ฐ์ ๋ฑ) ๊ฐ์ ์ฐจ์ด๋ง ํฌํจํ๋ ๋ฐฑ์ ๋ณต์ฌ๋ณธ์ ์์ฑํ์ฌ ์คํ ๋ฆฌ์ง ์๋ฒ์ ๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง๊ฐ ์ผ๋ง๋ ์ ์ต์ ํ๋๋์ง ํ๊ฐํฉ๋๋ค. .
๋ฐฑ์ ์์ฑ ์ ๋์:
- ๋ฐฑ์ ์ ์ฅ์ ์๋ฒ์ ์๋ ํ์ผ ์๋ ์๋์ ์ผ๋ก ์ ์ง๋ง(๋ฐฑ์ ๋ณต์ฌ๋ณธ ์ ๋๋ ๋ฐ์ดํฐ ํฌ๊ธฐ(GB)์ ๋น์ทํจ) ํฌ๊ธฐ๊ฐ ์๋นํ ํฝ๋๋ค(์์ญ~์๋ฐฑ ๋ฉ๊ฐ๋ฐ์ดํธ).
- ์ ์ฅ์ ํฌ๊ธฐ์๋ ๋ณ๊ฒฝ ์ฌํญ๋ง ํฌํจ๋ฉ๋๋ค. ์ค๋ณต ํญ๋ชฉ์ ์ ์ฅ๋์ง ์์ผ๋ฏ๋ก ์ ์ฅ์ ํฌ๊ธฐ๋ rsync ๊ธฐ๋ฐ ์ํํธ์จ์ด๋ณด๋ค ์์ต๋๋ค.
- ์์ถ ๋ฐ/๋๋ ์ํธํ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ CPU ๋ถํ๊ฐ ๋์ ์ ์์ผ๋ฉฐ, ๋ณด๊ด ๋ฐ/๋๋ ์ํธํ ํ๋ก์ธ์ค๊ฐ ๋ฐฑ์ ์คํ ๋ฆฌ์ง ์๋ฒ์์ ์คํ ์ค์ธ ๊ฒฝ์ฐ ๋คํธ์ํฌ ๋ฐ ๋์คํฌ ๋ถํ๊ฐ ์๋นํ ๋์์ง ์ ์์ต๋๋ค.
์ฐธ์กฐ ๊ฐ์ผ๋ก ๋ค์ ๋ช ๋ น์ ์คํํด ๋ณด๊ฒ ์ต๋๋ค.
cd /src/dir; tar -cf - * | ssh backup_server "cat > /backup/dir/archive.tar"
์คํ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค.
์คํ ์๊ฐ์ 3๋ถ 12์ด์
๋๋ค. ๋ค์ ์์์์ ๊ฐ์ด ๋ฐฑ์
์คํ ๋ฆฌ์ง ์๋ฒ์ ๋์คํฌ ํ์ ์์คํ
์ ์ํด ์๋๊ฐ ์ ํ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
๋ํ ์์ถ์ ํ๊ฐํ๊ธฐ ์ํด ๋์ผํ ์ต์ ์ ์คํํ๋ ๋ฐฑ์ ์๋ฒ ์ธก์์ ์์ถ์ ํ์ฑํํด ๋ณด๊ฒ ์ต๋๋ค.
cd /src/dir; tar -cf - * | ssh backup_server "gzip > /backup/dir/archive.tgz"
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์คํ ์๊ฐ 10๋ถ 11์ด. ๋ณ๋ชฉ ํ์์ ์์ ์ธก์ ๋จ์ผ ํ๋ฆ ์์ถ๊ธฐ์ผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
๋์ผํ ๋ช ๋ น์ด์ง๋ง ๋ณ๋ชฉ ํ์์ด ๋จ์ผ ์ค๋ ๋ ์์ถ๊ธฐ๋ผ๋ ๊ฐ์ค์ ํ ์คํธํ๊ธฐ ์ํด ์๋ ๋ฐ์ดํฐ์ ํจ๊ป ์์ถ์ด ์๋ฒ๋ก ์ ์ก๋์์ต๋๋ค.
cd /src/dir; tar -czf - * | ssh backup_server "cat > /backup/dir/archive.tgz"
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์คํ ์๊ฐ์ 9๋ถ 37์ด์์ต๋๋ค. ์์ถ๊ธฐ์ ์ํด ํ๋์ ์ฝ์ด์ ๊ฐํด์ง๋ ๋ถํ๊ฐ ๋ช ํํ๊ฒ ํ์๋ฉ๋๋ค. ๋คํธ์ํฌ ์ ์ก ์๋์ ์๋ณธ ๋์คํฌ ํ์ ์์คํ ์ ๋ก๋๋ ๋น์ทํฉ๋๋ค.
์ํธํ๋ฅผ ํ๊ฐํ๋ ค๋ฉด ์ถ๊ฐ ๋ช
๋ น์ ์ฐ๊ฒฐํ์ฌ openssl ๋๋ gpg๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. openssl
๋๋ gpg
ํ์ดํ์. ์ฐธ๊ณ ๋ก ๋ค์๊ณผ ๊ฐ์ ๋ช
๋ น์ด ์์ต๋๋ค.
cd /src/dir; tar -cf - * | ssh backup_server "gzip | openssl enc -e -aes256 -pass pass:somepassword -out /backup/dir/archive.tgz.enc"
๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ด ๋์์ต๋๋ค.
์์ ์ธก์์ 10๊ฐ์ ํ๋ก์ธ์ค๊ฐ ์คํ ์ค์ด์๊ธฐ ๋๋ฌธ์ ์คํ ์๊ฐ์ 30๋ถ 2์ด๋ก ๋ํ๋ฌ์ต๋๋ค. ๋ณ๋ชฉ ํ์์ ๋ค์ ๋จ์ผ ์ค๋ ๋ ์์ถ๊ธฐ์ ์์ ์ํธํ ์ค๋ฒํค๋๋ก ์ธํด ๋ฐ์ํฉ๋๋ค.
UPD : bliznezz์ ์์ฒญ์ ๋ฐ๋ผ pigz์ ํ ์คํธ๋ฅผ ์ถ๊ฐํ๊ณ ์์ต๋๋ค. ์์ถ๊ธฐ๋ง ์ฌ์ฉํ๋ฉด 6๋ถ 30์ด ์ ๋ ๊ฑธ๋ฆฌ๊ณ , ์ํธํ๋ ์ถ๊ฐํ๋ฉด 7๋ถ ์ ๋ ๊ฑธ๋ฆฝ๋๋ค. ์๋์ชฝ ๊ทธ๋ํ์ ํ๋ฝ์ ํ๋ฌ์๋์ง ์์ ๋์คํฌ ์บ์์ ๋๋ค.
์ค๋ณต ํ ์คํธ
Duplicity๋ tar ํ์์ ์ํธํ๋ ์์นด์ด๋ธ๋ฅผ ์์ฑํ์ฌ ๋ฐฑ์ ํ๋ Python ์ํํธ์จ์ด์ ๋๋ค.
์ฆ๋ถ ์์นด์ด๋ธ์ ๊ฒฝ์ฐ librsync๊ฐ ์ฌ์ฉ๋๋ฏ๋ก ๋ค์์ ์ค๋ช
๋ ๋์์ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
๋ฐฑ์ ์ gnupg๋ฅผ ์ฌ์ฉํ์ฌ ์ํธํํ๊ณ ์๋ช ํ ์ ์์ต๋๋ค. ์ด๋ ๋ฐฑ์ ์ ์ฅ์ ์ํด ๋ค๋ฅธ ๊ณต๊ธ์(s3, backblaze, gdrive ๋ฑ)๋ฅผ ์ฌ์ฉํ ๋ ์ค์ํฉ๋๋ค.
๊ฒฐ๊ณผ๊ฐ ๋ฌด์์ธ์ง ๋ด ์๋ค:
์ํธํ ์์ด ์คํํ ๋ ์ป์ ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์คํฌ์ผ๋ฌ
๊ฐ ํ ์คํธ ์คํ ์๊ฐ:
๋ฐ์ฌ 1
๋ฐ์ฌ 2
๋ฐ์ฌ 3
16m33s
17m20s
16m30s
8m29s
9m3s
8m45s
5m21s
6m04s
5m53s
๋ค์์ ํค ํฌ๊ธฐ๊ฐ 2048๋นํธ์ธ gnupg ์ํธํ๋ฅผ ํ์ฑํํ ๊ฒฝ์ฐ์ ๊ฒฐ๊ณผ์ ๋๋ค.
์ํธํ๋ฅผ ์ฌ์ฉํ ๋์ผํ ๋ฐ์ดํฐ์ ์๋ ์๊ฐ:
๋ฐ์ฌ 1
๋ฐ์ฌ 2
๋ฐ์ฌ 3
17m22s
17m32s
17m28s
8m52s
9m13s
9m3s
5m48s
5m40s
5m30s
๋ธ๋ก ํฌ๊ธฐ๋ 512MB๋ก ๊ทธ๋ํ์์ ๋ช ํํ๊ฒ ํ์๋ฉ๋๋ค. ํ๋ก์ธ์ ๋ก๋๋ ์ค์ ๋ก 50%๋ก ์ ์ง๋์์ต๋๋ค. ์ด๋ ํ๋ก๊ทธ๋จ์ด ํ๋์ ํ๋ก์ธ์ ์ฝ์ด๋ง ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
ํ๋ก๊ทธ๋จ ์๋ ์๋ฆฌ๋ ๋งค์ฐ ๋ช
ํํ๊ฒ ๋ณด์
๋๋ค. ๋ฐ์ดํฐ ์กฐ๊ฐ์ ๊ฐ์ ธ์ ์์ถํ ๋ค์ ๋ฐฑ์
์คํ ๋ฆฌ์ง ์๋ฒ๋ก ๋ณด๋๋๋ฐ ์๋๊ฐ ์๋นํ ๋๋ฆด ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ํน์ง์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ์๋ง ์์กดํ๋ ์์ธก ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ ์คํ ์๊ฐ์
๋๋ค.
์ํธํ๋ฅผ ํ์ฑํํด๋ ํ๋ก๊ทธ๋จ ์คํ ์๊ฐ์ด ํฌ๊ฒ ๋์ด๋์ง๋ ์์์ง๋ง ํ๋ก์ธ์ ๋ก๋๊ฐ ์ฝ 10% ์ฆ๊ฐํ๋๋ฐ ์ด๋ ๊ฝค ์ข์ ๋ณด๋์ค๊ฐ ๋ ์ ์์ต๋๋ค.
๋ถํํ๊ฒ๋ ์ด ํ๋ก๊ทธ๋จ์ ๋๋ ํ ๋ฆฌ ์ด๋ฆ ๋ณ๊ฒฝ์ผ๋ก ์ธํ ์ํฉ์ ์ ํํ๊ฒ ๊ฐ์งํ์ง ๋ชปํ๊ณ ๊ฒฐ๊ณผ ์ ์ฅ์ ํฌ๊ธฐ๋ ๋ณ๊ฒฝ๋ ํฌ๊ธฐ(์ฆ, ๋ชจ๋ 18GB)์ ๋์ผํ ๊ฒ์ผ๋ก ๋ฐํ์ก์ง๋ง ์ ๋ขฐํ ์ ์๋ ์๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฑ์ ํ๋ ๊ธฐ๋ฅ์ด ๋ช ํํ๊ฒ ๋ํ๋ฉ๋๋ค. ์ด ๋์์ ๋ค๋ฃน๋๋ค.
์ค๋ณต ํ ์คํธ
์ด ์ํํธ์จ์ด๋ C#์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ Mono์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ธํธ๋ฅผ ์ฌ์ฉํ์ฌ ์คํ๋ฉ๋๋ค. GUI ๋ฒ์ ๊ณผ CLI ๋ฒ์ ์ด ์์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ์ ๋๋ต์ ์ธ ๋ชฉ๋ก์ ๋ค์ํ ๋ฐฑ์ ์ ์ฅ์ ๊ณต๊ธ์๋ฅผ ํฌํจํ์ฌ ์ด์ค์ฑ๊ณผ ์ ์ฌํ์ง๋ง ์ด์ค์ฑ๊ณผ ๋ฌ๋ฆฌ ๋๋ถ๋ถ์ ๊ธฐ๋ฅ์ ํ์ฌ ๋๊ตฌ ์์ด ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ฒ์ด ํ๋ฌ์ค์ธ์ง ๋ง์ด๋์ค์ธ์ง๋ ๊ตฌ์ฒด์ ์ธ ์ฌ๋ก์ ๋ฐ๋ผ ๋ค๋ฅด์ง๋ง ์ด๋ณด์์ ๊ฒฝ์ฐ Python์ฉ ํจํค์ง๋ฅผ ์ถ๊ฐ๋ก ์ค์นํ๋ ๊ฒ๋ณด๋ค ํ ๋ฒ์ ๋ชจ๋ ๊ธฐ๋ฅ ๋ชฉ๋ก์ ์์ ๋๋ ๊ฒ์ด ๋ ์ฌ์ธ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. ์ด์ค์ฑ์ด ์๋ ์ฌ๊ฑด.
๋ ๋ค๋ฅธ ์์ ๋์์ค - ํ๋ก๊ทธ๋จ์ ๋ฐฑ์ ์ ์์ํ๋ ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ ๋ก์ปฌ sqlite ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ๊ทน์ ์ผ๋ก ์์ฑํ๋ฏ๋ก cli๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค๊ฐ ์์๋ ๋๋ง๋ค ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ง์ ๋์๋์ง ์ถ๊ฐ๋ก ํ์ธํด์ผ ํฉ๋๋ค. GUI ๋๋ WEBGUI๋ฅผ ํตํด ์์ ํ ๋ ์ธ๋ถ ์ ๋ณด๊ฐ ์ฌ์ฉ์์๊ฒ ์จ๊ฒจ์ง๋๋ค.
์ด ์๋ฃจ์ ์ด ์ด๋ค ์งํ๋ฅผ ์์ฑํ ์ ์๋์ง ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ํธํ๋ฅผ ๋๋ฉด(WEBGUI์์๋ ์ด๋ฅผ ๊ถ์ฅํ์ง ์์) ๊ฒฐ๊ณผ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ ์๊ฐ :
๋ฐ์ฌ 1
๋ฐ์ฌ 2
๋ฐ์ฌ 3
20m43s
20m13s
20m28s
5m21s
5m40s
5m35s
7m36s
7m54s
7m49s
์ํธํ๊ฐ ํ์ฑํ๋ ์ํ์์ aes๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ ์๊ฐ :
๋ฐ์ฌ 1
๋ฐ์ฌ 2
๋ฐ์ฌ 3
29m9s
30m1s
29m54s
5m29s
6m2s
5m54s
8m44s
9m12s
9m1s
๊ทธ๋ฆฌ๊ณ ์ธ๋ถ ํ๋ก๊ทธ๋จ gnupg๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์จ๋ค.
๋ฐ์ฌ 1
๋ฐ์ฌ 2
๋ฐ์ฌ 3
26m6s
26m35s
26m17s
5m20s
5m48s
5m40s
8m12s
8m42s
8m15s
๋ณด์๋ค์ํผ ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ์ค๋ ๋์์ ์๋ํ ์ ์์ง๋ง ์ด๋ก ์ธํด ๋ ์์ฐ์ ์ธ ์๋ฃจ์
์ด ๋์ง๋ ์์ผ๋ฉฐ ์ํธํ ์์
์ ๋น๊ตํ๋ฉด ์ธ๋ถ ํ๋ก๊ทธ๋จ์ ์์ํฉ๋๋ค.
Mono ์ธํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ ๋น ๋ฅธ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค. ์ด๋ ์ธ๋ถ ํ๋ก๊ทธ๋จ์ด ๋ ์ต์ ํ๋์๊ธฐ ๋๋ฌธ์ผ ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์ข์ ์ ์ ์ ์ฅ์์ ํฌ๊ธฐ๊ฐ ์ค์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ์ ์ ํํ ์ผ์นํ๋ค๋ ์ฌ์ค์ ๋๋ค. duplicati๋ ๋๋ ํฐ๋ฆฌ ์ด๋ฆ ๋ณ๊ฒฝ์ ๊ฐ์งํ๊ณ ์ด ์ํฉ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ์ต๋๋ค. ์ด๋ ๋ ๋ฒ์งธ ํ ์คํธ๋ฅผ ์คํํ ๋ ๋ณผ ์ ์์ต๋๋ค.
์ ๋ฐ์ ์ผ๋ก, ์ด๋ณด์์๊ฒ ์๋นํ ์น๊ทผํ๋ค๋ ์ ์ ํฌํจํ์ฌ ํ๋ก๊ทธ๋จ์ ๋ํ ์๋นํ ๊ธ์ ์ ์ธ ์ธ์์ ๋ฐ์์ต๋๋ค.
์กฐ์ฌ ๊ฒฐ๊ณผ
๋ ํ๋ณด ๋ชจ๋ ๋ค์ ๋๋ฆฌ๊ฒ ์์
ํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์ผ๋ฐ tar์ ๋นํด ์ ์ด๋ duplicati์์๋ ์ง์ ์ด ์์ต๋๋ค. ๊ทธ๋ฌํ ๋ฐ์ ์ ๋๊ฐ๋ ๋ถ๋ช
ํฉ๋๋ค. ๋์ ๋๋ ๋ถ๋ด์
๋๋ค.
ํ๋ก์ธ์. ์ผ๋ฐ์ ์ผ๋ก ๊ฒฐ๊ณผ ์์ธก์๋ ํน๋ณํ ํธ์ฐจ๊ฐ ์์ต๋๋ค.
์กฐ์ฌ ๊ฒฐ๊ณผ
์ด๋๋ ์๋๋ฅผ ํ์๊ฐ ์๊ณ ์ฌ๋ถ์ ํ๋ก์ธ์๋ ์๋ค๋ฉด ๊ณ ๋ ค๋ ์๋ฃจ์ ์ค ์ด๋ ๊ฒ์ด๋ ๊ฐ๋ฅํฉ๋๋ค. ์ด์จ๋ tar ์์ ๋ํผ ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ์ฌ ๋ฐ๋ณตํด์๋ ์ ๋๋ ๊ฝค ๋ง์ ์์ ์ด ์ํ๋์์ต๋๋ค. . ๋ฐฑ์ ๋ณต์ฌ๋ณธ์ ์ ์ฅํ๋ ์๋ฒ๋ฅผ ์์ ํ ์ ๋ขฐํ ์ ์๋ ๊ฒฝ์ฐ ์ํธํ ๊ธฐ๋ฅ์ ๋งค์ฐ ํ์ํ ์์ฑ์ ๋๋ค.
์๋ฃจ์
๊ธฐ๋ฐ์ ๋นํด
์ ์ฅ์ ํฌ๊ธฐ๊ฐ ์ ์ฝ๋์ง๋ง ์ค๋ณต๋ ๊ฒฝ์ฐ์๋ง ๊ฐ๋ฅํฉ๋๋ค.
๋ฐํ
๋ฐฑ์
ํํธ 3: ์ด์ค์ฑ, duplicati, deja dup ๊ฒํ ๋ฐ ํ
์คํธ
๋ฐฑ์
ํํธ 4: zbackup, restic, borgbackup ๊ฒํ ๋ฐ ํ
์คํธ
๋ฐฑ์
ํํธ 5: Linux์ฉ bacula ๋ฐ veeam ๋ฐฑ์
ํ
์คํธ
๋ฐฑ์
ํํธ 6: ๋ฐฑ์
๋๊ตฌ ๋น๊ต
๋ฐฑ์
ํํธ 7: ๊ฒฐ๋ก
๊ฒ์์: ํ๋ฒจ ๋์ฝ๋น์น
์ถ์ฒ : habr.com