]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Korean translation for `docs/tutorial/dependencies/classes-as-dependencies...
authorSehwan Park <47601603+sehwan505@users.noreply.github.com>
Thu, 13 Apr 2023 18:02:52 +0000 (03:02 +0900)
committerGitHub <noreply@github.com>
Thu, 13 Apr 2023 18:02:52 +0000 (11:02 -0700)
Co-authored-by: Nina Hwang <79563565+NinaHwang@users.noreply.github.com>
Co-authored-by: Joona Yoon <joonas-yoon@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
docs/ko/docs/tutorial/dependencies/classes-as-dependencies.md [new file with mode: 0644]
docs/ko/mkdocs.yml

diff --git a/docs/ko/docs/tutorial/dependencies/classes-as-dependencies.md b/docs/ko/docs/tutorial/dependencies/classes-as-dependencies.md
new file mode 100644 (file)
index 0000000..bbf3a82
--- /dev/null
@@ -0,0 +1,244 @@
+# μ˜μ‘΄μ„±μœΌλ‘œμ„œμ˜ ν΄λž˜μŠ€
+
+**μ˜μ‘΄μ„± μ£Όμž…** μ‹œμŠ€ν…œμ— λŒ€ν•΄ μžμ„Ένžˆ μ‚΄νŽ΄λ³΄κΈ° μ „에 μ΄μ „ μ˜ˆμ œλ₯Ό μ—…κ·Έλ ˆμ΄λ“œ ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.
+
+## μ΄μ „ μ˜ˆμ œμ˜ `λ”•μ…”λ„ˆλ¦¬`
+
+이전 μ˜ˆμ œμ—μ„œ, μš°λ¦¬λŠ” μ˜μ‘΄μ„±(의쑴 κ°€λŠ₯ν•œ) ν•¨μˆ˜μ—μ„œ `λ”•μ…”λ„ˆλ¦¬`객체λ₯Ό λ°˜ν™˜ν•˜κ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€:
+
+=== "파이썬 3.6 μ΄μƒ"
+
+    ```Python hl_lines="9"
+    {!> ../../../docs_src/dependencies/tutorial001.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="7"
+    {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+    ```
+
+μš°λ¦¬λŠ” *경둜 μž‘동 ν•¨μˆ˜*의 λ§€κ°œλ³€μˆ˜ `commons`μ—μ„œ `λ”•μ…”λ„ˆλ¦¬` κ°μ²΄λ₯Ό μ–»μŠ΅λ‹ˆλ‹€.
+
+그리고 μš°λ¦¬λŠ” μ—λ””터듀이 `λ”•μ…”λ„ˆλ¦¬` κ°μ²΄μ˜ ν‚€λ‚˜ λ°Έλ₯˜μ˜ μžλ£Œν˜•을 μ•Œ μˆ˜ μ—†κΈ° λ•Œλ¬Έμ— μžλ™ μ™„μ„±κ³Ό κ°™μ€ κΈ°λŠ₯을 μ œκ³΅ν•΄ μ€„ μˆ˜ μ—†λ‹€λŠ” κ²ƒμ„ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.
+
+더 λ‚˜μ€ λ°©λ²•이 μžˆμ„ κ²ƒ κ°™μŠ΅λ‹ˆλ‹€...
+
+## μ˜μ‘΄μ„±μœΌλ‘œ μ‚¬μš© κ°€λŠ₯ν•œ κ²ƒ
+
+μ§€κΈˆκΉŒμ§€ ν•¨μˆ˜λ‘œ μ„ μ–Έλœ μ˜μ‘΄μ„±μ„ λ΄μ™”μŠ΅λ‹ˆλ‹€.
+
+μ•„λ§ˆλ„ λ” μΌλ°˜μ μ΄κΈ°λŠ” ν•˜κ² μ§€λ§Œ μ˜μ‘΄μ„±μ„ μ„ μ–Έν•˜λŠ” μœ μΌν•œ λ°©λ²•은 μ•„λ‹™λ‹ˆλ‹€.
+
+핡심 μš”μ†ŒλŠ” μ˜μ‘΄μ„±μ΄ "호좜 κ°€λŠ₯"ν•΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€
+
+νŒŒμ΄μ¬μ—μ„œμ˜ "**호좜 κ°€λŠ₯**"은 νŒŒμ΄μ¬μ΄ ν•¨μˆ˜μ²˜λŸΌ "호좜"ν•  μˆ˜ μžˆλŠ” λͺ¨λ“  κ²ƒμž…λ‹ˆλ‹€.
+
+λ”°λΌμ„œ, λ§Œμ•½ λ‹Ήμ‹ μ΄ `something`(ν•¨μˆ˜κ°€ μ•„닐 μˆ˜λ„ μžˆμŒ) κ°μ²΄λ₯Ό κ°€μ§€κ³  μžˆκ³ ,
+
+```Python
+something()
+```
+
+λ˜λŠ”
+
+```Python
+something(some_argument, some_keyword_argument="foo")
+```
+
+상기와 κ°™μ€ λ°©μ‹μœΌλ‘œ "호좜(μ‹€ν–‰)" ν•  μˆ˜ μžˆλ‹€λ©΄ "호좜 κ°€λŠ₯"이 λ©λ‹ˆλ‹€.
+
+## μ˜μ‘΄μ„±μœΌλ‘œμ„œμ˜ ν΄λž˜μŠ€
+
+파이썬 ν΄λž˜μŠ€μ˜ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•˜λŠ” κ²ƒκ³Ό λ™μΌν•œ λ¬Έλ²•을 μ‚¬μš©ν•œλ‹€λŠ” κ±Έ μ•Œ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+예λ₯Ό λ“€μ–΄:
+
+```Python
+class Cat:
+    def __init__(self, name: str):
+        self.name = name
+
+
+fluffy = Cat(name="Mr Fluffy")
+```
+
+이 κ²½μš°μ— `fluffy`λŠ” ν΄λž˜μŠ€ `Cat`의 μΈμŠ€ν„΄μŠ€μž…λ‹ˆλ‹€. κ·Έλ¦¬κ³  μš°λ¦¬λŠ” `fluffy`λ₯Ό λ§Œλ“€κΈ° μœ„ν•΄μ„œ `Cat`을 "호좜"ν–ˆμŠ΅λ‹ˆλ‹€.
+
+λ”°λΌμ„œ, νŒŒμ΄μ¬ ν΄λž˜μŠ€λŠ” **호좜 κ°€λŠ₯**ν•©λ‹ˆλ‹€.
+
+κ·Έλž˜μ„œ **FastAPI**μ—μ„œλŠ” νŒŒμ΄μ¬ ν΄λž˜μŠ€λ₯Ό μ˜μ‘΄μ„±μœΌλ‘œ μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+FastAPIκ°€ μ‹€μ§ˆμ μœΌλ‘œ ν™•μΈν•˜λŠ” κ²ƒμ€ "호좜 κ°€λŠ₯μ„±"(ν•¨μˆ˜, ν΄λž˜μŠ€ λ˜λŠ” λ‹€λ₯Έ λͺ¨λ“  κ²ƒ)κ³Ό μ •μ˜λœ λ§€κ°œλ³€μˆ˜λ“€μž…λ‹ˆλ‹€.
+
+"호좜 κ°€λŠ₯"ν•œ κ²ƒμ„ μ˜μ‘΄μ„±μœΌλ‘œμ„œ **FastAPI**에 μ „λ‹¬ν•˜λ©΄, κ·Έ "호좜 κ°€λŠ₯"ν•œ κ²ƒμ˜ λ§€κ°œλ³€μˆ˜λ“€μ„ λΆ„μ„ν•œ ν›„ μ΄λ₯Ό *경둜 λ™μž‘ ν•¨μˆ˜*λ₯Ό μœ„ν•œ λ§€κ°œλ³€μˆ˜μ™€ λ™μΌν•œ λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•©λ‹ˆλ‹€. ν•˜μœ„-μ˜μ‘΄μ„± λ˜ν•œ κ°™μ€ λ°©μ‹μœΌλ‘œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.
+
+λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” "호좜 κ°€λŠ₯"ν•œ κ²ƒ μ—­μ‹œ λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” *경둜 λ™μž‘ ν•¨μˆ˜*와 λ™μΌν•œ λ°©μ‹μœΌλ‘œ μ μš©λ©λ‹ˆλ‹€.
+
+κ·Έλž˜μ„œ, μš°λ¦¬λŠ” μœ„ μ˜ˆμ œμ—μ„œμ˜ `common_paramenters` μ˜μ‘΄μ„±μ„ ν΄λž˜μŠ€ `CommonQueryParams`둜 λ°”κΏ€ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+=== "파이썬 3.6 μ΄μƒ"
+
+    ```Python hl_lines="11-15"
+    {!> ../../../docs_src/dependencies/tutorial002.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="9-13"
+    {!> ../../../docs_src/dependencies/tutorial002_py310.py!}
+    ```
+
+클래슀의 μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜λŠ” λ° μ‚¬μš©λ˜λŠ” `__init__` λ©”μ„œλ“œμ— μ£Όλͺ©ν•˜κΈ° λ°”λžλ‹ˆλ‹€:
+
+=== "파이썬 3.6 μ΄μƒ"
+
+    ```Python hl_lines="12"
+    {!> ../../../docs_src/dependencies/tutorial002.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="10"
+    {!> ../../../docs_src/dependencies/tutorial002_py310.py!}
+    ```
+
+...이전 `common_parameters`와 λ™μΌν•œ λ§€κ°œλ³€μˆ˜λ₯Ό κ°€μ§‘λ‹ˆλ‹€:
+
+=== "파이썬 3.6 μ΄μƒ"
+
+    ```Python hl_lines="9"
+    {!> ../../../docs_src/dependencies/tutorial001.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="6"
+    {!> ../../../docs_src/dependencies/tutorial001_py310.py!}
+    ```
+
+이 λ§€κ°œλ³€μˆ˜λ“€μ€ **FastAPI**κ°€ μ˜μ‘΄μ„±μ„ "ν•΄κ²°"ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•  κ²ƒμž…λ‹ˆλ‹€
+
+ν•¨μˆ˜μ™€ ν΄λž˜μŠ€ λ‘ κ°€μ§€ λ°©μ‹ λͺ¨λ‘, μ•„λž˜ μš”μ†Œλ₯Ό κ°–μŠ΅λ‹ˆλ‹€:
+
+* `λ¬Έμžμ—΄`μ΄λ©΄μ„œ μ„ νƒμ‚¬ν•­μΈ μΏΌλ¦¬ λ§€κ°œλ³€μˆ˜ `q`.
+* κΈ°λ³Έκ°’이 `0`μ΄λ©΄μ„œ `μ •μˆ˜ν˜•`인 μΏΌλ¦¬ λ§€κ°œλ³€μˆ˜ `skip`
+* κΈ°λ³Έκ°’이 `100`μ΄λ©΄μ„œ `μ •μˆ˜ν˜•`인 μΏΌλ¦¬ λ§€κ°œλ³€μˆ˜ `limit`
+
+두 κ°€μ§€ λ°©μ‹ λͺ¨λ‘, λ°μ΄ν„°λŠ” λ³€ν™˜, κ²€μ¦λ˜κ³  OpenAPI μŠ€ν‚€λ§ˆμ— λ¬Έμ„œν™”λ©λ‹ˆλ‹€.
+
+## μ‚¬μš©ν•΄λ΄…μ‹œλ‹€!
+
+이제 μ•„λž˜μ˜ ν΄λž˜μŠ€λ₯Ό μ΄μš©ν•΄μ„œ μ˜μ‘΄μ„±μ„ μ •μ˜ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+=== "파이썬 3.6 μ΄μƒ"
+
+    ```Python hl_lines="19"
+    {!> ../../../docs_src/dependencies/tutorial002.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="17"
+    {!> ../../../docs_src/dependencies/tutorial002_py310.py!}
+    ```
+
+**FastAPI**λŠ” `CommonQueryParams` ν΄λž˜μŠ€λ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. μ΄κ²ƒμ€ ν•΄λ‹Ή ν΄λž˜μŠ€μ˜ "μΈμŠ€ν„΄μŠ€"λ₯Ό μƒμ„±ν•˜κ³  κ·Έ μΈμŠ€ν„΄μŠ€λŠ” ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜ `commons`둜 μ „λ‹¬λ©λ‹ˆλ‹€.
+
+## νƒ€μž… νžŒνŒ… vs `Depends`
+
+μœ„ μ½”λ“œμ—μ„œ `CommonQueryParams`λ₯Ό λ‘ λ²ˆ μž‘μ„±ν•œ λ°©μ‹μ— μ£Όλͺ©ν•˜μ‹­μ‹œμ˜€:
+
+```Python
+commons: CommonQueryParams = Depends(CommonQueryParams)
+```
+
+λ§ˆμ§€λ§‰ `CommonQueryParams` λ³€μˆ˜λ₯Ό λ³΄λ©΄:
+
+```Python
+... = Depends(CommonQueryParams)
+```
+
+... **FastAPI**κ°€ μ‹€μ œλ‘œ μ–΄λ–€ κ²ƒμ΄ μ˜μ‘΄μ„±μΈμ§€ μ•ŒκΈ° μœ„ν•΄μ„œ μ‚¬μš©ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.
+FastAPIλŠ” μ„ μ–Έλœ λ§€κ°œλ³€μˆ˜λ“€μ„ μΆ”μΆœν•  κ²ƒμ΄κ³  μ‹€μ œλ‘œ μ΄ λ³€μˆ˜λ“€μ„ ν˜ΈμΆœν•  κ²ƒμž…λ‹ˆλ‹€.
+
+---
+
+이 κ²½μš°μ—, μ²«λ²ˆμ§Έ `CommonQueryParams` λ³€μˆ˜λ₯Ό λ³΄λ©΄:
+
+```Python
+commons: CommonQueryParams ...
+```
+
+... **FastAPI**λŠ” `CommonQueryParams` λ³€μˆ˜μ— μ–΄λ– ν•œ νŠΉλ³„ν•œ μ˜λ―Έλ„ λΆ€μ—¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. FastAPIλŠ” μ΄ λ³€μˆ˜λ₯Ό λ°μ΄ν„° λ³€ν™˜, κ²€μ¦ λ“±μ— ν™œμš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. (ν™œμš©ν•˜λ €λ©΄ `= Depends(CommonQueryParams)`λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.)
+
+사싀 μ•„λž˜μ™€ κ°™μ΄ μž‘성해도 λ¬΄κ΄€ν•©λ‹ˆλ‹€:
+
+```Python
+commons = Depends(CommonQueryParams)
+```
+
+..전체적인 μ½”λ“œλŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€:
+
+=== "파이썬 3.6 μ΄μƒ"
+
+    ```Python hl_lines="19"
+    {!> ../../../docs_src/dependencies/tutorial003.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="17"
+    {!> ../../../docs_src/dependencies/tutorial003_py310.py!}
+    ```
+
+κ·ΈλŸ¬λ‚˜ μžλ£Œν˜•을 μ„ μ–Έν•˜λ©΄ μ—λ””ν„°κ°€ λ§€κ°œλ³€μˆ˜ `commons`둜 μ „달될 κ²ƒμ΄ λ¬΄μ—‡μΈμ§€ μ•Œκ²Œ λ˜κ³ , μ΄λ₯Ό ν†΅ν•΄ μ½”λ“œ μ™„μ„±, μžλ£Œν˜• ν™•인 λ“±μ— λ„움이 λ  μˆ˜ μžˆμœΌλ―€λ‘œ κΆŒμž₯λ©λ‹ˆλ‹€.
+
+<!-- <img src="/img/tutorial/dependencies/image02.png"> -->
+
+## μ½”λ“œ λ‹¨μΆ•
+
+κ·ΈλŸ¬λ‚˜ μ—¬κΈ° `CommonQueryParams`λ₯Ό λ‘ λ²ˆμ΄λ‚˜ μž‘μ„±ν•˜λŠ”, μ½”λ“œ λ°˜λ³΅μ΄ μžˆλ‹€λŠ” κ²ƒμ„ μ•Œ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€:
+
+```Python
+commons: CommonQueryParams = Depends(CommonQueryParams)
+```
+
+**FastAPI**λŠ” *특히* μ˜μ‘΄μ„±μ΄ **FastAPI**κ°€ ν΄λž˜μŠ€ μžμ²΄μ˜ μΈμŠ€ν„΄μŠ€λ₯Ό μƒμ„±ν•˜κΈ° μœ„ν•΄ "호좜"ν•˜λŠ” ν΄λž˜μŠ€μΈ κ²½μš°, μ‘°κΈˆ λ” μ‰¬μš΄ λ°©λ²•을 μ œκ³΅ν•©λ‹ˆλ‹€.
+
+μ΄λŸ¬ν•œ νŠΉμ •ν•œ κ²½μš°μ—λŠ” μ•„λž˜μ²˜λŸΌ μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€:
+
+μ΄λ ‡κ²Œ μ“°λŠ” κ²ƒ λŒ€μ‹ :
+
+```Python
+commons: CommonQueryParams = Depends(CommonQueryParams)
+```
+
+...μ΄λ ‡κ²Œ μ“Έ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.:
+
+```Python
+commons: CommonQueryParams = Depends()
+```
+
+μ˜μ‘΄μ„±μ„ λ§€κ°œλ³€μˆ˜μ˜ νƒ€μž…μœΌλ‘œ μ„ μ–Έν•˜λŠ” κ²½μš° `Depends(CommonQueryParams)`처럼 ν΄λž˜μŠ€ μ΄λ¦„ μ „체λ₯Ό *λ‹€μ‹œ* μž‘μ„±ν•˜λŠ” λŒ€μ‹ , λ§€κ°œλ³€μˆ˜λ₯Ό λ„£μ§€ μ•Šμ€ `Depends()`의 ν˜•νƒœλ‘œ μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+μ•„λž˜μ— κ°™μ€ μ˜ˆμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€:
+
+=== "파이썬 3.6 μ΄μƒ"
+
+    ```Python hl_lines="19"
+    {!> ../../../docs_src/dependencies/tutorial004.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="17"
+    {!> ../../../docs_src/dependencies/tutorial004_py310.py!}
+    ```
+
+...μ΄λ ‡κ²Œ μ½”λ“œλ₯Ό λ‹¨μΆ•ν•˜μ—¬λ„ **FastAPI**λŠ” λ¬΄μ—‡μ„ ν•΄μ•Όν•˜λŠ”μ§€ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€.
+
+!!! tip "팁"
+    λ§Œμ•½ μ΄κ²ƒμ΄ λ„움이 λ˜κΈ°λ³΄λ‹€ λ” ν—·κ°ˆλ¦¬κ²Œ λ§Œλ“ λ‹€λ©΄, μžŠμ–΄λ²„λ¦¬μ‹­μ‹œμ˜€. μ΄κ²ƒμ΄ λ°˜λ“œμ‹œ ν•„μš”ν•œ κ²ƒμ€ μ•„λ‹™λ‹ˆλ‹€.
+
+    μ΄κ²ƒμ€ λ‹¨μ§€ μ†μ‰¬μš΄ λ°©λ²•일 λΏμž…λ‹ˆλ‹€. μ™œλƒν•˜λ©΄ **FastAPI**λŠ” μ½”λ“œ λ°˜λ³΅μ„ μ΅œμ†Œν™”ν•  μˆ˜ μžˆλŠ” λ°©λ²•을 κ³ λ―Όν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
index 7d429478ce539621aedf775a3b850351bb00859a..1ab63e791850b091e6fdb5d9c325109427d47bed 100644 (file)
@@ -73,6 +73,8 @@ nav:
   - tutorial/request-forms-and-files.md
   - tutorial/encoder.md
   - tutorial/cors.md
+  - μ˜μ‘΄μ„±:
+    - tutorial/dependencies/classes-as-dependencies.md
 markdown_extensions:
 - toc:
     permalink: true