|
|
@ -24,7 +24,7 @@ |
|
|
|
|
|
|
|
|
### [Django REST Framework](https://www.django-rest-framework.org/) { #django-rest-framework } |
|
|
### [Django REST Framework](https://www.django-rest-framework.org/) { #django-rest-framework } |
|
|
|
|
|
|
|
|
Django REST framework๋ Django๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Web API๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ์ ์ฐํ toolkit์ผ๋ก ๋ง๋ค์ด์ก๊ณ , Django์ API ๊ธฐ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํ ๋ชฉ์ ์ด์์ต๋๋ค. |
|
|
Django REST Framework๋ Django๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Web API๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ์ ์ฐํ toolkit์ผ๋ก ๋ง๋ค์ด์ก๊ณ , Django์ API ๊ธฐ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํ ๋ชฉ์ ์ด์์ต๋๋ค. |
|
|
|
|
|
|
|
|
Mozilla, Red Hat, Eventbrite๋ฅผ ํฌํจํด ๋ง์ ํ์ฌ์์ ์ฌ์ฉํฉ๋๋ค. |
|
|
Mozilla, Red Hat, Eventbrite๋ฅผ ํฌํจํด ๋ง์ ํ์ฌ์์ ์ฌ์ฉํฉ๋๋ค. |
|
|
|
|
|
|
|
|
@ -36,7 +36,7 @@ Django REST Framework๋ Tom Christie๊ฐ ๋ง๋ค์์ต๋๋ค. **FastAPI**์ ๊ธฐ |
|
|
|
|
|
|
|
|
/// |
|
|
/// |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
์๋ API ๋ฌธ์ํ ์น ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๊ธฐ. |
|
|
์๋ API ๋ฌธ์ํ ์น ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -56,7 +56,7 @@ Flask๋ "microframework"๋ก, Django์ ๊ธฐ๋ณธ์ผ๋ก ํฌํจ๋ ๋ฐ์ดํฐ๋ฒ ์ด |
|
|
|
|
|
|
|
|
Flask์ ๋จ์ํจ์ ๊ณ ๋ คํ๋ฉด API๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ ๋ง๋ ๊ฒ์ฒ๋ผ ๋ณด์์ต๋๋ค. ๋ค์์ผ๋ก ์ฐพ๊ณ ์ ํ๋ ๊ฒ์ Flask์ฉ "Django REST Framework"์์ต๋๋ค. |
|
|
Flask์ ๋จ์ํจ์ ๊ณ ๋ คํ๋ฉด API๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ ๋ง๋ ๊ฒ์ฒ๋ผ ๋ณด์์ต๋๋ค. ๋ค์์ผ๋ก ์ฐพ๊ณ ์ ํ๋ ๊ฒ์ Flask์ฉ "Django REST Framework"์์ต๋๋ค. |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
micro-framework๊ฐ ๋๊ธฐ. ํ์ํ ๋๊ตฌ์ ๊ตฌ์ฑ์์๋ฅผ ์ฝ๊ฒ ์กฐํฉํ ์ ์๋๋ก ํ๊ธฐ. |
|
|
micro-framework๊ฐ ๋๊ธฐ. ํ์ํ ๋๊ตฌ์ ๊ตฌ์ฑ์์๋ฅผ ์ฝ๊ฒ ์กฐํฉํ ์ ์๋๋ก ํ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -80,7 +80,7 @@ Requests๋ ๋งค์ฐ ๋จ์ํ๊ณ ์ง๊ด์ ์ธ ์ค๊ณ๋ฅผ ๊ฐ์ก๊ณ , ํฉ๋ฆฌ์ ์ธ |
|
|
|
|
|
|
|
|
๊ทธ๋์ ๊ณต์ ์น์ฌ์ดํธ์์ ๋งํ๋ฏ์ด: |
|
|
๊ทธ๋์ ๊ณต์ ์น์ฌ์ดํธ์์ ๋งํ๋ฏ์ด: |
|
|
|
|
|
|
|
|
> Requests is one of the most downloaded Python packages of all time |
|
|
> Requests๋ ์ญ๋ ๊ฐ์ฅ ๋ง์ด ๋ค์ด๋ก๋๋ Python ํจํค์ง ์ค ํ๋์
๋๋ค |
|
|
|
|
|
|
|
|
์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์๋ฅผ ๋ค์ด `GET` ์์ฒญ์ ํ๋ ค๋ฉด ๋ค์์ฒ๋ผ ์์ฑํฉ๋๋ค: |
|
|
์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ์๋ฅผ ๋ค์ด `GET` ์์ฒญ์ ํ๋ ค๋ฉด ๋ค์์ฒ๋ผ ์์ฑํฉ๋๋ค: |
|
|
|
|
|
|
|
|
@ -98,7 +98,7 @@ def read_url(): |
|
|
|
|
|
|
|
|
`requests.get(...)`์ `@app.get(...)`์ ์ ์ฌ์ฑ์ ํ์ธํด ๋ณด์ธ์. |
|
|
`requests.get(...)`์ `@app.get(...)`์ ์ ์ฌ์ฑ์ ํ์ธํด ๋ณด์ธ์. |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
* ๋จ์ํ๊ณ ์ง๊ด์ ์ธ API๋ฅผ ๊ฐ๊ธฐ. |
|
|
* ๋จ์ํ๊ณ ์ง๊ด์ ์ธ API๋ฅผ ๊ฐ๊ธฐ. |
|
|
* HTTP method ์ด๋ฆ(operations)์ ์ง์ , ์ง๊ด์ ์ด๊ณ ๋ช
ํํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๊ธฐ. |
|
|
* HTTP method ์ด๋ฆ(operations)์ ์ง์ , ์ง๊ด์ ์ด๊ณ ๋ช
ํํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๊ธฐ. |
|
|
@ -118,7 +118,7 @@ def read_url(): |
|
|
|
|
|
|
|
|
๊ทธ๋์ 2.0 ๋ฒ์ ์ ์ด์ผ๊ธฐํ ๋๋ "Swagger"๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๊ณ , 3+ ๋ฒ์ ์ "OpenAPI"๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์
๋๋ค. |
|
|
๊ทธ๋์ 2.0 ๋ฒ์ ์ ์ด์ผ๊ธฐํ ๋๋ "Swagger"๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๊ณ , 3+ ๋ฒ์ ์ "OpenAPI"๋ผ๊ณ ๋งํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์
๋๋ค. |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
์ปค์คํ
schema ๋์ , API ์ฌ์์ ์ํ ์ด๋ฆฐ ํ์ค์ ์ฑํํ๊ณ ์ฌ์ฉํ๊ธฐ. |
|
|
์ปค์คํ
schema ๋์ , API ์ฌ์์ ์ํ ์ด๋ฆฐ ํ์ค์ ์ฑํํ๊ณ ์ฌ์ฉํ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -147,7 +147,7 @@ API์ ๋ ํ๋ ํฌ๊ฒ ํ์ํ ๊ธฐ๋ฅ์ ๋ฐ์ดํฐ ๊ฒ์ฆ์
๋๋ค. ํน์ |
|
|
|
|
|
|
|
|
ํ์ง๋ง Python type hints๊ฐ ์กด์ฌํ๊ธฐ ์ ์ ๋ง๋ค์ด์ก์ต๋๋ค. ๊ทธ๋์ ๊ฐ <dfn title="๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด์ผ ํ๋์ง์ ๋ํ ์ ์">์คํค๋ง</dfn>๋ฅผ ์ ์ํ๋ ค๋ฉด Marshmallow๊ฐ ์ ๊ณตํ๋ ํน์ ์ ํธ๋ฆฌํฐ์ ํด๋์ค๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. |
|
|
ํ์ง๋ง Python type hints๊ฐ ์กด์ฌํ๊ธฐ ์ ์ ๋ง๋ค์ด์ก์ต๋๋ค. ๊ทธ๋์ ๊ฐ <dfn title="๋ฐ์ดํฐ๊ฐ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด์ผ ํ๋์ง์ ๋ํ ์ ์">์คํค๋ง</dfn>๋ฅผ ์ ์ํ๋ ค๋ฉด Marshmallow๊ฐ ์ ๊ณตํ๋ ํน์ ์ ํธ๋ฆฌํฐ์ ํด๋์ค๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
๋ฐ์ดํฐ ํ์
๊ณผ ๊ฒ์ฆ์ ์ ๊ณตํ๋ "schema"๋ฅผ ์ฝ๋๋ก ์ ์ํ๊ณ , ์ด๋ฅผ ์๋์ผ๋ก ํ์ฉํ๊ธฐ. |
|
|
๋ฐ์ดํฐ ํ์
๊ณผ ๊ฒ์ฆ์ ์ ๊ณตํ๋ "schema"๋ฅผ ์ฝ๋๋ก ์ ์ํ๊ณ , ์ด๋ฅผ ์๋์ผ๋ก ํ์ฉํ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -169,7 +169,7 @@ Webargs๋ Marshmallow์ ๊ฐ์ ๊ฐ๋ฐ์๋ค์ด ๋ง๋ค์์ต๋๋ค. |
|
|
|
|
|
|
|
|
/// |
|
|
/// |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
๋ค์ด์ค๋ ์์ฒญ ๋ฐ์ดํฐ์ ์๋ ๊ฒ์ฆ์ ๊ฐ๊ธฐ. |
|
|
๋ค์ด์ค๋ ์์ฒญ ๋ฐ์ดํฐ์ ์๋ ๊ฒ์ฆ์ ๊ฐ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -199,7 +199,7 @@ APISpec์ Marshmallow์ ๊ฐ์ ๊ฐ๋ฐ์๋ค์ด ๋ง๋ค์์ต๋๋ค. |
|
|
|
|
|
|
|
|
/// |
|
|
/// |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
API๋ฅผ ์ํ ์ด๋ฆฐ ํ์ค์ธ OpenAPI๋ฅผ ์ง์ํ๊ธฐ. |
|
|
API๋ฅผ ์ํ ์ด๋ฆฐ ํ์ค์ธ OpenAPI๋ฅผ ์ง์ํ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -231,7 +231,7 @@ Flask-apispec์ Marshmallow์ ๊ฐ์ ๊ฐ๋ฐ์๋ค์ด ๋ง๋ค์์ต๋๋ค. |
|
|
|
|
|
|
|
|
/// |
|
|
/// |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
serialization๊ณผ validation์ ์ ์ํ๋ ๋์ผํ ์ฝ๋๋ก๋ถํฐ OpenAPI schema๋ฅผ ์๋ ์์ฑํ๊ธฐ. |
|
|
serialization๊ณผ validation์ ์ ์ํ๋ ๋์ผํ ์ฝ๋๋ก๋ถํฐ OpenAPI schema๋ฅผ ์๋ ์์ฑํ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -251,7 +251,7 @@ Angular 2์์ ์๊ฐ์ ๋ฐ์ ์์กด์ฑ ์ฃผ์
์์คํ
์ด ํตํฉ๋์ด ์ |
|
|
|
|
|
|
|
|
์ค์ฒฉ ๋ชจ๋ธ์ ์ ์ฒ๋ฆฌํ์ง ๋ชปํฉ๋๋ค. ์ฆ, ์์ฒญ์ JSON body๊ฐ ๋ด๋ถ ํ๋๋ฅผ ๊ฐ์ง JSON ๊ฐ์ฒด์ด๊ณ ๊ทธ ๋ด๋ถ ํ๋๋ค์ด ๋ค์ ์ค์ฒฉ๋ JSON ๊ฐ์ฒด์ธ ๊ฒฝ์ฐ, ์ ๋๋ก ๋ฌธ์ํํ๊ณ ๊ฒ์ฆํ ์ ์์ต๋๋ค. |
|
|
์ค์ฒฉ ๋ชจ๋ธ์ ์ ์ฒ๋ฆฌํ์ง ๋ชปํฉ๋๋ค. ์ฆ, ์์ฒญ์ JSON body๊ฐ ๋ด๋ถ ํ๋๋ฅผ ๊ฐ์ง JSON ๊ฐ์ฒด์ด๊ณ ๊ทธ ๋ด๋ถ ํ๋๋ค์ด ๋ค์ ์ค์ฒฉ๋ JSON ๊ฐ์ฒด์ธ ๊ฒฝ์ฐ, ์ ๋๋ก ๋ฌธ์ํํ๊ณ ๊ฒ์ฆํ ์ ์์ต๋๋ค. |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
Python ํ์
์ ์ฌ์ฉํด ๋ฐ์ด๋ ์๋ํฐ ์ง์์ ์ ๊ณตํ๊ธฐ. |
|
|
Python ํ์
์ ์ฌ์ฉํด ๋ฐ์ด๋ ์๋ํฐ ์ง์์ ์ ๊ณตํ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -271,7 +271,7 @@ Python ํ์
์ ์ฌ์ฉํด ๋ฐ์ด๋ ์๋ํฐ ์ง์์ ์ ๊ณตํ๊ธฐ. |
|
|
|
|
|
|
|
|
/// |
|
|
/// |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
๋ฏธ์น ์ฑ๋ฅ์ ๋ผ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ. |
|
|
๋ฏธ์น ์ฑ๋ฅ์ ๋ผ ์ ์๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -283,11 +283,11 @@ Python ํ์
์ ์ฌ์ฉํด ๋ฐ์ด๋ ์๋ํฐ ์ง์์ ์ ๊ณตํ๊ธฐ. |
|
|
|
|
|
|
|
|
Falcon์ ๋ ๋ค๋ฅธ ๊ณ ์ฑ๋ฅ Python framework๋ก, ์ต์ํ์ผ๋ก ์ค๊ณ๋์๊ณ Hug ๊ฐ์ ๋ค๋ฅธ framework์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋๋ก ๋ง๋ค์ด์ก์ต๋๋ค. |
|
|
Falcon์ ๋ ๋ค๋ฅธ ๊ณ ์ฑ๋ฅ Python framework๋ก, ์ต์ํ์ผ๋ก ์ค๊ณ๋์๊ณ Hug ๊ฐ์ ๋ค๋ฅธ framework์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋๋ก ๋ง๋ค์ด์ก์ต๋๋ค. |
|
|
|
|
|
|
|
|
ํจ์๊ฐ ๋ ๊ฐ์ ํ๋ผ๋ฏธํฐ(ํ๋๋ "request", ํ๋๋ "response")๋ฅผ ๋ฐ๋๋ก ์ค๊ณ๋์ด ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ request์์ ์ผ๋ถ๋ฅผ "์ฝ๊ณ ", response์ ์ผ๋ถ๋ฅผ "์์ฑ"ํฉ๋๋ค. ์ด ์ค๊ณ ๋๋ฌธ์, ํ์ค Python type hints๋ฅผ ํจ์ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉํด ์์ฒญ ํ๋ผ๋ฏธํฐ์ body๋ฅผ ์ ์ธํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. |
|
|
ํจ์๊ฐ ๋ ๊ฐ์ ํ๋ผ๋ฏธํฐ(ํ๋๋ "์์ฒญ", ํ๋๋ "์๋ต")๋ฅผ ๋ฐ๋๋ก ์ค๊ณ๋์ด ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์์ฒญ์์ ์ผ๋ถ๋ฅผ "์ฝ๊ณ ", ์๋ต์ ์ผ๋ถ๋ฅผ "์์ฑ"ํฉ๋๋ค. ์ด ์ค๊ณ ๋๋ฌธ์, ํ์ค Python type hints๋ฅผ ํจ์ ํ๋ผ๋ฏธํฐ๋ก ์ฌ์ฉํด ์์ฒญ ํ๋ผ๋ฏธํฐ์ body๋ฅผ ์ ์ธํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํฉ๋๋ค. |
|
|
|
|
|
|
|
|
๋ฐ๋ผ์ ๋ฐ์ดํฐ ๊ฒ์ฆ, serialization, ๋ฌธ์ํ๋ ์๋์ผ๋ก ๋์ง ์๊ณ ์ฝ๋๋ก ํด์ผ ํฉ๋๋ค. ๋๋ Hug์ฒ๋ผ Falcon ์์ framework๋ฅผ ์น์ด ๊ตฌํํด์ผ ํฉ๋๋ค. request ๊ฐ์ฒด ํ๋์ response ๊ฐ์ฒด ํ๋๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๋ Falcon์ ์ค๊ณ์์ ์๊ฐ์ ๋ฐ์ ๋ค๋ฅธ framework์์๋ ๊ฐ์ ๊ตฌ๋ถ์ด ๋ํ๋ฉ๋๋ค. |
|
|
๋ฐ๋ผ์ ๋ฐ์ดํฐ ๊ฒ์ฆ, serialization, ๋ฌธ์ํ๋ ์๋์ผ๋ก ๋์ง ์๊ณ ์ฝ๋๋ก ํด์ผ ํฉ๋๋ค. ๋๋ Hug์ฒ๋ผ Falcon ์์ framework๋ฅผ ์น์ด ๊ตฌํํด์ผ ํฉ๋๋ค. ์์ฒญ ๊ฐ์ฒด ํ๋์ ์๋ต ๊ฐ์ฒด ํ๋๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๋ Falcon์ ์ค๊ณ์์ ์๊ฐ์ ๋ฐ์ ๋ค๋ฅธ framework์์๋ ๊ฐ์ ๊ตฌ๋ถ์ด ๋ํ๋ฉ๋๋ค. |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
ํ๋ฅญํ ์ฑ๋ฅ์ ์ป๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ. |
|
|
ํ๋ฅญํ ์ฑ๋ฅ์ ์ป๋ ๋ฐฉ๋ฒ์ ์ฐพ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -313,7 +313,7 @@ Pydantic ๊ฐ์ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ ๊ฒ์ฆ/seria |
|
|
|
|
|
|
|
|
Route๋ ํ ๊ณณ์์ ์ ์ธํ๊ณ , ๋ค๋ฅธ ๊ณณ์ ์ ์ธ๋ ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค(์๋ํฌ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์ ๋ฐ๋ก ์์ ๋ ์ ์๋ decorator๋ฅผ ์ฌ์ฉํ๋ ๋์ ). ์ด๋ Flask(๋ฐ Starlette)๋ณด๋ค๋ Django ๋ฐฉ์์ ๊ฐ๊น์ต๋๋ค. ์ฝ๋์์ ์๋์ ์ผ๋ก ๊ฐํ๊ฒ ๊ฒฐํฉ๋ ๊ฒ๋ค์ ๋ถ๋ฆฌํด ๋์ต๋๋ค. |
|
|
Route๋ ํ ๊ณณ์์ ์ ์ธํ๊ณ , ๋ค๋ฅธ ๊ณณ์ ์ ์ธ๋ ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค(์๋ํฌ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๋ ํจ์ ๋ฐ๋ก ์์ ๋ ์ ์๋ decorator๋ฅผ ์ฌ์ฉํ๋ ๋์ ). ์ด๋ Flask(๋ฐ Starlette)๋ณด๋ค๋ Django ๋ฐฉ์์ ๊ฐ๊น์ต๋๋ค. ์ฝ๋์์ ์๋์ ์ผ๋ก ๊ฐํ๊ฒ ๊ฒฐํฉ๋ ๊ฒ๋ค์ ๋ถ๋ฆฌํด ๋์ต๋๋ค. |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
๋ชจ๋ธ ์์ฑ์ "default" ๊ฐ์ผ๋ก ๋ฐ์ดํฐ ํ์
์ ๋ํ ์ถ๊ฐ ๊ฒ์ฆ์ ์ ์ํ๊ธฐ. ์ด๋ ์๋ํฐ ์ง์์ ๊ฐ์ ํ๋ฉฐ, ์ด์ ์๋ Pydantic์ ์์์ต๋๋ค. |
|
|
๋ชจ๋ธ ์์ฑ์ "default" ๊ฐ์ผ๋ก ๋ฐ์ดํฐ ํ์
์ ๋ํ ์ถ๊ฐ ๊ฒ์ฆ์ ์ ์ํ๊ธฐ. ์ด๋ ์๋ํฐ ์ง์์ ๊ฐ์ ํ๋ฉฐ, ์ด์ ์๋ Pydantic์ ์์์ต๋๋ค. |
|
|
|
|
|
|
|
|
@ -341,7 +341,7 @@ Hug๋ Timothy Crosley๊ฐ ๋ง๋ค์์ต๋๋ค. Python ํ์ผ์์ import๋ฅผ ์ |
|
|
|
|
|
|
|
|
/// |
|
|
/// |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์์ด๋์ด |
|
|
|
|
|
|
|
|
Hug๋ APIStar์ ์ผ๋ถ์ ์๊ฐ์ ์ฃผ์๊ณ , ์ ๋ APIStar์ ํจ๊ป Hug๋ฅผ ๊ฐ์ฅ ์ ๋งํ ๋๊ตฌ ์ค ํ๋๋ก ๋ณด์์ต๋๋ค. |
|
|
Hug๋ APIStar์ ์ผ๋ถ์ ์๊ฐ์ ์ฃผ์๊ณ , ์ ๋ APIStar์ ํจ๊ป Hug๋ฅผ ๊ฐ์ฅ ์ ๋งํ ๋๊ตฌ ์ค ํ๋๋ก ๋ณด์์ต๋๋ค. |
|
|
|
|
|
|
|
|
@ -385,7 +385,7 @@ APIStar๋ Tom Christie๊ฐ ๋ง๋ค์์ต๋๋ค. ๋ค์์ ๋ง๋ ์ฌ๋๊ณผ ๋์ผ |
|
|
|
|
|
|
|
|
/// |
|
|
/// |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**์ ์๊ฐ์ ์ค ์ |
|
|
|
|
|
|
|
|
์กด์ฌํ๊ฒ ๋ง๋ค๊ธฐ. |
|
|
์กด์ฌํ๊ฒ ๋ง๋ค๊ธฐ. |
|
|
|
|
|
|
|
|
@ -409,7 +409,7 @@ Pydantic์ Python type hints๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ ๊ฒ์ฆ, serialization, |
|
|
|
|
|
|
|
|
Marshmallow์ ๋น๊ตํ ์ ์์ต๋๋ค. ๋ค๋ง benchmark์์ Marshmallow๋ณด๋ค ๋น ๋ฆ
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ผํ Python type hints๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฏ๋ก ์๋ํฐ ์ง์๋ ํ๋ฅญํฉ๋๋ค. |
|
|
Marshmallow์ ๋น๊ตํ ์ ์์ต๋๋ค. ๋ค๋ง benchmark์์ Marshmallow๋ณด๋ค ๋น ๋ฆ
๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ผํ Python type hints๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฏ๋ก ์๋ํฐ ์ง์๋ ํ๋ฅญํฉ๋๋ค. |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**๋ ์ด๋ฅผ ์ฌ์ฉํด |
|
|
|
|
|
|
|
|
๋ชจ๋ ๋ฐ์ดํฐ ๊ฒ์ฆ, ๋ฐ์ดํฐ serialization, ์๋ ๋ชจ๋ธ ๋ฌธ์ํ(JSON Schema ๊ธฐ๋ฐ)๋ฅผ ์ฒ๋ฆฌํ๊ธฐ. |
|
|
๋ชจ๋ ๋ฐ์ดํฐ ๊ฒ์ฆ, ๋ฐ์ดํฐ serialization, ์๋ ๋ชจ๋ธ ๋ฌธ์ํ(JSON Schema ๊ธฐ๋ฐ)๋ฅผ ์ฒ๋ฆฌํ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -430,7 +430,7 @@ Starlette๋ ๊ฒฝ๋ <dfn title="๋น๋๊ธฐ Python ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ |
|
|
* ํ๋ก์ธ์ค ๋ด ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
. |
|
|
* ํ๋ก์ธ์ค ๋ด ๋ฐฑ๊ทธ๋ผ์ด๋ ์์
. |
|
|
* ์์ ๋ฐ ์ข
๋ฃ ์ด๋ฒคํธ. |
|
|
* ์์ ๋ฐ ์ข
๋ฃ ์ด๋ฒคํธ. |
|
|
* HTTPX ๊ธฐ๋ฐ์ ํ
์คํธ ํด๋ผ์ด์ธํธ. |
|
|
* HTTPX ๊ธฐ๋ฐ์ ํ
์คํธ ํด๋ผ์ด์ธํธ. |
|
|
* CORS, GZip, Static Files, Streaming responses. |
|
|
* CORS, GZip, Static Files, ์คํธ๋ฆฌ๋ฐ ์๋ต. |
|
|
* ์ธ์
๋ฐ ์ฟ ํค ์ง์. |
|
|
* ์ธ์
๋ฐ ์ฟ ํค ์ง์. |
|
|
* 100% ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง. |
|
|
* 100% ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง. |
|
|
* 100% ํ์
์ฃผ์์ด ๋ฌ๋ฆฐ ์ฝ๋๋ฒ ์ด์ค. |
|
|
* 100% ํ์
์ฃผ์์ด ๋ฌ๋ฆฐ ์ฝ๋๋ฒ ์ด์ค. |
|
|
@ -452,7 +452,7 @@ ASGI๋ Django ์ฝ์ด ํ ๋ฉค๋ฒ๋ค์ด ๊ฐ๋ฐ ์ค์ธ ์๋ก์ด "ํ์ค"์
๋๋ค |
|
|
|
|
|
|
|
|
/// |
|
|
/// |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**๋ ์ด๋ฅผ ์ฌ์ฉํด |
|
|
|
|
|
|
|
|
ํต์ฌ ์น ๋ถ๋ถ์ ๋ชจ๋ ์ฒ๋ฆฌํ๊ธฐ. ๊ทธ ์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ. |
|
|
ํต์ฌ ์น ๋ถ๋ถ์ ๋ชจ๋ ์ฒ๋ฆฌํ๊ธฐ. ๊ทธ ์์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ. |
|
|
|
|
|
|
|
|
@ -470,11 +470,11 @@ web framework๊ฐ ์๋๋ผ ์๋ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด ๊ฒฝ๋ก ๊ธฐ๋ฐ routing |
|
|
|
|
|
|
|
|
Starlette์ **FastAPI**์์ ๊ถ์ฅํ๋ ์๋ฒ์
๋๋ค. |
|
|
Starlette์ **FastAPI**์์ ๊ถ์ฅํ๋ ์๋ฒ์
๋๋ค. |
|
|
|
|
|
|
|
|
/// tip | ํ |
|
|
/// tip | **FastAPI**๋ ์ด๋ฅผ ๋ค์์ผ๋ก ๊ถ์ฅํฉ๋๋ค |
|
|
|
|
|
|
|
|
**FastAPI** ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๊ธฐ ์ํ ์ฃผ์ ์น ์๋ฒ. |
|
|
**FastAPI** ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๊ธฐ ์ํ ์ฃผ์ ์น ์๋ฒ. |
|
|
|
|
|
|
|
|
๋ํ `--workers` ์ปค๋งจ๋๋ผ์ธ ์ต์
์ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ ๋ฉํฐํ๋ก์ธ์ค ์๋ฒ๋ก ์คํํ ์๋ ์์ต๋๋ค. |
|
|
๋ํ `--workers` ๋ช
๋ น์ค ์ต์
์ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ ๋ฉํฐํ๋ก์ธ์ค ์๋ฒ๋ก ์คํํ ์๋ ์์ต๋๋ค. |
|
|
|
|
|
|
|
|
์์ธํ ๋ด์ฉ์ [๋ฐฐํฌ](deployment/index.md) ์น์
์ ํ์ธํ์ธ์. |
|
|
์์ธํ ๋ด์ฉ์ [๋ฐฐํฌ](deployment/index.md) ์น์
์ ํ์ธํ์ธ์. |
|
|
|
|
|
|
|
|
|