]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Korean translation for `docs/ko/docs/tutorial/dependencies/index.md` (#10989)
authorKani Kim <kkh5428@gmail.com>
Sat, 27 Jan 2024 09:12:44 +0000 (18:12 +0900)
committerGitHub <noreply@github.com>
Sat, 27 Jan 2024 09:12:44 +0000 (04:12 -0500)
docs/ko/docs/tutorial/dependencies/index.md [new file with mode: 0644]

diff --git a/docs/ko/docs/tutorial/dependencies/index.md b/docs/ko/docs/tutorial/dependencies/index.md
new file mode 100644 (file)
index 0000000..d5d1138
--- /dev/null
@@ -0,0 +1,353 @@
+# μ˜μ‘΄μ„±
+
+**FastAPI**λŠ” μ•„μ£Ό κ°•λ ₯ν•˜μ§€λ§Œ μ§κ΄€μ μΈ **<abbr title="μ»΄ν¬λ„ŒνŠΈ, μžμ›, μ œκ³΅μž, μ„œλΉ„μŠ€, μΈμ ν„°λΈ”λ‘œ μ•Œλ €μ Έ μžˆμŠ΅λ‹ˆλ‹€">μ˜μ‘΄μ„± μ£Όμž…</abbr>** μ‹œμŠ€ν…œμ„ κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.
+
+μ΄λŠ” μ‚¬μš©ν•˜κΈ° μ•„μ£Ό μ‰½κ²Œ μ„€κ³„ν–ˆμœΌλ©°, μ–΄λА κ°œλ°œμžλ‚˜ λ‹€λ₯Έ μ»΄ν¬λ„ŒνŠΈμ™€ **FastAPI**λ₯Ό μ‰½κ²Œ ν†΅ν•©ν•  μˆ˜ μžˆλ„둝 λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.
+
+## "μ˜μ‘΄μ„± μ£Όμž…"은 λ¬΄μ—‡μž…λ‹ˆκΉŒ?
+
+**"μ˜μ‘΄μ„± μ£Όμž…"**은 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ—¬λŸ¬λΆ„μ˜ μ½”λ“œ(이 κ²½μš°, κ²½λ‘œ λ™μž‘ ν•¨μˆ˜)κ°€ μž‘λ™ν•˜κ³  μ‚¬μš©ν•˜λŠ” λ° ν•„μš”λ‘œ ν•˜λŠ” κ²ƒ, μ¦‰ "μ˜μ‘΄μ„±"을 μ„ μ–Έν•  μˆ˜ μžˆλŠ” λ°©λ²•을 μ˜λ―Έν•©λ‹ˆλ‹€.
+
+κ·Έ ν›„에, μ‹œμŠ€ν…œ(이 κ²½μš° FastAPI)은 μ—¬λŸ¬λΆ„μ˜ μ½”λ“œκ°€ μš”κ΅¬ν•˜λŠ” μ˜μ‘΄μ„±μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ λͺ¨λ“  μž‘업을 μ²˜λ¦¬ν•©λ‹ˆλ‹€.(μ˜μ‘΄μ„±μ„ "μ£Όμž…"ν•©λ‹ˆλ‹€)
+
+μ΄λŠ” μ—¬λŸ¬λΆ„이 λ‹€μŒκ³Ό κ°™μ€ μ‚¬ν•­μ„ ν•„μš”λ‘œ ν•  λ•Œ λ§€μš° μœ μš©ν•©λ‹ˆλ‹€:
+
+* κ³΅μš©λœ λ‘œμ§μ„ κ°€μ‘Œμ„ κ²½μš° (같은 μ½”λ“œ λ‘œμ§μ΄ κ³„속 λ°˜λ³΅λ˜λŠ” κ²½μš°).
+* λ°μ΄ν„°λ² μ΄μŠ€ μ—°κ²°μ„ κ³΅μœ ν•˜λŠ” κ²½μš°.
+* λ³΄μ•ˆ, μΈμ¦, μ—­ν•  μš”ꡬ μ‚¬ν•­ λ“±μ„ κ°•μ œν•˜λŠ” κ²½μš°.
+* κ·Έλ¦¬κ³  λ§Žμ€ λ‹€λ₯Έ μ‚¬ν•­...
+
+이 λͺ¨λ“  μ‚¬ν•­μ„ ν•  λ•Œ μ½”λ“œ λ°˜λ³΅μ„ μ΅œμ†Œν™”ν•©λ‹ˆλ‹€.
+
+## μ²«λ²ˆμ§Έ λ‹¨κ³„
+
+μ•„μ£Ό κ°„λ‹¨ν•œ μ˜ˆμ œλ₯Ό λ΄…μ‹œλ‹€. λ„ˆλ¬΄ κ°„단할 κ²ƒμ΄κΈ°μ— μ§€κΈˆ λ‹Ήμž₯은 μœ μš©ν•˜μ§€ μ•Šμ„ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+ν•˜μ§€λ§Œ μ΄λ₯Ό ν†΅ν•΄ **μ˜μ‘΄μ„± μ£Όμž…** μ‹œμŠ€ν…œμ΄ μ–΄λ–»κ²Œ μž‘λ™ν•˜λŠ”μ§€μ— μ€‘점을 λ‘˜ κ²ƒμž…λ‹ˆλ‹€.
+
+### μ˜μ‘΄μ„± ν˜Ήμ€ "λ””νŽœλ”λΈ”" λ§Œλ“€κΈ°
+
+μ˜μ‘΄μ„±μ— μ§‘쀑해 λ΄…μ‹œλ‹€.
+
+*경둜 μž‘동 ν•¨μˆ˜*κ°€ κ°€μ§ˆ μˆ˜ μžˆλŠ” λͺ¨λ“  λ§€κ°œλ³€μˆ˜λ₯Ό κ°–λŠ” λ‹¨μˆœν•œ ν•¨μˆ˜μž…λ‹ˆλ‹€:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="8-9"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="8-11"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="9-12"
+    {!> ../../../docs_src/dependencies/tutorial001_an.py!}
+    ```
+
+=== "Python 3.10+ Annotatedκ°€ μ—†λŠ” κ²½μš°"
+
+    !!! νŒ
+        κ°€λŠ₯ν•˜λ‹€λ©΄ `Annotated`κ°€ λ‹¬λ¦° λ²„전을 κΆŒμž₯ν•©λ‹ˆλ‹€.
+
+    ```Python hl_lines="6-7"
+    {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+    ```
+
+=== "Python 3.8+ Annotatedκ°€ μ—†λŠ” κ²½μš°"
+
+    !!! νŒ
+        κ°€λŠ₯ν•˜λ‹€λ©΄ `Annotated`κ°€ λ‹¬λ¦° λ²„전을 κΆŒμž₯ν•©λ‹ˆλ‹€.
+
+    ```Python hl_lines="8-11"
+    {!> ../../../docs_src/dependencies/tutorial001.py!}
+    ```
+
+이게 λ‹€μž…λ‹ˆλ‹€.
+
+**단 λ‘ μ€„μž…λ‹ˆλ‹€**.
+
+그리고, μ΄ ν•¨μˆ˜λŠ” μ—¬λŸ¬λΆ„μ˜ λͺ¨λ“  *경둜 μž‘동 ν•¨μˆ˜*κ°€ κ°€μ§€κ³  μžˆλŠ” κ²ƒκ³Ό κ°™μ€ ν˜•νƒœμ™€ κ΅¬μ‘°λ₯Ό κ°€μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€.
+
+μ—¬λŸ¬λΆ„μ€ μ΄λ₯Ό "λ°μ½”λ ˆμ΄ν„°"κ°€ μ—†λŠ” (`@app.get("/some-path")`κ°€ μ—†λŠ”) *경둜 μž‘동 ν•¨μˆ˜*라고 μƒκ°ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+그리고 μ—¬λŸ¬λΆ„이 μ›ν•˜λŠ” λ¬΄μ—‡μ΄λ“  λ°˜ν™˜ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+이 κ²½μš°, μ΄ μ˜μ‘΄μ„±μ€ λ‹€μŒκ³Ό κ°™μ€ κ²½μš°λ₯Ό κΈ°λŒ€ν•©λ‹ˆλ‹€:
+
+* μ„ νƒμ μΈ μΏΌλ¦¬ λ§€κ°œλ³€μˆ˜ `q`, `str`을 μžλ£Œν˜•μœΌλ‘œ κ°€μ§‘λ‹ˆλ‹€.
+* μ„ νƒμ μΈ μΏΌλ¦¬ λ§€κ°œλ³€μˆ˜ `skip`, `int`λ₯Ό μžλ£Œν˜•μœΌλ‘œ κ°€μ§€λ©° κΈ°λ³Έ κ°’은 `0`μž…λ‹ˆλ‹€.
+* μ„ νƒμ μΈ μΏΌλ¦¬ λ§€κ°œλ³€μˆ˜ `limit`,`int`λ₯Ό μžλ£Œν˜•μœΌλ‘œ κ°€μ§€λ©° κΈ°λ³Έ κ°’은 `100`μž…λ‹ˆλ‹€.
+
+κ·Έ ν›„ μœ„μ˜ κ°’을 ν¬ν•¨ν•œ `dict` μžλ£Œν˜•μœΌλ‘œ λ°˜ν™˜ν•  λΏμž…λ‹ˆλ‹€.
+
+!!! μ •보
+    FastAPIλŠ” 0.95.0 λ²„μ „λΆ€ν„° `Annotated`에 λŒ€ν•œ μ§€μ›μ„ (그리고 μ΄λ₯Ό μ‚¬μš©ν•˜κΈ° κΆŒμž₯ν•©λ‹ˆλ‹€) μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.
+
+    μ˜›λ‚  λ²„전을 κ°€μ§€κ³  μžˆλŠ” κ²½μš°, `Annotated`λ₯Ό μ‚¬μš©ν•˜λ € ν•˜λ©΄ μ—λŸ¬λ₯Ό λ§žμ΄ν•˜κ²Œ λ  κ²ƒμž…λ‹ˆλ‹€.
+
+    `Annotated`λ₯Ό μ‚¬μš©ν•˜κΈ° μ „에 μ΅œμ†Œ 0.95.1둜 [FastAPI λ²„μ „ μ—…κ·Έλ ˆμ΄λ“œ](../../deployment/versions.md#upgrading-the-fastapi-versions){.internal-link target=_blank}λ₯Ό ν™•μ‹€ν•˜κ²Œ ν•˜μ„Έμš”.
+
+### `Depends` λΆˆλŸ¬μ˜€κΈ°
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="3"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="3"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="3"
+    {!> ../../../docs_src/dependencies/tutorial001_an.py!}
+    ```
+
+=== "Python 3.10+ Annotatedκ°€ μ—†λŠ” κ²½μš°"
+
+    !!! νŒ
+        κ°€λŠ₯ν•˜λ‹€λ©΄ `Annotated`κ°€ λ‹¬λ¦° λ²„전을 κΆŒμž₯ν•©λ‹ˆλ‹€.
+
+    ```Python hl_lines="1"
+    {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+    ```
+
+=== "Python 3.8+ Annotatedκ°€ μ—†λŠ” κ²½μš°"
+
+    !!! νŒ
+        κ°€λŠ₯ν•˜λ‹€λ©΄ `Annotated`κ°€ λ‹¬λ¦° λ²„전을 κΆŒμž₯ν•©λ‹ˆλ‹€.
+
+    ```Python hl_lines="3"
+    {!> ../../../docs_src/dependencies/tutorial001.py!}
+    ```
+
+### "의쑴자"에 μ˜μ‘΄μ„± λͺ…μ‹œν•˜κΈ°
+
+*경둜 μž‘동 ν•¨μˆ˜*의 λ§€κ°œλ³€μˆ˜λ‘œ `Body`, `Query` λ“±μ„ μ‚¬μš©ν•˜λŠ” λ°©μ‹κ³Ό κ°™μ΄ μƒˆλ‘œμš΄ λ§€κ°œλ³€μˆ˜λ‘œ `Depends`λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="13  18"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="15  20"
+    {!> ../../../docs_src/dependencies/tutorial001_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="16  21"
+    {!> ../../../docs_src/dependencies/tutorial001_an.py!}
+    ```
+
+=== "Python 3.10+ Annotatedκ°€ μ—†λŠ” κ²½μš°"
+
+    !!! νŒ
+        κ°€λŠ₯ν•˜λ‹€λ©΄ `Annotated`κ°€ λ‹¬λ¦° λ²„전을 κΆŒμž₯ν•©λ‹ˆλ‹€.
+
+    ```Python hl_lines="11  16"
+    {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+    ```
+
+=== "Python 3.8+ Annotatedκ°€ μ—†λŠ” κ²½μš°"
+
+    !!! νŒ
+        κ°€λŠ₯ν•˜λ‹€λ©΄ `Annotated`κ°€ λ‹¬λ¦° λ²„전을 κΆŒμž₯ν•©λ‹ˆλ‹€.
+
+    ```Python hl_lines="15  20"
+    {!> ../../../docs_src/dependencies/tutorial001.py!}
+    ```
+
+비둝 `Body`, `Query` λ“±μ„ μ‚¬μš©ν•˜λŠ” κ²ƒκ³Ό κ°™μ€ λ°©μ‹μœΌλ‘œ μ—¬λŸ¬λΆ„μ˜ ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜μ— μžˆλŠ” `Depends`λ₯Ό μ‚¬μš©ν•˜μ§€λ§Œ, `Depends`λŠ” μ•½κ°„ λ‹€λ₯΄κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.
+
+`Depends`에 λ‹¨μΌ λ§€κ°œλ³€μˆ˜λ§Œ μ „λ‹¬ν–ˆμŠ΅λ‹ˆλ‹€.
+
+이 λ§€κ°œλ³€μˆ˜λŠ” ν•¨μˆ˜κ°™μ€ κ²ƒμ΄μ–΄μ•Ό ν•©λ‹ˆλ‹€.
+
+μ—¬λŸ¬λΆ„μ€ μ§μ ‘ **ν˜ΈμΆœν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€** (끝에 κ΄„ν˜Έλ₯Ό μΉ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€), λ‹¨μ§€ `Depends()`에 λ§€κ°œλ³€μˆ˜λ‘œ λ„˜κ²¨ μ€¬μ„ λΏμž…λ‹ˆλ‹€.
+
+그리고 κ·Έ ν•¨μˆ˜λŠ” *경둜 μž‘동 ν•¨μˆ˜*κ°€ μž‘λ™ν•˜λŠ” κ²ƒκ³Ό κ°™μ€ λ°©μ‹μœΌλ‘œ λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μŠ΅λ‹ˆλ‹€.
+
+!!! νŒ
+    μ—¬λŸ¬λΆ„은 λ‹€μŒ μž₯μ—μ„œ ν•¨μˆ˜λ₯Ό μ œμ™Έν•˜κ³ μ„œ, "λ‹€λ₯Έ κ²ƒλ“€"이 μ–΄λ–»κ²Œ μ˜μ‘΄μ„±μœΌλ‘œ μ‚¬μš©λ˜λŠ”μ§€ μ•Œκ²Œ λ  κ²ƒμž…λ‹ˆλ‹€.
+
+μƒˆλ‘œμš΄ μš”청이 λ„μ°©ν•  λ•Œλ§ˆλ‹€, **FastAPI**λŠ” λ‹€μŒμ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€:
+
+* μ˜¬λ°”λ₯Έ λ§€κ°œλ³€μˆ˜λ₯Ό κ°€μ§„ μ˜μ‘΄μ„±("λ””νŽœλ”λΈ”") ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.
+* ν•¨μˆ˜μ—μ„œ κ²°κ³Όλ₯Ό λ°›μ•„μ˜΅λ‹ˆλ‹€.
+* *경둜 μž‘동 ν•¨μˆ˜*에 μžˆλŠ” λ§€κ°œλ³€μˆ˜μ— κ·Έ κ²°κ³Όλ₯Ό ν• λ‹Ήν•©λ‹ˆλ‹€
+
+```mermaid
+graph TB
+
+common_parameters(["common_parameters"])
+read_items["/items/"]
+read_users["/users/"]
+
+common_parameters --> read_items
+common_parameters --> read_users
+```
+
+μ΄λ ‡κ²Œ ν•˜λ©΄ κ³΅μš© μ½”λ“œλ₯Ό ν•œλ²ˆλ§Œ μ μ–΄λ„ λ˜λ©°, **FastAPI**λŠ” *경둜 μž‘동*을 μœ„ν•΄ μ΄μ— λŒ€ν•œ ν˜ΈμΆœμ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€.
+
+!!! ν™•인
+    νŠΉλ³„ν•œ ν΄λž˜μŠ€λ₯Ό λ§Œλ“€μ§€ μ•Šμ•„도 λ˜λ©°, μ΄λŸ¬ν•œ κ²ƒ ν˜Ήμ€ λΉ„μŠ·ν•œ μ’…λ₯˜λ₯Ό **FastAPI**에 "등둝"ν•˜κΈ° μœ„ν•΄ μ–΄λ–€ κ³³μ— λ„˜κ²¨μ£Όμ§€ μ•Šμ•„도 λ©λ‹ˆλ‹€.
+
+    λ‹¨μˆœνžˆ `Depends`에 λ„˜κ²¨μ£ΌκΈ°λ§Œ ν•˜λ©΄ λ˜λ©°, **FastAPI**λŠ” λ‚˜λ¨Έμ§€λ₯Ό μ–΄μ°Œν• μ§€ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.
+
+## `Annotated`인 μ˜μ‘΄μ„± κ³΅μœ ν•˜κΈ°
+
+μœ„μ˜ μ˜ˆμ œμ—μ„œ λͺ‡λͺ‡ μž‘은 **μ½”λ“œ μ€‘볡**이 μžˆλ‹€λŠ” κ²ƒμ„ λ³΄μ•˜μ„ κ²λ‹ˆλ‹€.
+
+`common_parameters()`μ˜μ‘΄μ„ μ‚¬μš©ν•΄μ•Ό ν•œλ‹€λ©΄, νƒ€μž… λͺ…μ‹œμ™€ `Depends()`와 ν•¨κ»˜ μ „체 λ§€κ°œλ³€μˆ˜λ₯Ό μ μ–΄μ•Ό ν•©λ‹ˆλ‹€:
+
+```Python
+commons: Annotated[dict, Depends(common_parameters)]
+```
+
+ν•˜μ§€λ§Œ `Annotated`λ₯Ό μ‚¬μš©ν•˜κ³  μžˆκΈ°μ—, `Annotated` κ°’을 λ³€μˆ˜μ— μ €μž₯ν•˜κ³  μ—¬λŸ¬ μž₯μ†Œμ—μ„œ μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€:
+
+=== "Python 3.10+"
+
+    ```Python hl_lines="12  16  21"
+    {!> ../../../docs_src/dependencies/tutorial001_02_an_py310.py!}
+    ```
+
+=== "Python 3.9+"
+
+    ```Python hl_lines="14  18  23"
+    {!> ../../../docs_src/dependencies/tutorial001_02_an_py39.py!}
+    ```
+
+=== "Python 3.8+"
+
+    ```Python hl_lines="15  19  24"
+    {!> ../../../docs_src/dependencies/tutorial001_02_an.py!}
+    ```
+
+!!! νŒ
+    μ΄λŠ” κ·Έμ € ν‘œμ€€ νŒŒμ΄μ¬μ΄κ³  "type alias"라고 λΆ€λ₯΄λ©° μ‚¬μ‹€ **FastAPI**에 κ΅­ν•œλ˜λŠ” κ²ƒμ€ μ•„λ‹™λ‹ˆλ‹€.
+
+    ν•˜μ§€λ§Œ, `Annotated`λ₯Ό ν¬ν•¨ν•˜μ—¬, **FastAPI**κ°€ νŒŒμ΄μ¬ ν‘œμ€€μ„ κΈ°λ°˜μœΌλ‘œ ν•˜κ³  μžˆκΈ°μ—, μ΄λ₯Ό μ—¬λŸ¬λΆ„μ˜ μ½”λ“œ νŠΈλ¦­μœΌλ‘œ μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. πŸ˜Ž
+
+이 μ˜μ‘΄μ„±μ€ κ³„μ†ν•΄μ„œ μ˜ˆμƒν•œλŒ€λ‘œ μž‘동할 κ²ƒμ΄λ©°, **제일 μ’‹μ€ λΆ€λΆ„**은 **νƒ€μž… μ •보가 λ³΄μ‘΄λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€**. μ¦‰ μ—¬λŸ¬λΆ„μ˜ νŽΈμ§‘κΈ°κ°€ **μžλ™ μ™„μ„±**, **인라인 μ—λŸ¬** λ“±μ„ κ³„μ†ν•΄μ„œ μ œκ³΅ν•  μˆ˜ μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. `mypy`같은 λ‹€λ₯Έ λ„ꡬ도 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€.
+
+μ΄λŠ” νŠΉνžˆ **λ§Žμ€ *경둜 μž‘동***μ—μ„œ **같은 μ˜μ‘΄μ„±**을 κ³„μ†ν•΄μ„œ μ‚¬μš©ν•˜λŠ” **κ±°λŒ€ μ½”λ“œ κΈ°λ°˜**μ•ˆμ—μ„œ μ‚¬μš©ν•˜λ©΄ μœ μš©ν•  κ²ƒμž…λ‹ˆλ‹€.
+
+## `async`ν•˜κ²Œ, ν˜Ήμ€ `async`ν•˜μ§€ μ•Šκ²Œ
+
+μ˜μ‘΄μ„±μ΄ (*경둜 μž‘동 ν•¨μˆ˜*μ—μ„œ μ²˜λŸΌ λ˜‘같이) **FastAPI**에 μ˜ν•΄ ν˜ΈμΆœλ  μˆ˜ μžˆμœΌλ©°, ν•¨μˆ˜λ₯Ό μ •μ˜ν•  λ•Œ λ™μΌν•œ κ·œμΉ™μ΄ μ μš©λ©λ‹ˆλ‹€.
+
+`async def`을 μ‚¬μš©ν•˜κ±°λ‚˜ ν˜Ήμ€ μΌλ°˜μ μΈ `def`λ₯Ό μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+그리고 μΌλ°˜μ μΈ `def` *경둜 μž‘동 ν•¨μˆ˜* μ•ˆμ— `async def`둜 μ˜μ‘΄μ„±μ„ μ„ μ–Έν•  μˆ˜ μžˆμœΌλ©°, `async def` *경둜 μž‘동 ν•¨μˆ˜* μ•ˆμ— `def`둜 μ˜μ‘΄μ„±μ„ μ„ μ–Έν•˜λŠ” λ“±μ˜ λ°©λ²•이 μžˆμŠ΅λ‹ˆλ‹€.
+
+아무 λ¬Έμ œ μ—†μŠ΅λ‹ˆλ‹€. **FastAPI**λŠ” λ¬΄μ—‡μ„ ν• μ§€ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.
+
+!!! μ°Έκ³ 
+    μž˜ λͺ¨λ₯΄μ‹œκ² λ‹€λ©΄, [Async: *"In a hurry?"*](../../async.md){.internal-link target=_blank} λ¬Έμ„œμ—μ„œ `async`와 `await`에 λŒ€ν•΄ ν™•인할 μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+## OpenAPI와 ν†΅ν•©
+
+λͺ¨λ“  μš”μ²­ μ„ μ–Έ, κ²€μ¦κ³Ό μ˜μ‘΄μ„±(및 ν•˜μœ„ μ˜μ‘΄μ„±)에 λŒ€ν•œ μš”ꡬ μ‚¬ν•­μ€ λ™μΌν•œ OpenAPI μŠ€ν‚€λ§ˆμ— ν†΅ν•©λ©λ‹ˆλ‹€.
+
+λ”°λΌμ„œ λŒ€ν™”ν˜• λ¬Έμ„œμ— μ΄λŸ¬ν•œ μ˜μ‘΄μ„±μ— λŒ€ν•œ λͺ¨λ“  μ •보 μ—­μ‹œ ν¬ν•¨ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€:
+
+<img src="/img/tutorial/dependencies/image01.png">
+
+## κ°„λ‹¨ν•œ μ‚¬μš©λ²•
+
+이λ₯Ό λ³΄λ©΄, *경둜 μž‘동 ν•¨μˆ˜*λŠ” *경둜*와 *μž‘λ™*이 λ§€μΉ­λ˜λ©΄ μ–Έμ œλ“ μ§€ μ‚¬μš©λ˜λ„둝 μ •μ˜λ˜μ—ˆμœΌλ©°, **FastAPI**λŠ” μ˜¬λ°”λ₯Έ λ§€κ°œλ³€μˆ˜λ₯Ό κ°€μ§„ ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜κ³  ν•΄λ‹Ή μš”μ²­μ—μ„œ λ°μ΄ν„°λ₯Ό μΆ”μΆœν•©λ‹ˆλ‹€.
+
+사싀, λͺ¨λ“  (ν˜Ήμ€ λŒ€λΆ€λΆ„μ˜) μ›Ή ν”„λ ˆμž„μ›Œν¬λŠ” μ΄μ™€ κ°™μ€ λ°©μ‹μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.
+
+μ—¬λŸ¬λΆ„μ€ μ΄λŸ¬ν•œ ν•¨μˆ˜λ“€μ„ μ ˆλŒ€ μ§μ ‘ ν˜ΈμΆœν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. ν”„λ ˆμž„μ›Œν¬(이 κ²½μš° **FastAPI**)에 μ˜ν•΄ ν˜ΈμΆœλ©λ‹ˆλ‹€.
+
+μ˜μ‘΄μ„± μ£Όμž… μ‹œμŠ€ν…œκ³Ό ν•¨κ»˜λΌλ©΄ **FastAPI**μ—κ²Œ μ—¬λŸ¬λΆ„μ˜ *경둜 μž‘동 ν•¨μˆ˜*κ°€ μ‹€ν–‰λ˜κΈ° μ „에 μ‹€ν–‰λ˜μ–΄μ•Ό ν•˜λŠ” λ¬΄μ–Έκ°€μ— μ—¬λŸ¬λΆ„μ˜ *경둜 μž‘동 ν•¨μˆ˜* λ˜ν•œ "의쑴"ν•˜κ³  μžˆμŒμ„ μ•Œλ¦΄ μˆ˜ μžˆμœΌλ©°, **FastAPI**λŠ” μ΄λ₯Ό μ‹€ν–‰ν•˜κ³  κ²°κ³Όλ₯Ό "μ£Όμž…"ν•  κ²ƒμž…λ‹ˆλ‹€.
+
+"μ˜μ‘΄μ„± μ£Όμž…"μ΄λΌλŠ” λ™μΌν•œ μ•„이디어에 λŒ€ν•œ λ‹€λ₯Έ μΌλ°˜μ μΈ μš©μ–΄λŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:
+
+* λ¦¬μ†ŒμŠ€
+* μ œκ³΅μž
+* μ„œλΉ„μŠ€
+* μΈμ ν„°λΈ”
+* μ»΄ν¬λ„ŒνŠΈ
+
+## **FastAPI** ν”ŒλŸ¬κ·ΈμΈ
+
+톡합과 "ν”ŒλŸ¬κ·ΈμΈ"은 **μ˜μ‘΄μ„± μ£Όμž…** μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜μ—¬ κ΅¬μΆ•ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ‹€μ œλ‘œ **"ν”ŒλŸ¬κ·ΈμΈ"을 λ§Œλ“€ ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€**, μ™œλƒν•˜λ©΄ μ˜μ‘΄μ„±μ„ μ‚¬μš©ν•¨μœΌλ‘œμ¨ μ—¬λŸ¬λΆ„μ˜ *경둜 μž‘동 ν•¨μˆ˜*에 ν†΅ν•©κ³Ό μƒν˜Έ μž‘μš©μ„ λ¬΄ν•œλŒ€λ‘œ μ„ μ–Έν•  μˆ˜ μžˆκΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
+
+그리고 "말 κ·ΈλŒ€λ‘œ", κ·Έμ € ν•„μš”λ‘œ ν•˜λŠ” νŒŒμ΄μ¬ νŒ¨ν‚€μ§€λ₯Ό μž„ν¬νŠΈν•˜κ³  λ‹¨ λͺ‡ μ€„μ˜ μ½”λ“œλ‘œ μ—¬λŸ¬λΆ„μ˜ API ν•¨μˆ˜μ™€ ν†΅ν•©ν•¨μœΌλ‘œμ¨, μ˜μ‘΄μ„±μ„ μ•„μ£Ό κ°„λ‹¨ν•˜κ³  μ§κ΄€μ μΈ λ°©λ²•μœΌλ‘œ λ§Œλ“€ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+κ΄€κ³„ν˜• λ° NoSQL λ°μ΄ν„°λ² μ΄μŠ€, λ³΄μ•ˆ λ“±, μ΄μ— λŒ€ν•œ μ˜ˆμ‹œλ₯Ό λ‹€μŒ μž₯μ—μ„œ λ³Ό μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+## **FastAPI** ν˜Έν™˜μ„±
+
+μ˜μ‘΄μ„± μ£Όμž… μ‹œμŠ€ν…œμ˜ λ‹¨μˆœν•¨μ€ **FastAPI**λ₯Ό λ‹€μŒκ³Ό κ°™μ€ μš”μ†Œλ“€κ³Ό ν˜Έν™˜ν•  μˆ˜ μžˆκ²Œ ν•©λ‹ˆλ‹€:
+
+* λͺ¨λ“  κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€
+* NoSQL λ°μ΄ν„°λ² μ΄μŠ€
+* μ™ΈλΆ€ νŒ¨ν‚€μ§€
+* μ™ΈλΆ€ API
+* μΈμ¦ λ° κΆŒν•œ λΆ€μ—¬ μ‹œμŠ€ν…œ
+* API μ‚¬μš© λͺ¨λ‹ˆν„°λ§ μ‹œμŠ€ν…œ
+* μ‘λ‹΅ λ°μ΄ν„° μ£Όμž… μ‹œμŠ€ν…œ
+* κΈ°νƒ€ λ“±λ“±.
+
+## κ°„νŽΈν•˜κ³  κ°•λ ₯ν•˜λ‹€
+
+계측적인 μ˜μ‘΄μ„± μ£Όμž… μ‹œμŠ€ν…œμ€ μ •μ˜ν•˜κ³  μ‚¬μš©ν•˜κΈ° μ‰½μ§€λ§Œ, μ—¬μ „νžˆ λ§€μš° κ°•λ ₯ν•©λ‹ˆλ‹€.
+
+μ—¬λŸ¬λΆ„μ€ μŠ€μŠ€λ‘œλ₯Ό μ˜μ‘΄ν•˜λŠ” μ˜μ‘΄μ„±μ„ μ •μ˜ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+λμ—λŠ”, κ³„측적인 λ‚˜λ¬΄λ‘œ λœ μ˜μ‘΄μ„±μ΄ λ§Œλ“€μ–΄μ§€λ©°, κ·Έλ¦¬κ³  **μ˜μ‘΄μ„± μ£Όμž…** μ‹œμŠ€ν…œμ€ (ν•˜μœ„ μ˜μ‘΄μ„±λ„ λ§ˆμ°¬κ°€μ§€λ‘œ) μ΄λŸ¬ν•œ μ˜μ‘΄μ„±λ“€μ„ μ²˜λ¦¬ν•˜κ³  κ° λ‹¨κ³„λ§ˆλ‹€ κ²°κ³Όλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€(μ£Όμž…ν•©λ‹ˆλ‹€).
+
+예λ₯Ό λ“€λ©΄, μ—¬λŸ¬λΆ„이 4개의 API μ—”λ“œν¬μΈνŠΈ(*경둜 μž‘동*)λ₯Ό κ°€μ§€κ³  μžˆλ‹€κ³  ν•΄λ΄…μ‹œλ‹€:
+
+* `/items/public/`
+* `/items/private/`
+* `/users/{user_id}/activate`
+* `/items/pro/`
+
+κ·Έ λ‹€μŒ κ°κ°μ— λŒ€ν•΄ κ·Έμ € μ˜μ‘΄μ„±κ³Ό ν•˜μœ„ μ˜μ‘΄μ„±μ„ μ‚¬μš©ν•˜μ—¬ λ‹€λ₯Έ κΆŒν•œ μš”ꡬ μ‚¬ν•­μ„ μΆ”κ°€ν•  μˆ˜ μžˆμ„ κ²λ‹ˆλ‹€:
+
+```mermaid
+graph TB
+
+current_user(["current_user"])
+active_user(["active_user"])
+admin_user(["admin_user"])
+paying_user(["paying_user"])
+
+public["/items/public/"]
+private["/items/private/"]
+activate_user["/users/{user_id}/activate"]
+pro_items["/items/pro/"]
+
+current_user --> active_user
+active_user --> admin_user
+active_user --> paying_user
+
+current_user --> public
+active_user --> private
+admin_user --> activate_user
+paying_user --> pro_items
+```
+
+## **OpenAPI**μ™€μ˜ ν†΅ν•©
+
+이 λͺ¨λ“  μ˜μ‘΄μ„±μ€ κ°κ°μ˜ μš”ꡬ사항을 μ„ μ–Έν•˜λŠ” λ™μ‹œμ—, *경둜 μž‘동*에 λ§€κ°œλ³€μˆ˜, κ²€μ¦ λ“±μ„ μΆ”κ°€ν•©λ‹ˆλ‹€.
+
+**FastAPI**λŠ” μ΄ λͺ¨λ“  κ²ƒμ„ OpenAPI μŠ€ν‚€λ§ˆμ— μΆ”κ°€ν•  κ²ƒμ΄λ©°, μ΄λ₯Ό ν†΅ν•΄ λŒ€ν™”ν˜• λ¬Έμ„œ μ‹œμŠ€ν…œμ— λ‚˜νƒ€λ‚  κ²ƒμž…λ‹ˆλ‹€.