Docker๋ ๊ฐ๋ณ๊ณ ํด๋ ๊ฐ๋ฅํ ์ปจํ ์ด๋ ๋ด์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ, ๊ตฌ์ถ, ๋ฐฐํฌ ๋ฐ ์คํํ๋ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์คํ ์์ค ํ๋ซํผ์ ๋๋ค. ์ด๋ฌํ ์ปจํ ์ด๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํด๋น ์ข ์์ฑ์ ํจ๊ป ๋ฒ๋ค๋ก ๋ฌถ์ด ๊ฐ๋ฐ, ํ ์คํธ, ํ๋ก๋์ ๋ฑ ๋ค์ํ ํ๊ฒฝ์์ ์ผ๊ด๋ ์คํ์ ์ ๊ณตํ ์ ์์ต๋๋ค. Docker๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋์ ๊ฒฉ๋ฆฌํจ์ผ๋ก์จ ๋จ์ผ ์์คํ ์์ ์ฌ๋ฌ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํํ๊ฒ ์คํํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ๋ ๋น ๋ฅธ ๋ฐฐํฌ, ๋ ๋์ ์ฑ๋ฅ ๋ฐ ํ์ฅ์ฑ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
์น ์ฌ์ดํธ ๊ฐ๋ฐ์ ๋งฅ๋ฝ์์ Docker๋ ๊ฐ๋ฐ์์ ์์คํ ๊ด๋ฆฌ์ ๊ฐ์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ๋ ๋ฐ ํนํ ์ํฅ์ ๋ฏธ์ณ DevOps ๋ฐฉ์์ ์ฑํ์ ์ด์งํ์ต๋๋ค. ํ์คํ๋ ์ํ๊ณ์ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ๋๊ตฌ๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ฝ๋๋ฒ ์ด์ค์ ํ์ฅ์ฑ, ๋ชจ๋์ฑ ๋ฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ์ ์ ์งํ๋ฉด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ๊ฒ ์์ฑ, ํ ์คํธ ๋ฐ ๋ฐ๋ณตํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด ์์คํ ๊ด๋ฆฌ์๋ ์ํํธ์จ์ด ์คํ๊ณผ ์ธํ๋ผ์ ๊ธฐ๋ณธ ๋ณต์ก์ฑ์ ๋ํด ๊ฑฑ์ ํ ํ์ ์์ด ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Docker ์ํคํ ์ฒ์ ํต์ฌ์๋ Dockerfile๊ณผ ์ด๋ฏธ์ง๊ฐ ์์ต๋๋ค. Dockerfile์ ์ข ์์ฑ ๋ฐ ๋ฐํ์ ํ๊ฒฝ๊ณผ ํจ๊ป ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๋ ์ท์ธ Docker ์ด๋ฏธ์ง๋ฅผ ๋น๋ํ๊ธฐ ์ํ ์ผ๋ จ์ ์ง์นจ์ด ํฌํจ๋ ์คํฌ๋ฆฝํธ์ ๋๋ค. Docker Hub๋ผ๋ ๋ก์ปฌ ๋๋ ์๊ฒฉ ๋ ์ง์คํธ๋ฆฌ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, ํ๋ ์์ํฌ ๋ฐ ์๋น์ค์ ๋ํด ์ฌ์ ๊ตฌ์ถ๋ ์ด๋ฏธ์ง๋ฅผ ์ฝ๊ฒ ๊ณต์ ํ๊ณ ๊ฒ์ํ ์ ์์ผ๋ฏ๋ก ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ๊ณ ํ ํ๊ฒฝ์์ ๋ค๋ฅธ ํ๊ฒฝ์ผ๋ก ์ด๋ํ ๋ ๋ถ์ผ์น ๋ฐ ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ ์ค์ผ ์ ์์ต๋๋ค. ๋ ๋ค๋ฅธ.
์น ์ฌ์ดํธ ๊ฐ๋ฐ์์ Docker๋ฅผ ์ฌ์ฉํ๋ ๊ฐ์ฅ ์ค์ํ ์ด์ ์ค ํ๋๋ CI(์ง์์ ํตํฉ) ๋ฐ CD(์ง์์ ๋ฐฐํฌ) ํ์ดํ๋ผ์ธ๊ณผ์ ํธํ์ฑ์ ๋๋ค. ์ํํ ํ ์คํธ์ ๋ฐฐํฌ ์๋ํ๋ฅผ ํตํฉํจ์ผ๋ก์จ Docker๋ ์๋ ๊ฐ์ ์ ์ ๊ฑฐํ๊ณ ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ ๋์ ์ค๋ฅ ์ํ์ ์ค์ ๋๋ค. ์ด๋ฌํ ํตํฉ์ ํตํด ๊ฐ๋ฐ์๋ ๊ฐ๋ ์ค์ง ์๊ฐ์ ์ต์ํํ๊ณ ์์ฐ์ฑ์ ํฅ์์ํค๋ฉด์ ๋ชจ๋ ๋์ ํ๋ซํผ๊ณผ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ๋ฐ๋ฅด๊ณ ์์ ํ๊ฒ ์คํ๋๋๋ก ํ ์ ์์ต๋๋ค.
AppMasterno-code ํ๋ซํผ์ ๊ฒฝ์ฐ Docker๋ ์์ฑ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ปจํ ์ด๋๋ก ํจํค์งํ๋ ๋ฐ ํ์ฉ๋์ด ํ๋ซํผ์ ์ ์ฌ๋ ฅ์ ์ต๋ํ ํ์ฉํฉ๋๋ค. '๊ฒ์' ๋ฒํผ์ ๋๋ฅผ ๋๋ง๋ค ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ปจํ ์ด๋์ ์๋์ผ๋ก ํจํค์งํจ์ผ๋ก์จ AppMaster ๋ชจ๋ ํด๋ผ์ฐ๋ ๋๋ ์จํ๋ ๋ฏธ์ค ์ธํ๋ผ ๋ด์์ ์ ์ํ๊ฒ ๋ฐฐํฌ ๋ฐ ๊ด๋ฆฌํ ์ ์๋ ์๋ฒฝํ๊ฒ ์๋ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์คํ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ณ ๊ฐ์ ์ํ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ํ๋์ด ์ถ์ ๊ธฐ๊ฐ์ด ๋จ์ถ๋๊ณ ๋น์ฉ์ด ์ ๊ฐ๋ฉ๋๋ค.
๋ํ Docker๋ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ํนํ ๊ธฐ๋ณธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉ๋๋ Postgresql ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ํํ ์ง์์ ์ ๊ณตํ๋ ค๋ AppMaster ์ ๋ ธ๋ ฅ์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. Go(golang)๋ก ๊ตฌ์ถ๋ ์ปจํ ์ด๋ํ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ์ด ๋ฐ์ด๋ ํ์ฅ์ฑ์ ๋ณด์ฌ์ฃผ์ด ๊ณ ๋ถํ ์ฌ์ฉ ์ฌ๋ก์ ์ํฐํ๋ผ์ด์ฆ๊ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ ์ ํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํฉ๋๋ค.
ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์ ์ค์์ฑ์ด ์ปค์ง๊ณ ์์์ ๊ณ ๋ คํ ๋, ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ๊ตฌ์ฑ ์์๋ก ๋๋๋ Docker์ ๋ฅ๋ ฅ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ํตํด ์น ์ฌ์ดํธ ๊ฐ๋ฐ์๋ ๋ ๋ฆฝ์ ์ผ๋ก ์ฝ๊ฒ ์ ์ง ๊ด๋ฆฌ, ํ์ฅ ๋ฐ ์ ๋ฐ์ดํธํ ์ ์๋ ๋ชจ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณ, ๊ตฌ์ถ ๋ฐ ๋ฐฐํฌํ ์ ์์ผ๋ฉฐ ์ค๋๋ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋ ๊ธฐ์ ํ๊ฒฝ์์ ํฅ์๋ ๋ฏผ์ฒฉ์ฑ๊ณผ ์๋ต์ฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ํ Docker๋ Kubernetes ๋๋ Docker Swarm๊ณผ ๊ฐ์ ์ฃผ์ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ์ ์ฝ๊ฒ ํตํฉ๋๋ฏ๋ก ํ๋ก๋์ ํ๊ฒฝ์์ ๋ณด๋ค ์ํํ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ, ๊ด๋ฆฌ ๋ฐ ํ์ฅ์ด ๊ฐ๋ฅํฉ๋๋ค.
์์ฝํ์๋ฉด, Docker๋ ๊ฐ๋ฐ, ํ ์คํธ ๋ฐ ์์ฐ ๋จ๊ณ๋ฅผ ํฌ๊ดํ๋ ์น์ฌ์ดํธ ๊ฐ๋ฐ ์์ญ์์ ํ์์ ์ธ ๋๊ตฌ์ ๋๋ค. ์ปจํ ์ด๋ํ ๊ธฐ์ ์ ๋ค์ํ ํ๊ฒฝ์์ ์ผ๊ด์ฑ, ์์ ์ฑ ๋ฐ ํจ์จ์ฑ์ ๋ณด์ฅํ๋ ๋์์ DevOps ๋ฐฉ์, ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ ๋ฐ CI/CD ํ์ดํ๋ผ์ธ์ ๋ ์ฝ๊ฒ ์ฑํํ ์ ์๋๋ก ํด์ค๋๋ค. AppMasterno-code ํ๋ซํผ๊ณผ ํจ๊ป ํ์ฉํ๋ฉด Docker๋ ๋ชจ๋ ๊ท๋ชจ์ ๋น์ฆ๋์ค ์๊ตฌ ์ฌํญ์ ๋ง๋ ๊ฐ์ํ๋๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์์ ์ ์ธ ์๋ฃจ์ ์ ์ ๊ณตํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฒฝํ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.