๋ฐ์ดํฐ์ฌ์ด์ธ์ค ๋ชจ๋ธ ์คํ์ ๋๋ฆด ๋ ๊ตฌ๊ธ ์ฝ๋ฉ๋ณด๋จ ๋ฆฌ๋ ์ค์ ๋์ปค๋ฅผ ํ์ฉํ๋ ๊ฒ์ ์ต์ํด์ ธ์ผํ๋ค๊ณ ํ๋ค.
๋ฆฌ๋ ์ค์ ๋์ปคโฆ?
๋ฆฌ๋ ์ค์ ๋์ปค๋ ๋ญํ๋ ๊ฑฐ๊ณ , ์ด๋ค ์ ์์ ๋ฆฌ๋ ์ค์ ๋์ปค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ตฌ๊ธ ์ฝ๋ฉ์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋์๊ฑธ๊น?
๋ฆฌ๋ ์ค๋ Unix ๊ธฐ๋ฐ์ ์ด์์ฒด์ ๋ค.
์ด์์ฒด์ ๋ ์ปดํจํฐ์ ์ํํธ์จ์ด์ธ๋ฐ, ์ฌ์ฉ์์ ์ปดํจํฐ ํ๋์จ์ด์ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ค!
๊ทธ๋ ๋ค๋ฉด ๋ค๋ฅธ ์ด์์ฒด์ ๋ค(Windows, macOS)๊ณผ ๋ฆฌ๋ ์ค์ ์ฐจ์ด๋ ๋ญ์ผ?
๊ฐ์ฅ ํต์ฌ์ ์ธ ์ฐจ์ด๋ ๋ฆฌ๋ ์ค๊ฐ ๋ค์ํ ์ํํธ์จ์ด์ ํจ๊ป ํจํค์งํ๋ ๋ฐฐํฌํ ํํ๋ก ์ฌ์ฉ๋๋ค๋ ์ ์ด๋ค.
์ด๋ฌํ ๋ฐฐํฌํ์ ์๋ก๋ Ubuntu, Fedora, Debian ๋ฑ์ด ์๋ค.
๋ฌด๋ฃ๋ก ์ฌ์ฉํ ์ ์๊ณ , ์์ค ์ฝ๋๊ฐ ๊ณต๊ฐ๋์ด ์์ด์ ํ์์ ๋ฐ๋ผ ์์ ํ๊ฑฐ๋ ์ฌ๋ฐฐํฌํ ์ ์๋ค!
๊ฐ ๋ฆฌ๋ ์ค ๋ฐฐํฌํ์ ๋ชฉ์ ์ ๋ง๊ฒ ์ต์ ํ๋์ด ์๋ค. ๋ชฉ์ ์ ๋ง๊ฒ ์ฌ์ฉ์์ ํ๊ฒฝ์ ์์ ๋กญ๊ฒ ์ ํํ ์ ์๋ค.
๋ฆฌ๋ ์ค๋ ๊ฐ๋ ฅํ ๋ณด์ ์ฒด๊ณ๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
๋์ ์ฑ๋ฅ๊ณผ ์์ ์ฑ ๋๋ฌธ์ ์๋ฒ ํ๊ฒฝ์์ ๋๋ฆฌ ํ์ฉ๋๋ค.
GUI(Graphical User Interface)๋ ์ ๊ณตํ์ง๋ง CLI๋ฅผ ํตํด ๋ณต์กํ ์์ ์ ๋น ๋ฅด๊ณ ์ ํํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค.
์ฌ์ฉ์๊ฐ ํ ์คํธ ๊ธฐ๋ฐ์ ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ์ฌ ์ปดํจํฐ์ ์ํธ์์ฉํ๋ ์ธํฐํ์ด์ค
์ฌ์ฉ์๊ฐ ๊ทธ๋ํฝ ์์๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํจํฐ์ ์ํธ์์ฉํ๋ ์ธํฐํ์ด์ค (๋ง์ฐ์ค ํด๋ฆญ, ํค๋ณด๋ ์ ๋ ฅ์ผ๋ก ์กฐ์)
๊ฒฝ๋์ฑ : CLI๋ GUI์ ๋นํด ๋ ์ ์ ์์คํ ์์ ์๋น
์ ์ฐ์ฑ ๋ฐ ์๋ํ ๊ฐ๋ฅ์ฑ : ๋จ์ผ ๋ช ๋ น์ด๋ก ๋ณต์กํ ์์ ๋ค์ ์ํํ ์ ์๊ณ , ์คํฌ๋ฆฝํธ๋ก ์ฌ๋ฌ ๋ช ๋ น์ด๋ฅผ ์ฐ๊ฒฐํ์ฌ ์์ ๋ค์ ์๋ํํ ์ ์๋ค.
์๊ฒฉ ๊ด๋ฆฌ ์ฉ์ด : SSH (Secure Shell) ๊ฐ์ ์๊ฒฉ ์ ์ ๋๊ตฌ๋ฅผ ์ด์ฉํ์ฌ ๋คํธ์ํฌ ์์ ๋ค๋ฅธ ์ปดํจํฐ์ ์ ์ํด CLI๋ฅผ ์ด์ฉํด ์์ ํ ์ ์๋ค.
(๊ทธ๋ฌ๋โฆGUI๊ฐ ๋ ์ง๊ด์ ์ด๋ฉฐ ์ฌ์ฉ์ ์นํ์ ์ผ ์ ์๋ค!)
์ ์ธ๊ณ ๋ฐฉ๋ํ ์ปค๋ฎค๋ํฐ๋ฅผ ํตํด ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ฐพ์ ์ ์๋ค!
์์ ๊ฐ์ ์ด์ ๋๋ฌธ์ ์๋ฒ ๊ด๋ฆฌ, ์น ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ, ๋ฐ์ดํฐ ๋ถ์ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ๋ฆฌ๋ ์ค๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ค.
๋์ปค๋ ์ปจํ ์ด๋ ๊ธฐ๋ฐ์ ์คํ ์์ค ํ๋ซํผ์ด๋ค. (๋์ปค ์คํ ํ๊ฒฝ ๋จ์ = ์ปจํ ์ด๋)
์ปจํ
์ด๋โฆ?
์ปจํ
์ด๋๋ ์ ํ๋ฆฌ์ผ์ด์
๊ณผ ์ด ์ ํ๋ฆฌ์ผ์ด์
์ ํ์ํ ๋ชจ๋ ์ข
์์ฑ์ ํ๋์ ํจํค์ง๋ก ๋ฌถ์ ํ๋ซํผ์ด๋ค.
์ด ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋ ๋ฟ๋ง ์๋๋ผ ๋ฐํ์, ์์คํ ๋๊ตฌ, ์์คํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ ์๋ฒ์ ์ค์น๋์ด์ผ ํ ๋ชจ๋ ๊ฒ๋ค์ ํฌํจํ๋ค.
๋ฐ๋ผ์ ๋์ปค๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์ฝ๋๊ฐ ์ด๋ค ํ๊ฒฝ์์๋ ์ง ๋์ผํ๊ฒ ์คํ๋ ์ ์๋๋ก ๋ณด์ฅํ๋ค!
ํ ๋ง๋๋ก โ๋ด ์ปดํจํฐ์์๋ ์ ์๋ํ๋๋ฐ, ์ ์๋ฒ์์๋ ์ ์๋ ๊น?โ์ ๋ฌธ์ ๋ฅผ ํผํ ์ ์๋จ ๋ง์ด๋ค.
์ค์ ํ์ด์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ๋ค๊ณ ์๊ฐํด๋ณด์.
์ด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ๊ฐ์ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ๋ฉฐ, PostgreSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํจ๊ป ์๋ํ๋ค.
์ด๋ ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋ ๋์ปค ์ด๋ฏธ์ง๋ฅผ ํ์ฉํ๋ฉด, ์ธ์ ์ด๋์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋์ผํ๊ฒ ์๋ํ๋๋ก ๋ง๋ค ์ ์๋ค. (์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๋์์๋ ์ผ๊ด๋๊ฒ ์คํํ ์ ์๋ค!)
์ ๋ฆฌ!
๋์ปค๋ฅผ ํตํดโฆ
๊ฐ๋ฐ ์๋ฒ (๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐํ๋ ์๋ฒ) ํ๊ฒฝ = ์ด์ ์๋ฒ (์ฌ์ฉ์๋ค์ด ์ฌ์ฉํ๋ ์๋ฒ) ํ๊ฒฝ
โ DevOps (Development, Operations)
๋์ปค๋ ์๋ ๋ฆฌ๋ ์ค์์๋ง ์๋ํ๋ ํ๋ซํผ์ด์๋ค๊ณ ํ๋ค.
์๋ํ๋ฉด ๋์ปค๊ฐ ๋ฆฌ๋ ์ค ์ปค๋ ๊ธฐ๋ฅ ์ค ํ๋์ธ cgroups์ namespaces๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฐ๋ฐ ํ์ฌ๋ Docker Desktop ์๋ฃจ์ ์ ํตํด Windows๋ MacOS์์๋ ๋ฆฌ๋ ์ค ์ปจํ ์ด๋๋ฅผ ์คํํ ์ ์๊ฒ ๋์๋ค!
๊ตฌ๊ธ ์ฝ๋ฉ์ ์ด์ฉํ๋ ๊ฒ๋ณด๋ค ์ Linux, Docker๋ฅผ ์ด์ฉํ์ฌ ๋ชจ๋ธ ์คํ์ ๋๋ฆฌ๋ ๊ฒ์ด ์ ํธ๋ ๊น?
๊ฐ์ฅ ํฐ ์ด์ ๋ โ์ฌ์ฌ์ฉ์ฑโ์ธ ๊ฒ ๊ฐ๋ค!
Docker๋ฅผ ์ฌ์ฉํ๋ฉด ํ์ํ ๋ชจ๋ ์ํํธ์จ์ด์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ค์น๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด ์ฌ์ฌ์ฉํ ์ ์๋ค. ์ฆ, ๋ค๋ฅธ ์ฌ๋๋ค๋ ๋์ผํ ํ๊ฒฝ์์ ์คํ์ ์ฌํํ ์ ์๋ค!
๊ทธ๊ฒ ๋ฟ๋ง ์๋๋ผ, ์ฅ์๊ฐ ์์ ์๋ Linux ํ๊ฒฝ์์ Docker ์ปจํ ์ด๋๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค.
Google Colab์ ์ผ์ ์๊ฐ ํ์ ์ฐ๊ฒฐ์ด ๋์ด์ ธ์ ์คํ ์ค์ธ ์์ ์ด ์ค๋จ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ํ์ง๋ง ๋์ปค ์ปจํ ์ด๋๋ฅผ ์ด์ฉํ๋ฉด ์ฐ๊ฒฐ ์๊ฐ์ ์ ํ ์์ด ์์ ์ ์งํํ ์ ์๋ค.
๋ณด์์ ์ธก๋ฉด์์๋ Google Colab๋ณด๋จ Docker๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ๋ฆฌํ๋ค. Docker Container๋ ๊ฐ์ธ ์๋ฒ ํน์ ๋ก์ปฌ ์์คํ ์์ ์งํ๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ ๋ณด์์ฑ์ด ํฅ์๋๋ค. Google Colab์ ๊ณต์ ํ๊ฒฝ์ด๊ธฐ์ ์๋ฌด๋๋ ๋ฐ์ดํฐ ์ ์ถ์ ์ํ์ด ์์ ์ ์๋ค.
Linux๊ฐ ๊ฐ๋ ฅํ CLI(Command Line Interface)๋ฅผ ๊ฐ์ง๋ค๋ ๊ฒ๋ ๊ฐ์ ์ด๋ค. ์ด๋ฅผ ์ด์ฉํ๋ฉด ๋ณต์กํ ์์ ๊ณผ ์ํฌํ๋ก์ฐ๋ฅผ ์๋ํํ์ฌ ๊ด๋ฆฌํ๊ธฐ ์ฝ๋ค.