committed by
GitHub
1 changed files with 81 additions and 0 deletions
@ -0,0 +1,81 @@ |
|||
# ์ญ์ฌ, ๋์์ธ ๊ทธ๋ฆฌ๊ณ ๋ฏธ๋ |
|||
|
|||
์ด๋ ๋ , [ํ FastAPI ์ฌ์ฉ์](https://github.com/fastapi/fastapi/issues/3#issuecomment-454956920)๊ฐ ์ด๋ ๊ฒ ๋ฌผ์์ต๋๋ค: |
|||
|
|||
> ์ด ํ๋ก์ ํธ์ ์ญ์ฌ๋ฅผ ์๋ ค ์ฃผ์ค ์ ์๋์? ๋ช ์ฃผ ๋ง์ ๋ฉ์ง ๊ฒฐ๊ณผ๋ฅผ ๋ธ ๊ฒ ๊ฐ์์. [...] |
|||
|
|||
์ฌ๊ธฐ์ ๊ทธ ์ญ์ฌ์ ๋ํด ๊ฐ๋จํ ์ค๋ช
ํ๊ฒ ์ต๋๋ค. |
|||
|
|||
--- |
|||
|
|||
## ๋์ |
|||
|
|||
์ ๋ ์ฌ๋ฌ ํด ๋์ ๋จธ์ ๋ฌ๋, ๋ถ์ฐ ์์คํ
, ๋น๋๊ธฐ ์์
, NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ๋ณต์กํ ์๊ตฌ์ฌํญ์ ๊ฐ์ง API๋ฅผ ๊ฐ๋ฐํ๋ฉฐ ์ฌ๋ฌ ํ์ ์ด๋์ด ์์ต๋๋ค. |
|||
|
|||
์ด ๊ณผ์ ์์ ๋ง์ ๋์์ ์กฐ์ฌํ๊ณ , ํ
์คํธํ๋ฉฐ, ์ฌ์ฉํด์ผ ํ์ต๋๋ค. **FastAPI**์ ์ญ์ฌ๋ ๊ทธ ์ด์ ์ ๋์๋ ์ฌ๋ฌ ๋๊ตฌ์ ์ญ์ฌ์ ๋ฐ์ ํ๊ฒ ์ฐ๊ด๋์ด ์์ต๋๋ค. |
|||
|
|||
[๋์](alternatives.md){.internal-link target=_blank} ์น์
์์ ์ธ๊ธ๋ ๊ฒ์ฒ๋ผ: |
|||
|
|||
> **FastAPI**๋ ์ด์ ์ ๋์๋ ๋ง์ ๋๊ตฌ๋ค์ ๋
ธ๋ ฅ ์์ด๋ ์กด์ฌํ์ง ์์์ ๊ฒ์
๋๋ค. |
|||
> |
|||
> ์ด์ ์ ๊ฐ๋ฐ๋ ์ฌ๋ฌ ๋๊ตฌ๋ค์ด ์ด ํ๋ก์ ํธ์ ์๊ฐ์ ์ฃผ์์ต๋๋ค. |
|||
> |
|||
> ์ ๋ ์ค๋ซ๋์ ์๋ก์ด ํ๋ ์์ํฌ๋ฅผ ๋ง๋๋ ๊ฒ์ ํผํ๊ณ ์ ํ์ต๋๋ค. ์ฒ์์๋ **FastAPI**๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ๋ค์ ๋ค์ํ ํ๋ ์์ํฌ์ ํ๋ฌ๊ทธ์ธ, ๋๊ตฌ๋ค์ ์กฐํฉํด ํด๊ฒฐํ๋ ค ํ์ต๋๋ค. |
|||
> |
|||
> ํ์ง๋ง ๊ฒฐ๊ตญ์๋ ์ด ๋ชจ๋ ๊ธฐ๋ฅ์ ํตํฉํ๋ ๋๊ตฌ๊ฐ ํ์ํด์ก์ต๋๋ค. ์ด์ ๋๊ตฌ๋ค๋ก๋ถํฐ ์ต๊ณ ์ ์์ด๋์ด๋ค์ ๋ชจ์ผ๊ณ , ์ด๋ฅผ ์ต์ ์ ๋ฐฉ์์ผ๋ก ์กฐํฉํด์ผ๋ง ํ์ต๋๋ค. ์ด๋ :term:Python 3.6+ ํ์
ํํธ <type hints>์ ๊ฐ์, ์ด์ ์๋ ์ฌ์ฉํ ์ ์์๋ ์ธ์ด ๊ธฐ๋ฅ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
๋๋ค. |
|||
|
|||
--- |
|||
|
|||
## ์กฐ์ฌ |
|||
|
|||
์ฌ๋ฌ ๋์์ ์ฌ์ฉํด ๋ณด๋ฉฐ ๋ค์ํ ๋๊ตฌ์์ ๋ฐฐ์ด ์ ๋ค์ ๋ชจ์ ์ ์ ๊ฐ๋ฐํ์๊ฒ ๊ฐ์ฅ ์ ํฉํ ๋ฐฉ์์ ์ฐพ์์ต๋๋ค. |
|||
|
|||
์๋ฅผ ๋ค์ด, ํ์ค :term:Python ํ์
ํํธ <type hints>์ ๊ธฐ๋ฐํ๋ ๊ฒ์ด ์ด์์ ์ด๋ผ๋ ์ ์ด ๋ช
ํํ์ต๋๋ค. |
|||
|
|||
๋ํ, ์ด๋ฏธ ์กด์ฌํ๋ ํ์ค์ ํ์ฉํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข์ ์ ๊ทผ๋ฒ์ด๋ผ ํ๋จํ์ต๋๋ค. |
|||
|
|||
๊ทธ๋์ **FastAPI**์ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ๋ช ๋ฌ ๋์ OpenAPI, JSON Schema, OAuth2 ๋ช
์ธ๋ฅผ ์ฐ๊ตฌํ๋ฉฐ ์ด๋ค์ ๊ด๊ณ์ ๊ฒน์น๋ ๋ถ๋ถ, ์ฐจ์ด์ ์ ์ดํดํ์ต๋๋ค. |
|||
|
|||
--- |
|||
|
|||
## ๋์์ธ |
|||
|
|||
๊ทธ ํ, **FastAPI** ์ฌ์ฉ์๊ฐ ๋ ๊ฐ๋ฐ์๋ก์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฐ๋ฐ์ "API"๋ฅผ ๋์์ธํ์ต๋๋ค. |
|||
|
|||
[Python Developer Survey](https://www.jetbrains.com/research/python-developers-survey-2018/#development-tools)์ ๋ฐ๋ฅด๋ฉด ์ฝ 80%์ Python ๊ฐ๋ฐ์๊ฐ PyCharm, VS Code, Jedi ๊ธฐ๋ฐ ํธ์ง๊ธฐ ๋ฑ์์ ๊ฐ๋ฐํฉ๋๋ค. ์ด ๊ณผ์ ์์ ์ฌ๋ฌ ์์ด๋์ด๋ฅผ ํ
์คํธํ์ต๋๋ค. |
|||
|
|||
๋๋ถ๋ถ์ ๋ค๋ฅธ ํธ์ง๊ธฐ๋ ์ ์ฌํ๊ฒ ๋์ํ๊ธฐ ๋๋ฌธ์, **FastAPI**์ ์ด์ ์ ๊ฑฐ์ ๋ชจ๋ ํธ์ง๊ธฐ์์ ๋๋ฆด ์ ์์ต๋๋ค. |
|||
|
|||
์ด ๊ณผ์ ์ ํตํด ์ฝ๋ ์ค๋ณต์ ์ต์ํํ๊ณ , ๋ชจ๋ ๊ณณ์์ ์๋ ์์ฑ, ํ์
๊ฒ์ฌ, ์๋ฌ ํ์ธ ๊ธฐ๋ฅ์ด ์ ๊ณต๋๋ ์ต์ ์ ๋ฐฉ์์ ์ฐพ์๋์ต๋๋ค. |
|||
|
|||
์ด ๋ชจ๋ ๊ฒ์ ๊ฐ๋ฐ์๋ค์๊ฒ ์ต๊ณ ์ ๊ฐ๋ฐ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํด ์ค๊ณ๋์์ต๋๋ค. |
|||
|
|||
--- |
|||
|
|||
## ํ์์กฐ๊ฑด |
|||
|
|||
์ฌ๋ฌ ๋์์ ํ
์คํธํ ํ, [Pydantic](https://docs.pydantic.dev/)์ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. |
|||
|
|||
์ดํ ์ ๋ **Pydantic**์ด JSON Schema์ ์๋ฒฝํ ํธํ๋๋๋ก ๊ฐ์ ํ๊ณ , ๋ค์ํ ์ ์ฝ ์กฐ๊ฑด ์ ์ธ์ ์ง์ํ๋ฉฐ, ์ฌ๋ฌ ํธ์ง๊ธฐ์์์ ์๋ ์์ฑ๊ณผ ํ์
๊ฒ์ฌ ๊ธฐ๋ฅ์ ํฅ์ํ๊ธฐ ์ํด ๊ธฐ์ฌํ์ต๋๋ค. |
|||
|
|||
๋ํ, ๋ ๋ค๋ฅธ ์ฃผ์ ํ์์กฐ๊ฑด์ด์๋ [Starlette](https://www.starlette.io/)์๋ ๊ธฐ์ฌํ์ต๋๋ค. |
|||
|
|||
--- |
|||
|
|||
## ๊ฐ๋ฐ |
|||
|
|||
**FastAPI**๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์์ํ ์ฆ์์๋ ๋๋ถ๋ถ์ ์ค๋น๊ฐ ์ด๋ฏธ ์๋ฃ๋ ์ํ์์ต๋๋ค. ์ค๊ณ๊ฐ ์ ์๋์๊ณ , ํ์์กฐ๊ฑด๊ณผ ๋๊ตฌ๊ฐ ์ค๋น๋์์ผ๋ฉฐ, ํ์ค๊ณผ ๋ช
์ธ์ ๋ํ ์ง์๋ ์ถฉ๋ถํ์ต๋๋ค. |
|||
|
|||
--- |
|||
|
|||
## ๋ฏธ๋ |
|||
|
|||
ํ์์ ์์ **FastAPI**๊ฐ ๋ง์ ์ฌ๋๋ค์๊ฒ ์ ์ฉํ๋ค๋ ๊ฒ์ด ๋ช
๋ฐฑํด์ก์ต๋๋ค. |
|||
|
|||
์ฌ๋ฌ ์ฉ๋์ ๋ ์ ํฉํ ๋๊ตฌ๋ก์ ๊ธฐ์กด ๋์๋ณด๋ค ์ ํธ๋๊ณ ์์ต๋๋ค. |
|||
์ด๋ฏธ ๋ง์ ๊ฐ๋ฐ์์ ํ๋ค์ด **FastAPI**์ ์์กดํด ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์
๋๋ค (์ ์ ์ ํ๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค). |
|||
|
|||
ํ์ง๋ง ์ฌ์ ํ ๊ฐ์ ํด์ผ ํ ์ ๊ณผ ์ถ๊ฐํ ๊ธฐ๋ฅ๋ค์ด ๋ง์ด ๋จ์ ์์ต๋๋ค. |
|||
|
|||
**FastAPI**๋ ๋ฐ์ ๋ฏธ๋๋ก ๋์๊ฐ๊ณ ์์ต๋๋ค. |
|||
๊ทธ๋ฆฌ๊ณ [์ฌ๋ฌ๋ถ์ ๋์](help-fastapi.md){.internal-link target=_blank}์ ํฐ ํ์ด ๋ฉ๋๋ค. |
Loadingโฆ
Reference in new issue