--- /dev/null
+# ์ฟ ํค ๋งค๊ฐ๋ณ์ ๋ชจ๋ธ
+
+๊ด๋ จ์๋ **์ฟ ํค**๋ค์ ๊ทธ๋ฃน์ด ์๋ ๊ฒฝ์ฐ, **Pydantic ๋ชจ๋ธ**์ ์์ฑํ์ฌ ์ ์ธํ ์ ์์ต๋๋ค. ๐ช
+
+์ด๋ฅผ ํตํด **์ฌ๋ฌ ์์น**์์ **๋ชจ๋ธ์ ์ฌ์ฌ์ฉ** ํ ์ ์๊ณ ๋ชจ๋ ๋งค๊ฐ๋ณ์์ ๋ํ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํ ๋ฒ์ ์ ์ธํ ์๋ ์์ต๋๋ค. ๐
+
+/// note | ์ฐธ๊ณ
+
+์ด ๊ธฐ๋ฅ์ FastAPI ๋ฒ์ `0.115.0` ์ดํ๋ถํฐ ์ง์๋ฉ๋๋ค. ๐ค
+
+///
+
+/// tip | ํ
+
+๋์ผํ ๊ธฐ์ ์ด `Query`, `Cookie`, ๊ทธ๋ฆฌ๊ณ `Header`์ ์ ์ฉ๋ฉ๋๋ค. ๐
+
+///
+
+## Pydantic ๋ชจ๋ธ์ ์ฌ์ฉํ ์ฟ ํค
+
+**Pydantic ๋ชจ๋ธ**์ ํ์ํ **์ฟ ํค** ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ ๋ค์, ํด๋น ๋งค๊ฐ๋ณ์๋ฅผ `Cookie`๋ก ์ ์ธํฉ๋๋ค:
+
+{* ../../docs_src/cookie_param_models/tutorial001_an_py310.py hl[9:12,16] *}
+
+**FastAPI**๋ ์์ฒญ์์ ๋ฐ์ **์ฟ ํค**์์ **๊ฐ ํ๋**์ ๋ํ ๋ฐ์ดํฐ๋ฅผ **์ถ์ถ**ํ๊ณ ์ ์ํ Pydantic ๋ชจ๋ธ์ ์ค๋๋ค.
+
+## ๋ฌธ์ ํ์ธํ๊ธฐ
+
+๋ฌธ์ UI `/docs`์์ ์ ์ํ ์ฟ ํค๋ฅผ ๋ณผ ์ ์์ต๋๋ค:
+
+<div class="screenshot">
+<img src="/img/tutorial/cookie-param-models/image01.png">
+</div>
+
+/// info | ์ ๋ณด
+
+๋ช
์ฌํ์ธ์, ๋ด๋ถ์ ์ผ๋ก **๋ธ๋ผ์ฐ์ ๋ ์ฟ ํค๋ฅผ ํน๋ณํ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ**ํ๊ธฐ ๋๋ฌธ์ **์๋ฐ์คํฌ๋ฆฝํธ**๊ฐ ์ฝ๊ฒ ์ฟ ํค๋ฅผ ๊ฑด๋๋ฆด ์ **์์ต๋๋ค**.
+
+`/docs`์์ **API ๋ฌธ์ UI**๋ก ์ด๋ํ๋ฉด *๊ฒฝ๋ก ์์
*์ ๋ํ ์ฟ ํค์ **๋ฌธ์**๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
+
+ํ์ง๋ง ์๋ฌด๋ฆฌ **๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ**ํ๊ณ "์คํ(Execute)"์ ํด๋ฆญํด๋, ๋ฌธ์ UI๋ **์๋ฐ์คํฌ๋ฆฝํธ**๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ์ฟ ํค๋ ์ ์ก๋์ง ์๊ณ , ์๋ฌด ๊ฐ๋ ์ฐ์ง ์์ ๊ฒ์ฒ๋ผ **์ค๋ฅ** ๋ฉ์์ง๋ฅผ ๋ณด๊ฒ ๋ฉ๋๋ค.
+
+///
+
+## ์ถ๊ฐ ์ฟ ํค ๊ธ์งํ๊ธฐ
+
+์ผ๋ถ ํน๋ณํ ์ฌ์ฉ ์ฌ๋ก(ํํ์ง๋ ์๊ฒ ์ง๋ง)์์๋ ์์ ํ๋ ค๋ ์ฟ ํค๋ฅผ **์ ํ**ํ ์ ์์ต๋๋ค.
+
+์ด์ API๋ ์์ ์ <abbr title="๋๋ด์
๋๋ค, ํน์๋ ํด์์. ์ฟ ํค ๋์์ ๊ด๋ จํด์ ํ ์ ์๋ ๊ฒ์ ์์ง๋ง, ์ด์ API์กฐ์ฐจ๋ ์๋ชป๋ ์ฟ ํค๋ฅผ ๊ฑฐ๋ถํ ์ ์๋ค๋ ์ ์ด ์ฌ๋ฐ์ต๋๋ค. ์ฟ ํค ๋์ธ์. ๐ช">์ฟ ํค ๋์</abbr>๋ฅผ ์ ์ดํ ์ ์๋ ๊ถํ์ ๊ฐ๊ฒ ๋์์ต๋๋ค. ๐คช๐ช
+
+Pydantic์ ๋ชจ๋ธ ๊ตฌ์ฑ์ ์ฌ์ฉํ์ฌ ์ถ๊ฐ(`extra`) ํ๋๋ฅผ ๊ธ์ง(`forbid`)ํ ์ ์์ต๋๋ค:
+
+{* ../../docs_src/cookie_param_models/tutorial002_an_py39.py hl[10] *}
+
+ํด๋ผ์ด์ธํธ๊ฐ **์ถ๊ฐ ์ฟ ํค**๋ฅผ ๋ณด๋ด๋ ค๊ณ ์๋ํ๋ฉด, **์ค๋ฅ** ์๋ต์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
+
+<abbr title="์ด๊ฑด ๋ ๋ค๋ฅธ ๋๋ด์
๋๋ค. ์ ๋ง์ ๊ท ๊ธฐ์ธ์ด์ง ๋ง์ธ์. ์ปคํผ๋ ์ฟ ํค ์ข ๋์ธ์. โ">API๊ฐ ๊ฑฐ๋ถ</abbr>ํ๋๋ฐ๋ ๋์๋ฅผ ์ป๊ธฐ ์ํด ์ ์ฐ๋ ๋ถ์ํ ์ฟ ํค ๋ฐฐ๋(ํ์
)๋ค. ๐ช
+
+์๋ฅผ ๋ค์ด, ํด๋ผ์ด์ธํธ๊ฐ `good-list-please` ๊ฐ์ผ๋ก `santa_tracker` ์ฟ ํค๋ฅผ ๋ณด๋ด๋ ค๊ณ ํ๋ฉด ํด๋ผ์ด์ธํธ๋ `santa_tracker` <abbr title="์ฐํ๋ ์ฟ ํค๊ฐ ๋ถ์กฑํ ๊ฒ์ ๋ชป๋ง๋
ํดํฉ๋๋ค. ๐
์๊ฒ ์ต๋๋ค, ์ฟ ํค ๋๋ด์ ์ด์ ์์ต๋๋ค.">์ฟ ํค๊ฐ ํ์ฉ๋์ง ์๋๋ค</abbr>๋ **์ค๋ฅ** ์๋ต์ ๋ฐ๊ฒ ๋ฉ๋๋ค:
+
+```json
+{
+ "detail": [
+ {
+ "type": "extra_forbidden",
+ "loc": ["cookie", "santa_tracker"],
+ "msg": "Extra inputs are not permitted",
+ "input": "good-list-please",
+ }
+ ]
+}
+```
+
+## ์์ฝ
+
+**Pydantic ๋ชจ๋ธ**์ ์ฌ์ฉํ์ฌ **FastAPI**์์ <abbr title="๊ฐ๊ธฐ ์ ์ ๋ง์ง๋ง ์ฟ ํค๋ฅผ ๋์ธ์. ๐ช">**์ฟ ํค**</abbr>๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค. ๐