ํ๋ก์ ํธ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ์ด๋ค Python ์น ํ๋ ์์ํฌ๋ฅผ ์ ํํด์ผ ํ ์ง
Django, Flask, FastAPI์ ํน์ง๊ณผ ์ฅ๋จ์ ์ ๋ฆฌ
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ํ์ | ํ์คํ ์น ํ๋ ์์ํฌ |
| ๊ตฌ์กฐ | MTV(Model-Template-View) ํจํด, DRY(Don't Repeat Yourself) ์์น ์ค์ |
| ํน์ง | ORM, ์ธ์ฆ ์์คํ
, ๊ด๋ฆฌ์ ํ์ด์ง ๋ฑ ๋ด์ฅ ๊ธฐ๋ฅ ํ๋ถ (๋ฐฐํฐ๋ฆฌ ์ธํด๋ฃจ๋๋) |
| ๋น๋๊ธฐ ์ง์ | ๊ฐ๋ฅ์ ํ๋ ์๋ ๋ฉด์์ FastAPI์ ๋ฐ๋ฆผ |
| ํ์ฅ์ฑ | ๋ํ ํ๋ก์ ํธ ์ ํฉํ์ง๋ง ํ ํ๋ฆฟ๊ณผ ORM์ด ๋ฌด๊ฑฐ์ธ ์ ์์ |
| ํ์ต ๊ณก์ | ์ด๋ณด์์๊ฒ ๋ค์ ๋ณต์กํ๊ณ ๋๋ฒ๊น ์ด๋ ค์ |
| ์ฅ์ | ๋ณด์, ์ ์ง๋ณด์ ์ฉ์ด, ์ปค๋ฎค๋ํฐ ํฌ๊ณ ๋ฌธ์ ํ๋ถ |
| ๋จ์ | ๊ตฌ์กฐ ๊ฐ์ ์ฑ์ผ๋ก ์ธํด ์๊ท๋ชจ ํ๋ก์ ํธ์ ๊ณผํจ |
โ ์ถ์ฒ ์ฌ์ฉ์ฒ
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ํ์ | ๋ง์ดํฌ๋ก ์น ํ๋ ์์ํฌ |
| ๊ตฌ์กฐ | MVC ํจํด, Jinja ํ ํ๋ฆฟ ๊ธฐ๋ฐ |
| ํน์ง | ์ต์ํ์ ๊ธฐ๋ฅ๋ง ์ ๊ณต. ๊ฐ๋ฐ์๊ฐ ์ง์ ์ค๊ณ, ํ์ฅ |
| ๋น๋๊ธฐ ์ง์ | ๊ธฐ๋ณธ ์ง์ ์์. ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์ |
| ํ์ฅ์ฑ | ๊ตฌ์กฐ ์์ ๋๊ฐ ๋์ง๋ง ๋๊ท๋ชจ ํ์ฅ์ ๋ถ๋ด |
| ํ์ต ๊ณก์ | ์ด๋ณด์ ์นํ์ , ๋ฐฐ์ฐ๊ธฐ ์ฌ์ |
| ์ฅ์ | ๋น ๋ฅธ ๊ฐ๋ฐ, ์ ์ฐํ ๊ตฌ์กฐ, ๊ฐ๋จํ API ์๋ฒ์ ์ ํฉ |
| ๋จ์ | ORM, ์ธ์ฆ, ๋น๋๊ธฐ ๋ฑ ์ง์ ๊ตฌํ ํ์ |
โ ์ถ์ฒ ์ฌ์ฉ์ฒ
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ํ์ | ๋ง์ดํฌ๋ก ์น ํ๋ ์์ํฌ |
| ๊ธฐ๋ฐ | Starlette + Pydantic, ASGI ๊ธฐ๋ฐ |
| ํน์ง | ํ์ ํํธ ๊ธฐ๋ฐ ์๋ ์ ํจ์ฑ ๊ฒ์ฌ + Swagger ๋ฌธ์ ์๋ ์์ฑ |
| ๋น๋๊ธฐ ์ง์ | async def๋ก ๋ค์ดํฐ๋ธ ์ง์ โ ๋งค์ฐ ๋น ๋ฆ |
| ์ฑ๋ฅ | ๊ณ ์ฑ๋ฅ API ๊ฐ๋ฐ์ ํนํ |
| ์์กด์ฑ ์ฃผ์ | ๊ณตํต ๋ก์ง์ ์๋์ผ๋ก ์ฃผ์ ํ์ฌ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ โ |
| ํ์ต ๊ณก์ | Python ํ์ ํํธ์ ๋น๋๊ธฐ ๊ฐ๋ ์ด ํ์ํจ |
| ์ฅ์ | ๋ฌธ์ํ, ์ฑ๋ฅ, ๊ฐ๋ฐ ํธ์์ฑ ๋ชจ๋ ์ฐ์ |
| ๋จ์ | ํ ํ๋ฆฟ์ด๋ ์ ํต์ ์ธ ์น ๊ฐ๋ฐ์๋ ๋ถ์ ํฉ (์ง์ ๊ตฌ์ฑ ํ์) |
๐ ๋น์ : ๋น๋๊ธฐ ํ๋ฒ๊ฑฐ ๊ฐ๊ฒ
์ฃผ๋ฌธ ํ ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ณผ์ผ์ ๋ณด๋ฉฐ
โ ๋์ค์ ํ๋ฒ๊ฑฐ๋ฅผ ์ฐพ์๊ฐ๋ ๊ตฌ์กฐ.
โ ๋ฆฌ์์ค๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ฉฐ, ์ฌ์ฉ์ ์๋ต ์๋๋ ํฅ์๋จ
โ ์ถ์ฒ ์ฌ์ฉ์ฒ
| ์กฐ๊ฑด | ์ถ์ฒ ํ๋ ์์ํฌ |
|---|---|
| ๋ณด์๊ณผ ์์ ์ฑ์ด ์ค์ํ ๋ํ ์๋น์ค | Django |
| ๊ฐ๋จํ ์น์ฑ or ๋น ๋ฅธ ํ๋กํ ํ์ ์ ์ | Flask |
| ๊ณ ์ฑ๋ฅ API, ๋น๋๊ธฐ ํต์ ์ด ํ์ํ ๊ฒฝ์ฐ | FastAPI |
๊ฐ ํ๋ ์์ํฌ๋ ์ฌ์ฉ ๋ชฉ์ ๊ณผ ๊ฐ๋ฐ์์ ์คํ์ผ์ ๋ฐ๋ผ ์ต์ ์ ์ ํ์ง๊ฐ ๋ฌ๋ผ์ง๋๋ค.
์น์ฑ ์ค์ฌ์ด๋ผ๋ฉด Django, ์์ ์คํ ํ๋ก์ ํธ๋ผ๋ฉด Flask,
API ์ค์ฌ์ ์๋น์ค๋ผ๋ฉด FastAPI๋ฅผ ๊ณ ๋ คํด๋ณด์ธ์.