]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Korean translation for `docs/ko/docs/tutorial/security/get-current-user.md...
authorDoHyun Kim <tnghwk0661@gmail.com>
Tue, 23 Jan 2024 14:02:49 +0000 (23:02 +0900)
committerGitHub <noreply@github.com>
Tue, 23 Jan 2024 14:02:49 +0000 (09:02 -0500)
docs/ko/docs/tutorial/security/get-current-user.md [new file with mode: 0644]

diff --git a/docs/ko/docs/tutorial/security/get-current-user.md b/docs/ko/docs/tutorial/security/get-current-user.md
new file mode 100644 (file)
index 0000000..ce944b1
--- /dev/null
@@ -0,0 +1,151 @@
+# ν˜„μž¬ μ‚¬μš©μž κ°€μ Έμ˜€κΈ°
+
+이전 μž₯μ—μ„œ (μ˜μ‘΄μ„± μ£Όμž… μ‹œμŠ€ν…œμ„ κΈ°λ°˜μœΌλ‘œ ν•œ)λ³΄μ•ˆ μ‹œμŠ€ν…œμ€ *경둜 μž‘동 ν•¨μˆ˜*μ—μ„œ `str`둜 `token`을 μ œκ³΅ν–ˆμŠ΅λ‹ˆλ‹€:
+
+```Python hl_lines="10"
+{!../../../docs_src/security/tutorial001.py!}
+```
+
+κ·ΈλŸ¬λ‚˜ μ•„직도 μœ μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
+
+ν˜„μž¬ μ‚¬μš©μžλ₯Ό μ œκ³΅ν•˜λ„둝 ν•©μ‹œλ‹€.
+
+## μœ μ € λͺ¨λΈ μƒμ„±ν•˜κΈ°
+
+λ¨Όμ € Pydantic μœ μ € λͺ¨λΈμ„ λ§Œλ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.
+
+Pydantic을 μ‚¬μš©ν•˜μ—¬ λ³Έλ¬Έμ„ μ„ μ–Έν•˜λŠ” κ²ƒκ³Ό κ°™μ€ λ°©μ‹μœΌλ‘œ λ‹€λ₯Έ κ³³μ—μ„œ μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+=== "파이썬 3.7 μ΄μƒ"
+
+    ```Python hl_lines="5  12-16"
+    {!> ../../../docs_src/security/tutorial002.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="3  10-14"
+    {!> ../../../docs_src/security/tutorial002_py310.py!}
+    ```
+
+## `get_current_user` μ˜μ‘΄μ„± μƒμ„±ν•˜κΈ°
+
+μ˜μ‘΄μ„± `get_current_user`λ₯Ό λ§Œλ“€μ–΄ λ΄…μ‹œλ‹€.
+
+μ˜μ‘΄μ„±μ΄ ν•˜μœ„ μ˜μ‘΄μ„±μ„ κ°€μ§ˆ μˆ˜ μžˆλ‹€λŠ” κ²ƒμ„ κΈ°μ–΅ν•˜μ‹­λ‹ˆκΉŒ?
+
+`get_current_user`λŠ” μ΄μ „에 μƒμ„±ν•œ κ²ƒκ³Ό λ™μΌν•œ `oauth2_scheme`κ³Ό μ’…속성을 κ°–κ²Œ λ©λ‹ˆλ‹€.
+
+이전에 *경둜 λ™μž‘*μ—μ„œ μ§μ ‘ μˆ˜ν–‰ν–ˆλ˜ κ²ƒκ³Ό λ™μΌν•˜κ²Œ μƒˆ μ’…속성 `get_current_user`λŠ” ν•˜μœ„ μ’…속성 `oauth2_scheme`μ—μ„œ `str`둜 `token`을 μˆ˜μ‹ ν•©λ‹ˆλ‹€.
+
+=== "파이썬 3.7 μ΄μƒ"
+
+    ```Python hl_lines="25"
+    {!> ../../../docs_src/security/tutorial002.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="23"
+    {!> ../../../docs_src/security/tutorial002_py310.py!}
+    ```
+
+## μœ μ € κ°€μ Έμ˜€κΈ°
+
+`get_current_user`λŠ” ν† ν°μ„ `str`둜 μ·¨ν•˜κ³  Pydantic `User` λͺ¨λΈμ„ λ°˜ν™˜ν•˜λŠ” μš°λ¦¬κ°€ λ§Œλ“  (κ°€μ§œ) μœ ν‹Έλ¦¬ν‹° ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
+
+=== "파이썬 3.7 μ΄μƒ"
+
+    ```Python hl_lines="19-22  26-27"
+    {!> ../../../docs_src/security/tutorial002.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="17-20  24-25"
+    {!> ../../../docs_src/security/tutorial002_py310.py!}
+    ```
+
+## ν˜„μž¬ μœ μ € μ£Όμž…ν•˜κΈ°
+
+이제 *경둜 μž‘동*μ—μ„œ `get_current_user`와 λ™μΌν•œ `Depends`λ₯Ό μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+=== "파이썬 3.7 μ΄μƒ"
+
+    ```Python hl_lines="31"
+    {!> ../../../docs_src/security/tutorial002.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="29"
+    {!> ../../../docs_src/security/tutorial002_py310.py!}
+    ```
+
+Pydantic λͺ¨λΈμΈ `User`둜 `current_user`의 νƒ€μž…을 μ„ μ–Έν•˜λŠ” κ²ƒμ„ μ•Œμ•„μ•Ό ν•©λ‹ˆλ‹€.
+
+이것은 λͺ¨λ“  μ™„λ£Œ λ° νƒ€μž… κ²€μ‚¬λ₯Ό ν†΅ν•΄ ν•¨μˆ˜ λ‚΄λΆ€μ—μ„œ μš°λ¦¬λ₯Ό λ„μšΈ κ²ƒμž…λ‹ˆλ‹€.
+
+!!! νŒ
+    μš”μ²­ λ³Έλ¬Έλ„ Pydantic λͺ¨λΈλ‘œ μ„ μ–Έλœλ‹€λŠ” κ²ƒμ„ κΈ°μ–΅ν•  κ²ƒμž…λ‹ˆλ‹€.
+
+    μ—¬κΈ°μ„œ **FastAPI**λŠ” `Depends`λ₯Ό μ‚¬μš©ν•˜κ³  μžˆκΈ° λ•Œλ¬Έμ— ν˜Όλ™λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
+
+!!! ν™•인
+    μ΄ μ˜μ‘΄μ„± μ‹œμŠ€ν…œμ΄ μ„€κ³„λœ λ°©μ‹μ€ λͺ¨λ‘ `User` λͺ¨λΈμ„ λ°˜ν™˜ν•˜λŠ” λ‹€μ–‘ν•œ μ˜μ‘΄μ„±(λ‹€λ₯Έ "의쑴적인")을 κ°€μ§ˆ μˆ˜ μžˆλ„둝 ν•©λ‹ˆλ‹€.
+
+    ν•΄λ‹Ή νƒ€μž…μ˜ λ°μ΄ν„°λ₯Ό λ°˜ν™˜ν•  μˆ˜ μžˆλŠ” μ˜μ‘΄μ„±μ΄ ν•˜λ‚˜λ§Œ μžˆλŠ” κ²ƒμœΌλ‘œ μ œν•œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
+
+## λ‹€λ₯Έ λͺ¨λΈ
+
+이제 *경둜 μž‘동 ν•¨μˆ˜*μ—μ„œ ν˜„μž¬ μ‚¬μš©μžλ₯Ό μ§μ ‘ κ°€μ Έμ˜¬ μˆ˜ μžˆμœΌλ©° `Depends`λ₯Ό μ‚¬μš©ν•˜μ—¬ **μ˜μ‘΄μ„± μ£Όμž…** μˆ˜μ€€μ—μ„œ λ³΄μ•ˆ λ©”μ»€λ‹ˆμ¦˜μ„ μ²˜λ¦¬ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+그리고 λ³΄μ•ˆ μš”ꡬ μ‚¬ν•­μ— λŒ€ν•œ λͺ¨λ“  λͺ¨λΈ λ˜λŠ” λ°μ΄ν„°λ₯Ό μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€(이 κ²½μš° Pydantic λͺ¨λΈ `User`).
+
+κ·ΈλŸ¬λ‚˜ μΌλΆ€ νŠΉμ • λ°μ΄ν„° λͺ¨λΈ, ν΄λž˜μŠ€ λ˜λŠ” νƒ€μž…을 μ‚¬μš©ν•˜λ„둝 μ œν•œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
+
+λͺ¨λΈμ— `id`와 `email`이 μžˆκ³  `username`이 μ—†κΈΈ μ›ν•˜μ‹­λ‹ˆκΉŒ? λ§žμŠ΅λ‹ˆλ‹€. μ΄λ“€μ€ λ™μΌν•œ λ„ꡬλ₯Ό μ‚¬μš©ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+`str`만 κ°–κ³  μ‹ΆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ κ·Έλƒ₯ `dict`λ₯Ό κ°–κ³  μ‹ΆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ λ°μ΄ν„°λ² μ΄μŠ€ ν΄λž˜μŠ€ λͺ¨λΈ μΈμŠ€ν„΄μŠ€λ₯Ό μ§μ ‘ κ°–κ³  μ‹ΆμŠ΅λ‹ˆκΉŒ? κ·Έλ“€μ€ λͺ¨λ‘ κ°™μ€ λ°©μ‹μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.
+
+μ‹€μ œλ‘œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— λ‘œκ·ΈμΈν•˜λŠ” μ‚¬μš©μžκ°€ μ—†μ§€λ§Œ μ•‘μ„ΈμŠ€ ν† ν°λ§Œ μžˆλŠ” λ‘œλ΄‡, λ΄‡ λ˜λŠ” κΈ°νƒ€ μ‹œμŠ€ν…œμ΄ μžˆμŠ΅λ‹ˆκΉŒ? λ‹€μ‹œ λ§ν•˜μ§€λ§Œ λͺ¨λ‘ λ™μΌν•˜κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.
+
+μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— ν•„μš”ν•œ λͺ¨λ“  μ’…λ₯˜μ˜ λͺ¨λΈ, λͺ¨λ“  μ’…λ₯˜μ˜ ν΄λž˜μŠ€, λͺ¨λ“  μ’…λ₯˜μ˜ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜μ‹­μ‹œμ˜€. **FastAPI**λŠ” μ˜μ‘΄μ„± μ£Όμž… μ‹œμŠ€ν…œμ„ λ‹€λ£¨μ—ˆμŠ΅λ‹ˆλ‹€.
+
+## μ½”λ“œ μ‚¬μ΄μ¦ˆ
+
+이 μ˜ˆλŠ” μž₯ν™©ν•΄ λ³΄μΌ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. λ™μΌν•œ νŒŒμΌμ—μ„œ λ³΄μ•ˆ, λ°μ΄ν„° λͺ¨λΈ, μœ ν‹Έλ¦¬ν‹° κΈ°λŠ₯ λ° *경둜 μž‘동*을 ν˜Όν•©ν•˜κ³  μžˆμŒμ„ μ—Όλ‘μ— λ‘μ‹­μ‹œμ˜€.
+
+κ·ΈλŸ¬λ‚˜ μ΄κ²Œ ν‚€ν¬μΈνŠΈμž…λ‹ˆλ‹€.
+
+λ³΄μ•ˆκ³Ό μ’…속성 μ£Όμž… ν•­λͺ©μ„ ν•œ λ²ˆλ§Œ μž‘μ„±ν•˜λ©΄ λ©λ‹ˆλ‹€.
+
+그리고 μ›ν•˜λŠ” λ§ŒνΌ λ³΅μž‘ν•˜κ²Œ λ§Œλ“€ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. κ·Έλž˜λ„ μœ μ—°μ„±κ³Ό ν•¨κ»˜ ν•œ κ³³μ— ν•œ λ²ˆμ— μž‘μ„±ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+κ·ΈλŸ¬λ‚˜ λ™μΌν•œ λ³΄μ•ˆ μ‹œμŠ€ν…œμ„ μ‚¬μš©ν•˜μ—¬ μˆ˜μ²œ κ°œμ˜ μ—”λ“œν¬μΈνŠΈ(*경둜 μž‘동*)λ₯Ό κ°€μ§ˆ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+그리고 κ·Έλ“€ λͺ¨λ‘(λ˜λŠ” μ›ν•˜λŠ” λΆ€λΆ„)λŠ” μ΄λŸ¬ν•œ μ˜μ‘΄μ„± λ˜λŠ” μƒμ„±ν•œ λ‹€λ₯Έ μ˜μ‘΄μ„±μ„ μž¬μ‚¬μš©ν•˜λŠ” μ΄μ μ„ μ–»μ„ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+그리고 μ΄ μˆ˜μ²œ κ°œμ˜ *경둜 μž‘동*은 λͺ¨λ‘ 3쀄 μ •λ„λ‘œ μ€„일 μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+=== "파이썬 3.7 μ΄μƒ"
+
+    ```Python hl_lines="30-32"
+    {!> ../../../docs_src/security/tutorial002.py!}
+    ```
+
+=== "파이썬 3.10 μ΄μƒ"
+
+    ```Python hl_lines="28-30"
+    {!> ../../../docs_src/security/tutorial002_py310.py!}
+    ```
+
+## μš”μ•½
+
+이제 *경둜 μž‘동 ν•¨μˆ˜*μ—μ„œ ν˜„μž¬ μ‚¬μš©μžλ₯Ό μ§μ ‘ κ°€μ Έμ˜¬ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+μš°λ¦¬λŠ” μ΄λ―Έ μ΄λ“€ μ‚¬μ΄μ— μžˆμŠ΅λ‹ˆλ‹€.
+
+μ‚¬μš©μž/ν΄λΌμ΄μ–ΈνŠΈκ°€ μ‹€μ œλ‘œ `username`κ³Ό `password`λ₯Ό λ³΄λ‚΄λ €λ©΄ *경둜 μž‘동*을 μΆ”κ°€ν•˜κΈ°λ§Œ ν•˜λ©΄ λ©λ‹ˆλ‹€.
+
+λ‹€μŒ μž₯을 ν™•인해 λ΄…μ‹œλ‹€.