-
-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
๐ Add Korean translation for `docs/ko/docs/tutorial/query-params-str-โฆ
โฆvalidations.md` (#2415)
- Loading branch information
1 parent
eea7635
commit 87a4c9e
Showing
1 changed file
with
303 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,303 @@ | ||
# ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์์ ๋ฌธ์์ด ๊ฒ์ฆ | ||
|
||
**FastAPI**๋ฅผ ์ฌ์ฉํ๋ฉด ๋งค๊ฐ๋ณ์์ ๋ํ ์ถ๊ฐ ์ ๋ณด ๋ฐ ๊ฒ์ฆ์ ์ ์ธํ ์ ์์ต๋๋ค. | ||
|
||
์ด ์์ฉ ํ๋ก๊ทธ๋จ์ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค: | ||
|
||
```Python hl_lines="9" | ||
{!../../../docs_src/query_params_str_validations/tutorial001.py!} | ||
``` | ||
|
||
์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ `q`๋ `Optional[str]` ์๋ฃํ์ ๋๋ค. ์ฆ, `str` ์๋ฃํ์ด์ง๋ง `None` ์ญ์ ๋ ์ ์์์ ๋ปํ๊ณ , ์ค์ ๋ก ๊ธฐ๋ณธ๊ฐ์ `None`์ด๊ธฐ ๋๋ฌธ์ FastAPI๋ ์ด ๋งค๊ฐ๋ณ์๊ฐ ํ์๊ฐ ์๋๋ผ๋ ๊ฒ์ ์๋๋ค. | ||
|
||
!!! note "์ฐธ๊ณ " | ||
FastAPI๋ `q`์ ๊ธฐ๋ณธ๊ฐ์ด `= None`์ด๊ธฐ ๋๋ฌธ์ ํ์๊ฐ ์๋์ ์๋๋ค. | ||
|
||
`Optional[str]`์ ์๋ `Optional`์ FastAPI๊ฐ ์ฌ์ฉํ๋๊ฒ ์๋์ง๋ง, ํธ์ง๊ธฐ์๊ฒ ๋ ๋์ ์ง์๊ณผ ์ค๋ฅ ํ์ง๋ฅผ ์ ๊ณตํ๊ฒ ํด์ค๋๋ค. | ||
|
||
## ์ถ๊ฐ ๊ฒ์ฆ | ||
|
||
`q`๊ฐ ์ ํ์ ์ด์ง๋ง ๊ฐ์ด ์ฃผ์ด์ง ๋๋ง๋ค **๊ฐ์ด 50 ๊ธ์๋ฅผ ์ด๊ณผํ์ง ์๊ฒ** ๊ฐ์ ํ๋ ค ํฉ๋๋ค. | ||
|
||
### `Query` ์ํฌํธ | ||
|
||
์ด๋ฅผ ์ํด ๋จผ์ `fastapi`์์ `Query`๋ฅผ ์ํฌํธํฉ๋๋ค: | ||
|
||
```Python hl_lines="3" | ||
{!../../../docs_src/query_params_str_validations/tutorial002.py!} | ||
``` | ||
|
||
## ๊ธฐ๋ณธ๊ฐ์ผ๋ก `Query` ์ฌ์ฉ | ||
|
||
์ด์ `Query`๋ฅผ ๋งค๊ฐ๋ณ์์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ์ฌ `max_length` ๋งค๊ฐ๋ณ์๋ฅผ 50์ผ๋ก ์ค์ ํฉ๋๋ค: | ||
|
||
```Python hl_lines="9" | ||
{!../../../docs_src/query_params_str_validations/tutorial002.py!} | ||
``` | ||
|
||
๊ธฐ๋ณธ๊ฐ `None`์ `Query(None)`์ผ๋ก ๋ฐ๊ฟ์ผ ํ๋ฏ๋ก, `Query`์ ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ ๊ธฐ๋ณธ๊ฐ์ ์ ์ํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. | ||
|
||
๊ทธ๋ฌ๋ฏ๋ก: | ||
|
||
```Python | ||
q: Optional[str] = Query(None) | ||
``` | ||
|
||
...์ ์ฝ๋๋ ์๋์ ๋์ผํ๊ฒ ๋งค๊ฐ๋ณ์๋ฅผ ์ ํ์ ์ผ๋ก ๋ง๋ญ๋๋ค: | ||
|
||
```Python | ||
q: Optional[str] = None | ||
``` | ||
|
||
ํ์ง๋ง ๋ช ์์ ์ผ๋ก ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํฉ๋๋ค. | ||
|
||
!!! info "์ ๋ณด" | ||
FastAPI๋ ๋ค์ ๋ถ๋ถ์ ๊ด์ฌ์ด ์์ต๋๋ค: | ||
|
||
```Python | ||
= None | ||
``` | ||
|
||
๋๋: | ||
|
||
```Python | ||
= Query(None) | ||
``` | ||
|
||
๊ทธ๋ฆฌ๊ณ `None`์ ์ฌ์ฉํ์ฌ ์ฟผ๋ผ ๋งค๊ฐ๋ณ์๊ฐ ํ์์ ์ด์ง ์๋ค๋ ๊ฒ์ ํ์ ํฉ๋๋ค. | ||
|
||
`Optional` ๋ถ๋ถ์ ํธ์ง๊ธฐ์๊ฒ ๋ ๋์ ์ง์์ ์ ๊ณตํ๊ธฐ ์ํด์๋ง ์ฌ์ฉ๋ฉ๋๋ค. | ||
|
||
๋ํ `Query`๋ก ๋ ๋ง์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. ์ง๊ธ์ ๊ฒฝ์ฐ ๋ฌธ์์ด์ ์ ์ฉ๋๋ `max_length` ๋งค๊ฐ๋ณ์์ ๋๋ค: | ||
|
||
```Python | ||
q: str = Query(None, max_length=50) | ||
``` | ||
|
||
์ด๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํ ๊ฒ์ด๊ณ , ๋ฐ์ดํฐ๊ฐ ์ ํจํ์ง ์๋ค๋ฉด ๋ช ๋ฐฑํ ์ค๋ฅ๋ฅผ ๋ณด์ฌ์ฃผ๋ฉฐ, OpenAPI ์คํค๋ง *๊ฒฝ๋ก ๋์*์ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฌธ์ํ ํฉ๋๋ค. | ||
|
||
## ๊ฒ์ฆ ์ถ๊ฐ | ||
|
||
๋งค๊ฐ๋ณ์ `min_length` ๋ํ ์ถ๊ฐํ ์ ์์ต๋๋ค: | ||
|
||
```Python hl_lines="9" | ||
{!../../../docs_src/query_params_str_validations/tutorial003.py!} | ||
``` | ||
|
||
## ์ ๊ท์ ์ถ๊ฐ | ||
|
||
๋งค๊ฐ๋ณ์์ ์ผ์นํด์ผ ํ๋ <abbr title="์ ๊ทํํ์(regular expression), regex ๋๋ regexp๋ ๋ฌธ์์ด ์กฐํ ํจํด์ ์ ์ํ๋ ๋ฌธ์๋ค์ ์์ด์ ๋๋ค">์ ๊ทํํ์</abbr>์ ์ ์ํ ์ ์์ต๋๋ค: | ||
|
||
```Python hl_lines="10" | ||
{!../../../docs_src/query_params_str_validations/tutorial004.py!} | ||
``` | ||
|
||
์ด ํน์ ์ ๊ทํํ์์ ์ ๋ฌ ๋ฐ์ ๋งค๊ฐ๋ณ์ ๊ฐ์ ๊ฒ์ฌํฉ๋๋ค: | ||
|
||
* `^`: ์ด์ ์ ๋ฌธ์๊ฐ ์๊ณ ๋ค๋ฐ๋ฅด๋ ๋ฌธ์๋ก ์์ํฉ๋๋ค. | ||
* `fixedquery`: ์ ํํ `fixedquery` ๊ฐ์ ๊ฐ์ต๋๋ค. | ||
* `$`: ์ฌ๊ธฐ์ ๋๋๊ณ `fixedquery` ์ดํ๋ก ์๋ฌด ๋ฌธ์๋ ๊ฐ์ง ์์ต๋๋ค. | ||
|
||
**"์ ๊ทํํ์"** ๊ฐ๋ ์ ๋ํด ์์ค๊ฐ์ ๋๊ผ๋ค๋ฉด ๊ฑฑ์ ํ์ง ์์๋ ๋ฉ๋๋ค. ๋ง์ ์ฌ๋์๊ฒ ์ด๋ ค์ด ์ฃผ์ ์ ๋๋ค. ์์ง์ ์ ๊ทํํ์ ์์ด๋ ๋ง์ ์์ ๋ค์ ํ ์ ์์ต๋๋ค. | ||
|
||
ํ์ง๋ง ์ธ์ ๋ ์ง ๊ฐ์ ๋ฐฐ์ธ์ ์๊ณ , **FastAPI**์์ ์ง์ ์ฌ์ฉํ ์ ์๋ค๋ ์ฌ์ค์ ์๊ณ ์์ด์ผ ํฉ๋๋ค. | ||
|
||
## ๊ธฐ๋ณธ๊ฐ | ||
|
||
๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ฉํ๋ ์ฒซ ๋ฒ์งธ ์ธ์๋ก `None`์ ์ ๋ฌํ๋ฏ์ด, ๋ค๋ฅธ ๊ฐ์ ์ ๋ฌํ ์ ์์ต๋๋ค. | ||
|
||
`min_length`๊ฐ `3`์ด๊ณ , ๊ธฐ๋ณธ๊ฐ์ด `"fixedquery"`์ธ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ `q`๋ฅผ ์ ์ธํด๋ด ์๋ค: | ||
|
||
```Python hl_lines="7" | ||
{!../../../docs_src/query_params_str_validations/tutorial005.py!} | ||
``` | ||
|
||
!!! note "์ฐธ๊ณ " | ||
๊ธฐ๋ณธ๊ฐ์ ๊ฐ๋ ๊ฒ๋ง์ผ๋ก ๋งค๊ฐ๋ณ์๋ ์ ํ์ ์ด ๋ฉ๋๋ค. | ||
|
||
## ํ์๋ก ๋ง๋ค๊ธฐ | ||
|
||
๋ ๋ง์ ๊ฒ์ฆ์ด๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ธํ ํ์๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ด ๊ธฐ๋ณธ๊ฐ์ ์ ์ธํ์ง ์๊ณ ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ `q`๋ฅผ ํ์๋ก ๋ง๋ค ์ ์์ต๋๋ค: | ||
|
||
```Python | ||
q: str | ||
``` | ||
|
||
์๋ ๋์ : | ||
|
||
```Python | ||
q: Optional[str] = None | ||
``` | ||
|
||
๊ทธ๋ฌ๋ ์ด์ ๋ค์๊ณผ ๊ฐ์ด `Query`๋ก ์ ์ธํฉ๋๋ค: | ||
|
||
```Python | ||
q: Optional[str] = Query(None, min_length=3) | ||
``` | ||
|
||
๊ทธ๋์ `Query`๋ฅผ ํ์๊ฐ์ผ๋ก ๋ง๋ค์ด์ผ ํ ๋๋ฉด, ์ฒซ ๋ฒ์งธ ์ธ์๋ก `...`๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค: | ||
|
||
```Python hl_lines="7" | ||
{!../../../docs_src/query_params_str_validations/tutorial006.py!} | ||
``` | ||
|
||
!!! info "์ ๋ณด" | ||
์ด์ ์ `...`๋ฅผ ๋ณธ์ ์ด ์๋ค๋ฉด: ํน๋ณํ ๋จ์ผ๊ฐ์ผ๋ก, <a href="https://docs.python.org/3/library/constants.html#Ellipsis" class="external-link" target="_blank">ํ์ด์ฌ์ ์ผ๋ถ์ด๋ฉฐ "Ellipsis"๋ผ ๋ถ๋ฆ ๋๋ค</a>. | ||
|
||
์ด๋ ๊ฒ ํ๋ฉด **FastAPI**๊ฐ ์ด ๋งค๊ฐ๋ณ์๋ ํ์์์ ์ ์ ์์ต๋๋ค. | ||
|
||
## ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ ๋ฆฌ์คํธ / ๋ค์ค๊ฐ | ||
|
||
์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ `Query`์ ํจ๊ป ๋ช ์์ ์ผ๋ก ์ ์ธํ ๋, ๊ฐ๋ค์ ๋ฆฌ์คํธ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ๋ฐ๋๋ก ์ ์ธ ํ ์๋ ์์ต๋๋ค. | ||
|
||
์๋ฅผ ๋ค์ด, URL์์ ์ฌ๋ฌ๋ฒ ๋์ค๋ `q` ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค: | ||
|
||
```Python hl_lines="9" | ||
{!../../../docs_src/query_params_str_validations/tutorial011.py!} | ||
``` | ||
|
||
์๋์ ๊ฐ์ URL์ ์ฌ์ฉํฉ๋๋ค: | ||
|
||
``` | ||
http://localhost:8000/items/?q=foo&q=bar | ||
``` | ||
|
||
์ฌ๋ฌ `q` *์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์* ๊ฐ๋ค์ (`foo` ๋ฐ `bar`) ํ์ด์ฌ `list`๋ก *๊ฒฝ๋ก ์๋ ํจ์* ๋ด *ํจ์ ๋งค๊ฐ๋ณ์* `q`๋ก ์ ๋ฌ ๋ฐ์ต๋๋ค. | ||
|
||
๋ฐ๋ผ์ ํด๋น URL์ ๋ํ ์๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค: | ||
|
||
```JSON | ||
{ | ||
"q": [ | ||
"foo", | ||
"bar" | ||
] | ||
} | ||
``` | ||
|
||
!!! tip "ํ" | ||
์์ ์์ ๊ฐ์ด `list` ์๋ฃํ์ผ๋ก ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์๋ฅผ ์ ์ธํ๋ ค๋ฉด `Query`๋ฅผ ๋ช ์์ ์ผ๋ก ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์ฒญ ๋ณธ๋ฌธ์ผ๋ก ํด์๋ฉ๋๋ค. | ||
|
||
๋ํํ API ๋ฌธ์๋ ์ฌ๋ฌ ๊ฐ์ ํ์ฉํ๋๋ก ์์ ๋ฉ๋๋ค: | ||
|
||
<img src="/img/tutorial/query-params-str-validations/image02.png"> | ||
|
||
### ์ฟผ๋ฆฌ ๋งค๊ฐ๋ณ์ ๋ฆฌ์คํธ / ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ฉํ๋ ๋ค์ค๊ฐ | ||
|
||
๊ทธ๋ฆฌ๊ณ ์ ๊ณต๋ ๊ฐ์ด ์์ผ๋ฉด ๊ธฐ๋ณธ `list` ๊ฐ์ ์ ์ํ ์๋ ์์ต๋๋ค: | ||
|
||
```Python hl_lines="9" | ||
{!../../../docs_src/query_params_str_validations/tutorial012.py!} | ||
``` | ||
|
||
์๋๋ก ์ด๋ํ๋ค๋ฉด: | ||
|
||
``` | ||
http://localhost:8000/items/ | ||
``` | ||
|
||
`q`์ ๊ธฐ๋ณธ๊ฐ์: `["foo", "bar"]`์ด๋ฉฐ ์๋ต์ ๋ค์์ด ๋ฉ๋๋ค: | ||
|
||
```JSON | ||
{ | ||
"q": [ | ||
"foo", | ||
"bar" | ||
] | ||
} | ||
``` | ||
|
||
#### `list` ์ฌ์ฉํ๊ธฐ | ||
|
||
`List[str]` ๋์ `list`๋ฅผ ์ง์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค: | ||
|
||
```Python hl_lines="7" | ||
{!../../../docs_src/query_params_str_validations/tutorial013.py!} | ||
``` | ||
|
||
!!! note "์ฐธ๊ณ " | ||
์ด ๊ฒฝ์ฐ FastAPI๋ ๋ฆฌ์คํธ์ ๋ด์ฉ์ ๊ฒ์ฌํ์ง ์์์ ๋ช ์ฌํ๊ธฐ ๋ฐ๋๋๋ค. | ||
|
||
์๋ฅผ ๋ค์ด, `List[int]`๋ ๋ฆฌ์คํธ ๋ด์ฉ์ด ์ ์์ธ์ง ๊ฒ์ฌ(๋ฐ ๋ฌธ์ํ)ํฉ๋๋ค. ํ์ง๋ง `list` ๋จ๋ ์ผ ๊ฒฝ์ฐ๋ ์๋๋๋ค. | ||
|
||
## ๋ ๋ง์ ๋ฉํ๋ฐ์ดํฐ ์ ์ธ | ||
|
||
๋งค๊ฐ๋ณ์์ ๋ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. | ||
|
||
ํด๋น ์ ๋ณด๋ ์์ฑ๋ OpenAPI์ ํฌํจ๋๊ณ ๋ฌธ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ฐ ์ธ๋ถ ๋๊ตฌ์์ ์ฌ์ฉ๋ฉ๋๋ค. | ||
|
||
!!! note "์ฐธ๊ณ " | ||
๋๊ตฌ์ ๋ฐ๋ผ OpenAPI ์ง์ ์์ค์ด ๋ค๋ฅผ ์ ์์์ ๋ช ์ฌํ๊ธฐ ๋ฐ๋๋๋ค. | ||
|
||
์ผ๋ถ๋ ์์ง ์ ์ธ๋ ์ถ๊ฐ ์ ๋ณด๋ฅผ ๋ชจ๋ ํ์ํ์ง ์์ ์ ์์ง๋ง, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ์ด๋ฏธ ๊ฐ๋ฐ ๊ณํ์ด ์์ต๋๋ค. | ||
|
||
`title`์ ์ถ๊ฐํ ์ ์์ต๋๋ค: | ||
|
||
```Python hl_lines="10" | ||
{!../../../docs_src/query_params_str_validations/tutorial007.py!} | ||
``` | ||
|
||
๊ทธ๋ฆฌ๊ณ `description`๋ ์ถ๊ฐํ ์ ์์ต๋๋ค: | ||
|
||
```Python hl_lines="13" | ||
{!../../../docs_src/query_params_str_validations/tutorial008.py!} | ||
``` | ||
|
||
## ๋ณ์นญ ๋งค๊ฐ๋ณ์ | ||
|
||
๋งค๊ฐ๋ณ์๊ฐ `item-query`์ด๊ธธ ์ํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. | ||
|
||
๋ง์น ๋ค์๊ณผ ๊ฐ์ต๋๋ค: | ||
|
||
``` | ||
http://127.0.0.1:8000/items/?item-query=foobaritems | ||
``` | ||
|
||
๊ทธ๋ฌ๋ `item-query`์ ์ ํจํ ํ์ด์ฌ ๋ณ์ ์ด๋ฆ์ด ์๋๋๋ค. | ||
|
||
๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ `item_query`์ผ ๊ฒ๋๋ค. | ||
|
||
ํ์ง๋ง ์ ํํ`item-query`์ด๊ธธ ์ํฉ๋๋ค... | ||
|
||
์ด๋ด ๊ฒฝ์ฐ `alias`๋ฅผ ์ ์ธํ ์ ์์ผ๋ฉฐ, ํด๋น ๋ณ์นญ์ ๋งค๊ฐ๋ณ์ ๊ฐ์ ์ฐพ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค: | ||
|
||
```Python hl_lines="9" | ||
{!../../../docs_src/query_params_str_validations/tutorial009.py!} | ||
``` | ||
|
||
## ๋งค๊ฐ๋ณ์ ์ฌ์ฉํ์ง ์๊ฒ ํ๊ธฐ | ||
|
||
์ด์ ๋ ๋์ด์ ์ด ๋งค๊ฐ๋ณ์๋ฅผ ๋ง์์ ๋ค์ดํ์ง ์๋๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. | ||
|
||
์ด ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ํด๋ผ์ด์ธํธ๊ฐ ์๊ธฐ ๋๋ฌธ์ ํ๋์์ ๋จ๊ฒจ๋ฌ์ผ ํ์ง๋ง, <abbr title="๊ตฌ์์ด๋ฉฐ, ์ฌ์ฉํ์ง ์๋ ๊ฒ์ ์ถ์ฒ">์ฌ์ฉ๋์ง ์๋๋ค(deprecated)</abbr>๊ณ ํ์คํ๊ฒ ๋ฌธ์์์ ๋ณด์ฌ์ฃผ๊ณ ์ถ์ต๋๋ค. | ||
|
||
๊ทธ๋ ๋ค๋ฉด `deprecated=True` ๋งค๊ฐ๋ณ์๋ฅผ `Query`๋ก ์ ๋ฌํฉ๋๋ค: | ||
|
||
```Python hl_lines="18" | ||
{!../../../docs_src/query_params_str_validations/tutorial010.py!} | ||
``` | ||
|
||
๋ฌธ์๊ฐ ์๋์ ๊ฐ์ด ๋ณด์ผ๊ฒ๋๋ค: | ||
|
||
<img src="/img/tutorial/query-params-str-validations/image01.png"> | ||
|
||
## ์์ฝ | ||
|
||
๋งค๊ฐ๋ณ์์ ๊ฒ์ฆ๊ณผ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ ์ ์ธํ ์ ์์ต๋๋ค. | ||
|
||
์ ๋ค๋ฆญ ๊ฒ์ฆ๊ณผ ๋ฉํ๋ฐ์ดํฐ: | ||
|
||
* `alias` | ||
* `title` | ||
* `description` | ||
* `deprecated` | ||
|
||
ํน์ ๋ฌธ์์ด ๊ฒ์ฆ: | ||
|
||
* `min_length` | ||
* `max_length` | ||
* `regex` | ||
|
||
์์ ์์ `str` ๊ฐ์ ๊ฒ์ฆ์ ์ด๋ป๊ฒ ์ถ๊ฐํ๋์ง ์ดํด๋ณด์์ต๋๋ค. | ||
|
||
์ซ์์ ๊ฐ์ ๋ค๋ฅธ ์๋ฃํ์ ๋ํ ๊ฒ์ฆ์ ์ด๋ป๊ฒ ์ ์ธํ๋์ง ํ์ธํ๋ ค๋ฉด ๋ค์ ์ฅ์ ํ์ธํ๊ธฐ ๋ฐ๋๋๋ค. |