]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
๐ŸŒ Add Korean translation for `docs/ko/docs/tutorial/body-multiple-params.md` (#2461)
authorDahun Jeong <gnsgnsek@gmail.com>
Mon, 22 Jan 2024 19:37:52 +0000 (04:37 +0900)
committerGitHub <noreply@github.com>
Mon, 22 Jan 2024 19:37:52 +0000 (14:37 -0500)
docs/ko/docs/tutorial/body-multiple-params.md [new file with mode: 0644]

diff --git a/docs/ko/docs/tutorial/body-multiple-params.md b/docs/ko/docs/tutorial/body-multiple-params.md
new file mode 100644 (file)
index 0000000..034c2e8
--- /dev/null
@@ -0,0 +1,170 @@
+# ๋ณธ๋ฌธ - ๋‹ค์ค‘ ๋งค๊ฐœ๋ณ€์ˆ˜
+
+์ง€๊ธˆ๋ถ€ํ„ฐ `Path`์™€ `Query`๋ฅผ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
+
+์š”์ฒญ ๋ณธ๋ฌธ ์„ ์–ธ์— ๋Œ€ํ•œ ์‹ฌํ™” ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.
+
+## `Path`, `Query` ๋ฐ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜ ํ˜ผํ•ฉ
+
+๋‹น์—ฐํ•˜๊ฒŒ `Path`, `Query` ๋ฐ ์š”์ฒญ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ์„ ์ž์œ ๋กญ๊ฒŒ ํ˜ผํ•ฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , **FastAPI**๋Š” ์–ด๋–ค ๋™์ž‘์„ ํ• ์ง€ ์••๋‹ˆ๋‹ค.
+
+๋˜ํ•œ, ๊ธฐ๋ณธ ๊ฐ’์„ `None`์œผ๋กœ ์„ค์ •ํ•ด ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํƒ์‚ฌํ•ญ์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
+
+```Python hl_lines="19-21"
+{!../../../docs_src/body_multiple_params/tutorial001.py!}
+```
+
+!!! note "์ฐธ๊ณ "
+    ์ด ๊ฒฝ์šฐ์—๋Š” ๋ณธ๋ฌธ์œผ๋กœ ๋ถ€ํ„ฐ ๊ฐ€์ ธ์˜จ `   item`์€ ๊ธฐ๋ณธ๊ฐ’์ด `None`์ด๊ธฐ ๋•Œ๋ฌธ์—, ์„ ํƒ์‚ฌํ•ญ์ด๋ผ๋Š” ์ ์„ ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
+
+## ๋‹ค์ค‘ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜
+
+์ด์ „ ์˜ˆ์ œ์—์„œ ๋ณด๋“ฏ์ด, *๊ฒฝ๋กœ ๋™์ž‘*์€ ์•„๋ž˜์™€ ๊ฐ™์ด `Item` ์†์„ฑ์„ ๊ฐ€์ง„ JSON ๋ณธ๋ฌธ์„ ์˜ˆ์ƒํ•ฉ๋‹ˆ๋‹ค:
+
+```JSON
+{
+    "name": "Foo",
+    "description": "The pretender",
+    "price": 42.0,
+    "tax": 3.2
+}
+```
+
+ํ•˜์ง€๋งŒ, ๋‹ค์ค‘ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—ญ์‹œ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ. `item`๊ณผ `user`:
+
+```Python hl_lines="22"
+{!../../../docs_src/body_multiple_params/tutorial002.py!}
+```
+
+์ด ๊ฒฝ์šฐ์—, **FastAPI**๋Š” ์ด ํ•จ์ˆ˜ ์•ˆ์— ํ•œ ๊ฐœ ์ด์ƒ์˜ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜(Pydantic ๋ชจ๋ธ์ธ ๋‘ ๋งค๊ฐœ๋ณ€์ˆ˜)๊ฐ€ ์žˆ๋‹ค๊ณ  ์•Œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
+
+๊ทธ๋ž˜์„œ, ๋ณธ๋ฌธ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ํ‚ค(ํ•„๋“œ ๋ช…)๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ณธ๋ฌธ์„ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค:
+
+```JSON
+{
+    "item": {
+        "name": "Foo",
+        "description": "The pretender",
+        "price": 42.0,
+        "tax": 3.2
+    },
+    "user": {
+        "username": "dave",
+        "full_name": "Dave Grohl"
+    }
+}
+```
+
+!!! note "์ฐธ๊ณ "
+    ์ด์ „๊ณผ ๊ฐ™์ด `item`์ด ์„ ์–ธ ๋˜์—ˆ๋”๋ผ๋„, ๋ณธ๋ฌธ ๋‚ด์˜ `item` ํ‚ค๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.
+
+FastAPI๋Š” ์š”์ฒญ์„ ์ž๋™์œผ๋กœ ๋ณ€ํ™˜ํ•ด, ๋งค๊ฐœ๋ณ€์ˆ˜์˜ `item`๊ณผ `user`๋ฅผ ํŠน๋ณ„ํ•œ ๋‚ด์šฉ์œผ๋กœ ๋ฐ›๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
+
+๋ณตํ•ฉ ๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜๊ณ  OpenAPI ์Šคํ‚ค๋งˆ ๋ฐ ์ž๋™ ๋ฌธ์„œ๋ฅผ ๋ฌธ์„œํ™”ํ•ฉ๋‹ˆ๋‹ค.
+
+## ๋ณธ๋ฌธ ๋‚ด์˜ ๋‹จ์ผ ๊ฐ’
+
+์ฟผ๋ฆฌ ๋ฐ ๊ฒฝ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๋Š” `Query`์™€ `Path`์™€ ๊ฐ™์ด, **FastAPI**๋Š” ๋™๋“ฑํ•œ `Body`๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
+
+์˜ˆ๋ฅผ ๋“ค์–ด ์ด์ „์˜ ๋ชจ๋ธ์„ ํ™•์žฅํ•˜๋ฉด, `item`๊ณผ `user`์™€ ๋™์ผํ•œ ๋ณธ๋ฌธ์— ๋˜ ๋‹ค๋ฅธ `importance`๋ผ๋Š” ํ‚ค๋ฅผ ๊ฐ–๋„๋ก ํ•  ์ˆ˜์žˆ์Šต๋‹ˆ๋‹ค.
+
+๋‹จ์ผ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์„ ์–ธํ•œ๋‹ค๋ฉด, **FastAPI**๋Š” ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ฐ€์ •ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
+
+ํ•˜์ง€๋งŒ, **FastAPI**์˜ `Body`๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค๋ฅธ ๋ณธ๋ฌธ ํ‚ค๋กœ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
+
+
+```Python hl_lines="23"
+{!../../../docs_src/body_multiple_params/tutorial003.py!}
+```
+
+์ด ๊ฒฝ์šฐ์—๋Š” **FastAPI**๋Š” ๋ณธ๋ฌธ์„ ์ด์™€ ๊ฐ™์ด ์˜ˆ์ธกํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค:
+
+
+```JSON
+{
+    "item": {
+        "name": "Foo",
+        "description": "The pretender",
+        "price": 42.0,
+        "tax": 3.2
+    },
+    "user": {
+        "username": "dave",
+        "full_name": "Dave Grohl"
+    },
+    "importance": 5
+}
+```
+
+๋‹ค์‹œ ๋งํ•ด, ๋ฐ์ดํ„ฐ ํƒ€์ž…, ๊ฒ€์ฆ, ๋ฌธ์„œ ๋“ฑ์„ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
+
+## ๋‹ค์ค‘ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ฟผ๋ฆฌ
+
+๋‹น์—ฐํžˆ, ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์ถ”๊ฐ€์ ์ธ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๊ณ , ์ด๋Š” ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.
+
+๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹จ์ผ ๊ฐ’์€ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํ•ด์„๋˜๋ฏ€๋กœ, ๋ช…์‹œ์ ์œผ๋กœ `Query`๋ฅผ ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , ์•„๋ž˜์ฒ˜๋Ÿผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
+
+```Python hl_lines="27"
+{!../../../docs_src/body_multiple_params/tutorial004.py!}
+```
+
+์ด๋ ‡๊ฒŒ:
+
+```Python
+q: Optional[str] = None
+```
+
+!!! info "์ •๋ณด"
+    `Body` ๋˜ํ•œ `Query`, `Path` ๊ทธ๋ฆฌ๊ณ  ์ดํ›„์— ๋ณผ ๋‹ค๋ฅธ ๊ฒƒ๋“ค์ฒ˜๋Ÿผ ๋™์ผํ•œ ์ถ”๊ฐ€ ๊ฒ€์ฆ๊ณผ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
+
+## ๋‹จ์ผ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜ ์‚ฝ์ž…ํ•˜๊ธฐ
+
+Pydantic ๋ชจ๋ธ `Item`์˜ `item`์„ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์˜ค์ง ํ•œ๊ฐœ๋งŒ ๊ฐ–๊ณ ์žˆ๋‹ค๊ณ  ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.
+
+๊ธฐ๋ณธ์ ์œผ๋กœ **FastAPI**๋Š” ์ง์ ‘ ๋ณธ๋ฌธ์œผ๋กœ ์˜ˆ์ธกํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
+
+ํ•˜์ง€๋งŒ, ๋งŒ์•ฝ ๋ชจ๋ธ ๋‚ด์šฉ์— `item `ํ‚ค๋ฅผ ๊ฐ€์ง„ JSON์œผ๋กœ ์˜ˆ์ธกํ•˜๊ธธ ์›ํ•œ๋‹ค๋ฉด, ์ถ”๊ฐ€์ ์ธ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ ๊ฒƒ์ฒ˜๋Ÿผ `Body`์˜ ํŠน๋ณ„ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜์ธ `embed`๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
+
+```Python hl_lines="17"
+{!../../../docs_src/body_multiple_params/tutorial005.py!}
+```
+
+์•„๋ž˜ ์ฒ˜๋Ÿผ:
+
+```Python
+item: Item = Body(..., embed=True)
+```
+
+์ด ๊ฒฝ์šฐ์— **FastAPI**๋Š” ๋ณธ๋ฌธ์„ ์•„๋ž˜ ๋Œ€์‹ ์—:
+
+```JSON hl_lines="2"
+{
+    "name": "Foo",
+    "description": "The pretender",
+    "price": 42.0,
+    "tax": 3.2
+}
+```
+
+์•„๋ž˜ ์ฒ˜๋Ÿผ ์˜ˆ์ธกํ•  ๊ฒƒ ์ž…๋‹ˆ๋‹ค:
+
+```JSON
+{
+    "item": {
+        "name": "Foo",
+        "description": "The pretender",
+        "price": 42.0,
+        "tax": 3.2
+    }
+}
+```
+
+## ์ •๋ฆฌ
+
+์š”์ฒญ์ด ๋‹จ ํ•œ๊ฐœ์˜ ๋ณธ๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋”๋ผ๋„, *๊ฒฝ๋กœ ๋™์ž‘ ํ•จ์ˆ˜*๋กœ ๋‹ค์ค‘ ๋ณธ๋ฌธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
+
+ํ•˜์ง€๋งŒ, **FastAPI**๋Š” ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , ํ•จ์ˆ˜์— ์˜ฌ๋ฐ”๋ฅธ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, *๊ฒฝ๋กœ\1c ๋™์ž‘*์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ์Šคํ‚ค๋งˆ๋ฅผ ๊ฒ€์ฆํ•˜๊ณ  ๋ฌธ์„œํ™” ํ•ฉ๋‹ˆ๋‹ค\1c.
+
+๋˜ํ•œ, ๋‹จ์ผ ๊ฐ’์„ ๋ณธ๋ฌธ์˜ ์ผ๋ถ€๋กœ ๋ฐ›๋„๋ก ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
+
+๊ทธ๋ฆฌ๊ณ  **FastAPI**๋Š” ๋‹จ ํ•œ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์„ ์–ธ ๋˜๋”๋ผ๋„, ๋ณธ๋ฌธ ๋‚ด์˜ ํ‚ค๋กœ ์‚ฝ์ž… ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.