๐ ๏ธ[๊ฐ๋ฐ ๋๊ตฌ ๋ฐ ํ๊ฒฝ] Docker์ ์ฃผ์ ๋ชฉ์ .
โญ๏ธ Docker์ ์ฃผ์ ๋ชฉ์ ์ โ์ด๋์๋ ๋์ผํ๊ฒ ์คํ๋๋, ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ณ ์ด์์ฑ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ์ ๋ง๋๋ ๊ฒโ ์ ๋๋ค.
์ดํดํ๊ธฐ ์ฌ์ด ๋น์ ๋ฅผ ํตํด ์ค๋ช ํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
๐ง โ๋ด ์ปดํจํฐ์์๋ ์๋๋๋ฐโฆโ ๋ฌธ์ ์ ํด๊ฒฐ์ฌ.
๊ฐ๋ฐ์๋ค์ด ๊ฐ์ฅ ํํ๊ฒ ๊ฒช๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๊ฐ๋ฐ์ A๊ฐ ์์ ์ ๋
ธํธ๋ถ์์ ์ด์ฌํ ์ฝ๋๋ฅผ ์ง์ ๊ธฐ๋ฅ์ ์์ฑํ์ต๋๋ค.
ํ์ง๋ง ๊ทธ ์ฝ๋๋ฅผ ๋๋ฃ ๊ฐ๋ฐ์ B์ ๋
ธํธ๋ถ์ด๋, ํ
์คํธ ์๋ฒ, ์ค์ ์ด์ ์๋ฒ๋ก ์ฎ๊ธฐ๋ฉด ์จ๊ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
* "์ด? ์ ๋ ํ์ด์ฌ 3.8 ๋ฒ์ ์ธ๋ฐ, ๊ฑฐ๊ธฐ๋ 3.9 ๋ฒ์ ์ด๋ค์."
* "ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ค์น๋์ง ์์์ด์."
* "์ด์์ฒด์ ๊ฐ ๋ฌ๋ผ์ ๊ฒฝ๋ก ์ค์ ์ด ๊ผฌ์์ด์."
์ด๊ฒ์ด ๋ฐ๋ก โ๋ด ์ปดํจํฐ์์๋ ์ ๋๋๋ฐโฆ(It works on my machineโฆ)โ ๋ฌธ์ ์ ๋๋ค.
๐ฆ Docker์ ํด๊ฒฐ์ฑ : ํด์ ์ด์ก ์ปจํ ์ด๋
Docker๋ ์ด ๋ฌธ์ ๋ฅผ ํด์ ์ด์ก ์ปจํ ์ด๋์ ๋๊ฐ์ ์์ด๋์ด๋ก ํด๊ฒฐํฉ๋๋ค.
๊ณผ๊ฑฐ์๋ ๋ฐฐ๋ก ๋ฌผ๊ฑด์ ๋ณด๋ผ ๋, ์์, ํต, ์๋ฃจ ๋ฑ ์ ๊ฐ๊ฐ ๋ค๋ฅธ ํํ๋ก ์ค์ด์ ๊ณต๊ฐ๋ ๋ญ๋น๋๊ณ ํ์๋ ์ฆ์์ต๋๋ค.
ํ์ง๋ง ๊ท๊ฒฉํ๋ โ์ปจํ
์ด๋โ๊ฐ ๋ฑ์ฅํ๋ฉด์ ๋ชจ๋ ๊ฒ์ด ๋ฐ๋์์ต๋๋ค.
์ด๋ค ๋ฌผ๊ฑด์ด๋ ์ด ํ์ค ์ปจํ ์ด๋์๋ง ๋ด์ผ๋ฉด, ์ ์ธ๊ณ ์ด๋ค ํญ๊ตฌ์ ์ด๋ค ํฌ๋ ์ธ, ํธ๋ญ, ๊ธฐ์ฐจ๋ก๋ ์ฝ๊ณ ์์ ํ๊ฒ ์ด์กํ ์ ์๊ฒ ๋์์ต๋๋ค.
Docker๊ฐ ๋ฐ๋ก ์ํํธ์จ์ด ์ธ๊ณ์ โ์ปจํ ์ด๋โ ์ ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ฒ, ์ฆ 1๏ธโฃ ์ฝ๋, 2๏ธโฃ ์คํ ํ๊ฒฝ(๋ฐํ์) 3๏ธโฃ ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, 4๏ธโฃ ์ค์ ํ์ผ ๋ฑ์ ํ๋๋ก ์น ๋ฌถ์ด์ โDocker ์ด๋ฏธ์งโ๋ผ๋ ํ์คํ๋ ์์์ ๋ด์ต๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด โ์ด๋ฏธ์งโ๋ฅผ ์คํํ ๊ฒ์ด ๋ฐ๋ก โDocker ์ปจํ ์ด๋โ ์ ๋๋ค.
๐ฆ Docker์ ํต์ฌ ๋ชฉ์ 5๊ฐ์ง
-
ํ๊ฒฝ์ ์ผ๊ด์ฑ (Consistency):
ยท ๊ฐ๋ฐ์์ ๋ ธํธ๋ถ, ํ ์คํธ ์๋ฒ, ์ด์ ์๋ฒ ๋ฑ ์ด๋์๋ ๋์ผํ ํ๊ฒฝ์ ๋ณด์ฅํฉ๋๋ค. โ๋ด ์ปดํจํฐ์์๋ ๋๋๋ฐโฆ โ ๋ฌธ์ ๋ฅผ ๊ทผ๋ณธ์ ์ผ๋ก ํด๊ฒฐํฉ๋๋ค. -
์ด์์ฑ (Portability):
ยท ํ ๋ฒ Docker ์ด๋ฏธ์ง๋ก ๋ง๋ค์ด๋๋ฉด, Docker๊ฐ ์ค์น๋ ์ด๋ค ์ปดํจํฐ๋ ํด๋ผ์ฐ๋ ์๋ฒ์์๋ ์์ ์์ด ๋ฐ๋ก ์คํํ ์ ์์ต๋๋ค. โํ ๋ฒ ๋น๋ํด์, ์ด๋์๋ ์คํํ๋ค(Build once, run anywhere).โ -
๊ฐ๋ณ๊ณ ๋น ๋ฅธ ์คํ (Lightweight & Fast):
ยท ๊ธฐ์กด์ ๊ฐ์๋จธ์ (VM)์ฒ๋ผ ์ด์์ฒด์ (OS)๋ฅผ ํต์งธ๋ก ์ค์นํ๋ ๋ฐฉ์์ด ์๋๋๋ค. ํธ์คํธ ์ปดํจํฐ์ OS๋ ๊ณต์ ํ๋ฉด์, ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๊ทธ์ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง ๊ฒฉ๋ฆฌํ์ฌ ์คํํ๊ธฐ ๋๋ฌธ์ ํจ์ฌ ๊ฐ๋ณ๊ณ , ๋น ๋ฅด๋ฉฐ, ์ ์ ์์์ ์๋ชจํฉ๋๋ค. -
๊ฒฉ๋ฆฌ (Isolation):
ยท ๊ฐ ์ปจํ ์ด๋๋ ์๋ก ์์ ํ ๊ฒฉ๋ฆฌ๋ ๊ณต๊ฐ์์ ์คํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํ๋์ ์ปจํ ์ด๋์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๋ค๋ฅธ ์ปจํ ์ด๋์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉฐ, ์ปจํ ์ด๋๋ผ๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ด ์ถฉ๋ํ ๊ฑฑ์ ๋ ์์ต๋๋ค. -
์์ฌ์ด ํ์ฅ (Scalability):
ยท ์ฌ์ฉ์๊ฐ ๋ชฐ๋ ค์ ๋ ๋ง์ ์๋ฒ ์ฉ๋์ด ํ์ํ ๋, ๋๊ฐ์ ์ปจํ ์ด๋๋ฅผ ๋ช ๊ฐ ๋ ์คํํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ด๋ ํ๋์ ์ธ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ(MSA)๋ฅผ ๊ตฌํํ๋ ํต์ฌ ๊ธฐ์ ์ด ๋ฉ๋๋ค.
๐ก Summary.
- Docker์ ์ฃผ์ ๋ชฉ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ทธ ์คํ ํ๊ฒฝ๊ณผ ํจ๊ป โํฌ์ฅโํ์ฌ, ๊ฐ๋ฐ๋ถํฐ ๋ฐฐํฌ, ์ด์์ ์ด๋ฅด๋ ์ ๊ณผ์ ์ ๋ ๋น ๋ฅด๊ณ , ์์ ์ ์ด๋ฉฐ, ํจ์จ์ ์ผ๋ก ๋ง๋๋ ๊ฒ์ ๋๋ค.