<aside>
</aside>
์๋ ํ์ธ์! ๋๋์ด ์ด ๊ฐ์์ ๋ง์ง๋ง ์ฌ์ , 8๋ถ: ๋ฐฐํฌ ๋ฐ ์ด์์ ์ฒซ ์๊ฐ, 37๊ฐ์ ๋๋ค! ๐ขโ๏ธ
7๋ถ๊น์ง ์ฐ๋ฆฌ๋ FastAPI์ ๊ธฐ์ด๋ถํฐ ์์ํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋, ์ธ์ฆ/๋ณด์, ์ฑ๋ฅ ์ต์ ํ ํ๊น์ง ๋ฐฐ์ฐ๋ฉฐ ๊ธฐ๋ฅ์ ์ผ๋ก ์์ฑ๋ ๋๊ณ ์ฑ๋ฅ ์ข์ ToDo List API๋ฅผ ๋ง๋ค์์ต๋๋ค. ์ ๋ง ๊ธด ์ฌ์ ์ด์๊ณ , ์ฌ๋ฌ๋ถ ๋ชจ๋ ์ ๋ง ๋๋จํ ์ฑ์ฅ์ ์ด๋ฃจ์ จ์ด์! ๐ฅณย ํ์ง๋ง ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์ด ๋ฉ์ง API๋ ์์ง ์ฐ๋ฆฌ ๊ฐ๋ฐ ์ปดํจํฐ ์์์๋ง ์๋ํ๊ณ ์์ต๋๋ค. ์ค์ ์ฌ์ฉ์๋ค์ด ์ด API๋ฅผ ์ฌ์ฉํ๊ฒ ํ๋ ค๋ฉด, ์์ ์ ์ธ ์๋ฒ ํ๊ฒฝ(์: ํด๋ผ์ฐ๋ ์๋ฒ)์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฎ๊ฒจ์ ์คํํด์ผ ํฉ๋๋ค. ์ด ๊ณผ์ ์ **๋ฐฐํฌ(Deployment)**๋ผ๊ณ ํ์ฃ .
๊ทธ๋ฐ๋ฐ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ ๋์๊ฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ฒ ํ๊ฒฝ์์๋ ์จ๊ฐ ๋ฌธ์ (๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฒ์ ์ถฉ๋, ์ค์ ์ค๋ฅ, ์ด์์ฒด์ ์ฐจ์ด ๋ฑ)๋ฅผ ์ผ์ผํค๋ ๊ฒฝ์ฐ๊ฐ ๋น์ผ๋น์ฌํฉ๋๋ค. "์ด? ์ ์ปดํจํฐ์์๋ ์ ๋๋๋ฐ์? ๐ค" ๋ผ๋ ๋ง์ด ๊ดํ ๋์จ ๊ฒ ์๋์ฃ !
์ด๋ฒ 8๋ถ์์๋ ์ด๋ฌํ ๋ฐฐํฌ์ ์ด๋ ค์์ ํด๊ฒฐํ๊ณ , ํ๋์ ์ธ ๋ฐฉ์์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ ์ด๊ณ ํจ์จ์ ์ผ๋ก ๋ฐฐํฌ ๋ฐ ์ด์ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋๋ค. ๊ทธ ์ฒซ๊ฑธ์์ผ๋ก, ์ด๋ฒ 37๊ฐ์์๋ Docker๋ผ๋ ๊ฐ๋ ฅํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฐ๋ฆฌ FastAPI ์ ํ๋ฆฌ์ผ์ด์ ์ **์ปจํ ์ด๋(Container)**๋ก ํฌ์ฅํ๋ ์ปจํ ์ด๋ํ(Containerization) ๊ณผ์ ์ ๋ฐฐ์ฐ๊ฒ ์ต๋๋ค! Docker๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ค ํ๊ฒฝ์์๋ ๋์ผํ๊ฒ ์คํ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ํจํค์ง๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๋ง์น ์ด์ฟ์ง์ ๊ท๊ฒฉํ๋ ์ปจํ ์ด๋ ๋ฐ์ค์ ๋ด๋ ๊ฒ์ฒ๋ผ์! ๐ฆ๐ณ
8๋ถ '๋ฐฐํฌ ๋ฐ ์ด์' ์์. ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ์ด๋ ค์์ ํ๋์ ํด๋ฒ์ธ Docker ์ปจํ ์ด๋ ์๊ฐ ๋ฐ FastAPI ์ ํ๋ฆฌ์ผ์ด์ ์ Docker ์ด๋ฏธ์ง ์์ฑ๋ฒ ํ์ต.
์ ํต์ ๋ฐฐํฌ์ ์ด๋ ค์(์์กด์ฑ, ํ๊ฒฝ ๋ถ์ผ์น) ํ์ . ํด๊ฒฐ์ฑ ์ธ ๊ฐ์ํ ๊ธฐ์ , **๊ฐ์ ๋จธ์ (VM)**๊ณผ **์ปจํ ์ด๋(Container)**์ ์ฐจ์ด์ ๋น๊ต ๋ฐ ์ปจํ ์ด๋ ์ฅ์ ํ์ต.
๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ์ปจํ ์ด๋ ํ๋ซํผ Docker์ ๊ธฐ๋ณธ ๊ฐ๋ (์ด๋ฏธ์ง, ์ปจํ ์ด๋, Dockerfile) ์ดํด. Docker๋ฅผ ํตํด ์ฑ ์คํ์ ํ์ํ ๋ชจ๋ ์์๋ฅผ ํฌํจํ ํ์ค '์ด๋ฏธ์ง' ์์ฑ, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋์๋ ๋์ผํ๊ฒ ์คํ๋๋ ๊ฒฉ๋ฆฌ '์ปจํ ์ด๋' ํ๊ฒฝ ๊ตฌ์ถ ๊ฐ๋ฅ.
ํ๋ก์ ํธ ํ์ด์ฌ ์์กด์ฑ ๊ด๋ฆฌ์ฉ requirements.txt
ํ์ผ ์์ฑ ์ค์ต. ์ฑ์ Docker ์ด๋ฏธ์ง ๋น๋ ๋ฐฉ๋ฒ์ ๋ช
์ํ๋ Dockerfile
์์ฑ ๋จ๊ณ๋ณ ์ค์ต. Dockerfile
์ ์ด์ฉํ docker build
๋ก Docker ์ด๋ฏธ์ง ๋น๋, docker run
์ผ๋ก ์ปจํ
์ด๋ ์คํ ํ Docker ํ๊ฒฝ ๋ด ์ฑ ๊ตฌ๋ ํ์ธ.
์ด ๊ฐ์๋ฅผ ๋ง์น๋ฉด ์ฌ๋ฌ๋ถ์ ๋ค์์ ํ ์ ์๊ฒ ๋ฉ๋๋ค:
pip freeze
๋ฅผ ์ฌ์ฉํ requirements.txt
ํ์ผ ์์ฑ.Dockerfile
์์ฑ ๋ฐ ์ฃผ์ ๋ช
๋ น์ด(FROM
, WORKDIR
, COPY
, RUN
, EXPOSE
, CMD
) ์ฌ์ฉ.docker build
๋ช
๋ น์ด๋ก Dockerfile๋ก๋ถํฐ Docker ์ด๋ฏธ์ง ๋น๋.