committed by
GitHub
1 changed files with 88 additions and 0 deletions
@ -0,0 +1,88 @@ |
|||
# FastAPI ๋ฒ์ ๋ค์ ๋ํ์ฌ |
|||
|
|||
**FastAPI** ๋ ์ด๋ฏธ ๋ง์ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์์คํ
๋ค์ ๋ง๋๋๋ฐ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ 100%์ ํ
์คํธ ์ ํ์ฑ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ์์ง๊น์ง๋ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๊ณ ์์ต๋๋ค. |
|||
|
|||
์๋ก์ด ํน์ง๋ค์ด ๋น๋ฒํ๊ฒ ์ถ๊ฐ๋๊ณ , ์ค๋ฅ๋ค์ด ์ง์์ ์ผ๋ก ์์ ๋๊ณ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋๊ฐ ๊ณ์์ ์ผ๋ก ํฅ์๋๊ณ ์์ต๋๋ค. |
|||
|
|||
์ด๊ฒ์ด ์์ง๋ ์ต์ ๋ฒ์ ์ด `0.x.x`์ธ ์ด์ ์
๋๋ค. ์ด๊ฒ์ ๊ฐ๊ฐ์ ๋ฒ์ ๋ค์ด ์ ์ฌ์ ์ผ๋ก ๋ณํ ์ ์๋ค๋ ๊ฒ์ ๋ณด์ฌ์ค๋๋ค. ์ด๋ <a href="https://semver.org/" class="external-link" target="_blank">์ ์์ ๋ฒ์ </a> ๊ด์ต์ ๋ฐ๋ฆ
๋๋ค. |
|||
|
|||
์ง๊ธ ๋ฐ๋ก **FastAPI**๋ก ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ (์๋ง ์ง๊ธ๊น์ง ๊ทธ๋ ์๋ ๊ฒ์ฒ๋ผ), ์ฌ์ฉํ๋ ๋ฒ์ ์ด ์ฝ๋์ ์ ๋ง๋์ง ํ์ธํด์ผํฉ๋๋ค. |
|||
|
|||
## `fastapi` ๋ฒ์ ์ ํ์ |
|||
|
|||
๊ฐ์ฅ ๋จผ์ ํด์ผํ ๊ฒ์ ์์ฉ ํ๋ก๊ทธ๋จ์ด ์ ์๋ํ๋ ๊ฐ์ฅ ์ต์ ์ ๊ตฌ์ฒด์ ์ธ **FastAPI** ๋ฒ์ ์ ํ์ํ๋ ๊ฒ์
๋๋ค. |
|||
|
|||
์๋ฅผ ๋ค์ด, ์์ฉ ํ๋ก๊ทธ๋จ์ `0.45.0` ๋ฒ์ ์ ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. |
|||
|
|||
๋ง์ฝ์ `requirements.txt` ํ์ผ์ ์ฌ์ฉํ๋ค๋ฉด, ๋ค์๊ณผ ๊ฐ์ด ๋ฒ์ ์ ๋ช
์ธํ ์ ์์ต๋๋ค: |
|||
|
|||
```txt |
|||
fastapi==0.45.0 |
|||
``` |
|||
|
|||
์ด๊ฒ์ `0.45.0` ๋ฒ์ ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. |
|||
|
|||
๋๋ ๋ค์๊ณผ ๊ฐ์ด ํ์ํ ์ ์์ต๋๋ค: |
|||
|
|||
```txt |
|||
fastapi>=0.45.0,<0.46.0 |
|||
``` |
|||
|
|||
์ด๊ฒ์ `0.45.0` ๋ฒ์ ๊ณผ ๊ฐ๊ฑฐ๋ ๋์ผ๋ฉด์ `0.46.0` ๋ฒ์ ๋ณด๋ค๋ ๋ฎ์ ๋ฒ์ ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, `0.45.2` ๋ฒ์ ๊ณผ ๊ฐ์ ๊ฒฝ์ฐ๋ ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํฉ๋๋ค. |
|||
|
|||
๋ง์ฝ์ Poetry, Pipenv, ๋๋ ๊ทธ๋ฐ์ ๋ค์ํ ์ค์น ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ํจํค์ง์ ๊ตฌ์ฒด์ ์ธ ๋ฒ์ ์ ์ ์ํ ์ ์๋ ๋ฐฉ๋ฒ์ ๊ฐ์ง๊ณ ์์ ๊ฒ์
๋๋ค. |
|||
|
|||
## ์ด์ฉ๊ฐ๋ฅํ ๋ฒ์ ๋ค |
|||
|
|||
[Release Notes](../release-notes.md){.internal-link target=_blank}๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋ ๋ฒ์ ๋ค์ ํ์ธํ ์ ์์ต๋๋ค.(์๋ฅผ ๋ค์ด, ๊ฐ์ฅ ์ต์ ์ ๋ฒ์ ์ ํ์ธํ ์ ์์ต๋๋ค.) |
|||
|
|||
|
|||
## ๋ฒ์ ๋ค์ ๋ํด |
|||
|
|||
์ ์์ ๋ฒ์ ๊ด์ต์ ๋ฐ๋ผ์, `1.0.0` ์ดํ์ ๋ชจ๋ ๋ฒ์ ๋ค์ ์ ์ฌ์ ์ผ๋ก ๊ธ๋ณํ ์ ์์ต๋๋ค. |
|||
|
|||
FastAPI๋ ์ค๋ฅ๋ฅผ ์์ ํ๊ณ , ์ผ๋ฐ์ ์ธ ๋ณ๊ฒฝ์ฌํญ์ ์ํด "ํจ์น"๋ฒ์ ์ ๊ด์ต์ ๋ฐ๋ฆ
๋๋ค. |
|||
|
|||
!!! tip "ํ" |
|||
์ฌ๊ธฐ์ ๋งํ๋ "ํจ์น"๋ ๋ฒ์ ์ ๋ง์ง๋ง ์ซ์๋ก, ์๋ฅผ ๋ค์ด `0.2.3` ๋ฒ์ ์์ "ํจ์น"๋ `3`์ ์๋ฏธํฉ๋๋ค. |
|||
|
|||
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋ฒ์ ์ ํ์ํ ์ ์์ต๋๋ค: |
|||
|
|||
```txt |
|||
fastapi>=0.45.0,<0.46.0 |
|||
``` |
|||
|
|||
์์ ๋ ์ฌํญ๊ณผ ์๋ก์ด ์์๋ค์ด "๋ง์ด๋" ๋ฒ์ ์ ์ถ๊ฐ๋์์ต๋๋ค. |
|||
|
|||
!!! tip "ํ" |
|||
"๋ง์ด๋"๋ ๋ฒ์ ๋๋ฒ์ ๊ฐ์ด๋ฐ ์ซ์๋ก, ์๋ฅผ ๋ค์ด์ `0.2.3`์ "๋ง์ด๋" ๋ฒ์ ์ `2`์
๋๋ค. |
|||
|
|||
## FastAPI ๋ฒ์ ์ ์
๊ทธ๋ ์ด๋ |
|||
|
|||
์์ฉ ํ๋ก๊ทธ๋จ์ ๊ฒ์ฌํด์ผํฉ๋๋ค. |
|||
|
|||
(Starlette ๋๋ถ์), **FastAPI** ๋ฅผ ์ด์ฉํ์ฌ ๊ต์ฅํ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค. [Testing](../tutorial/testing.md){.internal-link target=_blank}๋ฌธ์๋ฅผ ํ์ธํด ๋ณด์ญ์์ค: |
|||
|
|||
๊ฒ์ฌ๋ฅผ ํด๋ณด๊ณ ๋ ํ์, **FastAPI** ๋ฒ์ ์ ๋ ์ต์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฝ๋๋ค์ด ํ
์คํธ์ ์ ์์ ์ผ๋ก ์๋ํ๋์ง ํ์ธ์ ํด์ผํฉ๋๋ค. |
|||
|
|||
๋ง์ฝ์ ๋ชจ๋ ๊ฒ์ด ์ ์ ์๋ํ๊ฑฐ๋ ํ์ํ ๋ถ๋ถ์ ๋ณ๊ฒฝํ๊ณ , ๋ชจ๋ ๊ฒ์ฌ๋ฅผ ํต๊ณผํ๋ค๋ฉด, ์๋ก์ด ๋ฒ์ ์ `fastapi`๋ฅผ ํ์ํ ์ ์์ต๋๋ค. |
|||
|
|||
## Starlette์ ๋ํด |
|||
|
|||
`starlette`์ ๋ฒ์ ์ ํ์ํ ์ ์์ต๋๋ค. |
|||
|
|||
์๋ก๋ค๋ฅธ ๋ฒ์ ์ **FastAPI**๊ฐ ๊ตฌ์ฒด์ ์ด๊ณ ์๋ก์ด ๋ฒ์ ์ Starlette์ ์ฌ์ฉํ ๊ฒ์
๋๋ค. |
|||
|
|||
๊ทธ๋ฌ๋ฏ๋ก **FastAPI**๊ฐ ์๋ง์ Starlette ๋ฒ์ ์ ์ฌ์ฉํ๋๋ก ํ์ญ์์ค. |
|||
|
|||
## Pydantic์ ๋ํด |
|||
|
|||
Pydantic์ **FastAPI** ๋ฅผ ์ํ ๊ฒ์ฌ๋ฅผ ํฌํจํ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์, ์๋ก์ด ๋ฒ์ ์ Pydantic(`1.0.0`์ด์)์ ํญ์ FastAPI์ ํธํ๋ฉ๋๋ค. |
|||
|
|||
์์
์ ํ๊ณ ์๋ `1.0.0` ์ด์์ ๋ชจ๋ ๋ฒ์ ๊ณผ `2.0.0` ์ดํ์ Pydantic ๋ฒ์ ์ ํ์ํ ์ ์์ต๋๋ค. |
|||
|
|||
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ต๋๋ค: |
|||
|
|||
```txt |
|||
pydantic>=1.2.0,<2.0.0 |
|||
``` |
Loadingโฆ
Reference in new issue