]> git.ipfire.org Git - thirdparty/fastapi/fastapi.git/commitdiff
🌐 Add Korean translation for `docs/ko/docs/tutorial/background-tasks.md` (#5910)
authorJun-Ah μ€€μ•„ <junah.dev@gmail.com>
Sat, 27 Jan 2024 09:28:49 +0000 (18:28 +0900)
committerGitHub <noreply@github.com>
Sat, 27 Jan 2024 09:28:49 +0000 (04:28 -0500)
docs/ko/docs/tutorial/background-tasks.md [new file with mode: 0644]

diff --git a/docs/ko/docs/tutorial/background-tasks.md b/docs/ko/docs/tutorial/background-tasks.md
new file mode 100644 (file)
index 0000000..a951ead
--- /dev/null
@@ -0,0 +1,102 @@
+# λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…
+
+FastAPIμ—μ„œλŠ” μ‘닡을 λ°˜ν™˜ν•œ ν›„에 μ‹€ν–‰ν•  λ°±κ·ΈλΌμš΄λ“œ μž‘업을 μ •μ˜ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+λ°±κ·ΈλΌμš΄λ“œ μž‘업은 ν΄λΌμ΄μ–ΈνŠΈκ°€ μ‘닡을 λ°›κΈ° μœ„ν•΄ μž‘업이 μ™„λ£Œλ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ¦΄ ν•„μš”κ°€ μ—†κΈ° λ•Œλ¬Έμ— μš”μ²­ ν›„에 λ°œμƒν•΄μ•Όν•˜λŠ” μž‘업에 λ§€μš° μœ μš©ν•©λ‹ˆλ‹€.
+
+μ΄λŸ¬ν•œ μž‘μ—…μ—λŠ” λ‹€μŒμ΄ ν¬ν•¨λ©λ‹ˆλ‹€.
+
+* μž‘업을 μˆ˜ν–‰ν•œ ν›„ μ „μ†‘λ˜λŠ” μ΄λ©”일 μ•Œλ¦Ό
+    * μ΄λ©”일 μ„œλ²„에 μ—°κ²°ν•˜κ³  μ΄λ©”일을 μ „μ†‘ν•˜λŠ” κ²ƒμ€ (λͺ‡ μ΄ˆ μ •도) "느린" κ²½ν–₯이 μžˆμœΌλ―€λ‘œ, μ‘닡은 μ¦‰μ‹œ λ°˜ν™˜ν•˜κ³  μ΄λ©”일 μ•Œλ¦Όμ€ λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ „μ†‘ν•˜λŠ” κ²Œ κ°€λŠ₯ν•©λ‹ˆλ‹€.
+* λ°μ΄ν„° μ²˜λ¦¬:
+    * μ˜ˆλ₯Ό λ“€μ–΄ μ²˜λ¦¬μ— μ˜€λžœ μ‹œκ°„이 κ±Έλ¦¬λŠ” λ°μ΄ν„°λ₯Ό λ°›μ•˜μ„ λ•Œ "Accepted" (HTTP 202)을 λ°˜ν™˜ν•˜κ³ , λ°±κ·ΈλΌμš΄λ“œμ—μ„œ λ°μ΄ν„°λ₯Ό μ²˜λ¦¬ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+## `λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…` μ‚¬μš©
+
+λ¨Όμ € μ•„λž˜μ™€ κ°™μ΄ `BackgroundTasks`λ₯Ό μž„ν¬νŠΈν•˜κ³ , `BackgroundTasks`λ₯Ό _경둜 λ™μž‘ ν•¨μˆ˜_ μ—μ„œ λ§€κ°œλ³€μˆ˜λ‘œ κ°€μ Έμ˜€κ³  μ •μ˜ν•©λ‹ˆλ‹€.
+
+```Python hl_lines="1  13"
+{!../../../docs_src/background_tasks/tutorial001.py!}
+```
+
+**FastAPI** λŠ” `BackgroundTasks` κ°œμ²΄λ₯Ό μƒμ„±ν•˜κ³ , λ§€κ°œ λ³€μˆ˜λ‘œ μ „λ‹¬ν•©λ‹ˆλ‹€.
+
+## μž‘μ—… ν•¨μˆ˜ μƒμ„±
+
+λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μœΌλ‘œ μ‹€ν–‰ν•  ν•¨μˆ˜λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
+
+이것은 λ‹¨μˆœνžˆ λ§€κ°œλ³€μˆ˜λ₯Ό λ°›μ„ μˆ˜ μžˆλŠ” ν‘œμ€€ ν•¨μˆ˜μΌ λΏμž…λ‹ˆλ‹€.
+
+**FastAPI**λŠ” μ΄κ²ƒμ΄ `async def` ν•¨μˆ˜μ΄λ“ , μΌλ°˜ `def` ν•¨μˆ˜μ΄λ“  λ‚΄λΆ€μ μœΌλ‘œ μ΄λ₯Ό μ˜¬λ°”λ₯΄κ²Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.
+
+이 κ²½μš°, μ•„λž˜ μž‘업은 νŒŒμΌμ— μ“°λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. (이메일 λ³΄λ‚΄κΈ° μ‹œλ¬Όλ ˆμ΄μ…˜)
+
+그리고 μ΄ μž‘업은 `async`와 `await`λ₯Ό μ‚¬μš©ν•˜μ§€ μ•ŠμœΌλ―€λ‘œ μΌλ°˜ `def` ν•¨μˆ˜λ‘œ μ„ μ–Έν•©λ‹ˆλ‹€.
+
+```Python hl_lines="6-9"
+{!../../../docs_src/background_tasks/tutorial001.py!}
+```
+
+## λ°±κ·ΈλΌμš΄λ“œ μž‘μ—… μΆ”κ°€
+
+_경둜 λ™μž‘ ν•¨μˆ˜_ λ‚΄μ—μ„œ μž‘μ—… ν•¨μˆ˜λ₯Ό `.add_task()` ν•¨μˆ˜ ν†΅ν•΄ _λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…_ κ°œμ²΄μ— μ „λ‹¬ν•©λ‹ˆλ‹€.
+
+```Python hl_lines="14"
+{!../../../docs_src/background_tasks/tutorial001.py!}
+```
+
+`.add_task()` ν•¨μˆ˜λŠ” λ‹€μŒκ³Ό κ°™μ€ μΈμžλ₯Ό λ°›μŠ΅λ‹ˆλ‹€ :
+
+- λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ˜λŠ” μž‘μ—… ν•¨μˆ˜ (`write_notification`).
+- μž‘μ—… ν•¨μˆ˜μ— μˆœμ„œλŒ€λ‘œ μ „λ‹¬λ˜μ–΄μ•Ό ν•˜λŠ” μΌλ ¨μ˜ μΈμž (`email`).
+- μž‘μ—… ν•¨μˆ˜μ— μ „λ‹¬λ˜μ–΄μ•Όν•˜λŠ” λͺ¨λ“  ν‚€μ›Œλ“œ μΈμž (`message="some notification"`).
+
+## μ˜μ‘΄μ„± μ£Όμž…
+
+`BackgroundTasks`λ₯Ό μ˜μ‘΄μ„± μ£Όμž… μ‹œμŠ€ν…œκ³Ό ν•¨κ»˜ μ‚¬μš©ν•˜λ©΄ _경둜 λ™μž‘ ν•¨μˆ˜_, μ’…속성, ν•˜μœ„ μ’…속성 λ“± μ—¬λŸ¬ μˆ˜μ€€μ—μ„œ BackgroundTasks μœ ν˜•μ˜ λ§€κ°œλ³€μˆ˜λ₯Ό μ„ μ–Έν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+**FastAPI**λŠ” κ° κ²½μš°μ— μˆ˜ν–‰ν•  μž‘μ—…κ³Ό λ™μΌν•œ κ°œμ²΄λ₯Ό λ‚΄λΆ€μ μœΌλ‘œ μž¬μ‚¬μš©ν•˜κΈ°μ—, λͺ¨λ“  λ°±κ·ΈλΌμš΄λ“œ μž‘업이 ν•¨κ»˜ λ³‘ν•©λ˜κ³  λ‚˜μ€‘에 λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.
+
+=== "Python 3.6 and above"
+
+    ```Python hl_lines="13  15  22  25"
+    {!> ../../../docs_src/background_tasks/tutorial002.py!}
+    ```
+
+=== "Python 3.10 and above"
+
+    ```Python hl_lines="11  13  20  23"
+    {!> ../../../docs_src/background_tasks/tutorial002_py310.py!}
+    ```
+
+이 μ˜ˆμ œμ—μ„œλŠ” μ‘닡이 λ°˜ν™˜λœ ν›„에 `log.txt` νŒŒμΌμ— λ©”μ‹œμ§€κ°€ κΈ°λ‘λ©λ‹ˆλ‹€.
+
+μš”μ²­μ— μΏΌλ¦¬κ°€ μžˆλŠ” κ²½μš° λ°±κ·ΈλΌμš΄λ“œ μž‘μ—…μ˜ λ‘œκ·Έμ— κΈ°λ‘λ©λ‹ˆλ‹€.
+
+그리고 _경둜 λ™μž‘ ν•¨μˆ˜_ μ—μ„œ μƒμ„±λœ λ˜ λ‹€λ₯Έ λ°±κ·ΈλΌμš΄λ“œ μž‘업은 κ²½λ‘œ λ§€κ°œ λ³€μˆ˜λ₯Ό ν™œμš©ν•˜μ—¬ μ‚¬μš©ν•˜μ—¬ λ©”μ‹œμ§€λ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.
+
+## κΈ°μˆ μ  μ„ΈλΆ€μ‚¬ν•­
+
+`BackgroundTasks` ν΄λž˜μŠ€λŠ” <a href="https://www.starlette.io/background/" class="external-link" target="_blank">`starlette.background`</a>μ—μ„œ μ§μ ‘ κ°€μ Έμ˜΅λ‹ˆλ‹€.
+
+`BackgroundTasks` ν΄λž˜μŠ€λŠ” FastAPIμ—μ„œ μ§μ ‘ μž„ν¬νŠΈν•˜κ±°λ‚˜ ν¬ν•¨ν•˜κΈ° λ•Œλ¬Έμ— μ‹€μˆ˜λ‘œ `BackgroundTask` (끝에 `s`κ°€ μ—†μŒ)을 μž„ν¬νŠΈν•˜λ”λΌλ„ starlette.backgroundμ—μ„œ `BackgroundTask`λ₯Ό κ°€μ Έμ˜€λŠ” κ²ƒμ„ λ°©μ§€ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+(`BackgroundTask`κ°€ μ•„λ‹Œ) `BackgroundTasks`λ₯Ό μ‚¬μš©ν•˜λ©΄, _경둜 λ™μž‘ ν•¨μˆ˜_ λ§€κ°œλ³€μˆ˜λ‘œ μ‚¬μš©ν•  μˆ˜ μžˆκ²Œ λ˜κ³  λ‚˜λ¨Έμ§€λŠ” **FastAPI**κ°€ λŒ€μ‹  μ²˜λ¦¬ν•˜λ„둝 ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. μ΄κ²ƒμ€ `Request` κ°μ²΄λ₯Ό μ§μ ‘ μ‚¬μš©ν•˜λŠ” κ²ƒκ³Ό κ°™μ€ λ°©μ‹μž…λ‹ˆλ‹€.
+
+FastAPIμ—μ„œ `BackgroundTask`λ₯Ό λ‹¨λ…μœΌλ‘œ μ‚¬μš©ν•˜λŠ” κ²ƒμ€ μ—¬μ „νžˆ κ°€λŠ₯ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ°μ²΄λ₯Ό μ½”λ“œμ—μ„œ μƒμ„±ν•˜κ³ , μ΄ κ°μ²΄λ₯Ό ν¬ν•¨ν•˜λŠ” Starlette `Response`λ₯Ό λ°˜ν™˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.
+
+<a href="https://www.starlette.io/background/" class="external-link" target="_blank">`Starlette의 κ³΅μ‹ λ¬Έμ„œ`</a>μ—μ„œ λ°±κ·ΈλΌμš΄λ“œ μž‘업에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ„ ν™•인할 μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+## κ²½κ³ 
+
+λ§Œμ•½ λ¬΄κ±°μš΄ λ°±κ·ΈλΌμš΄λ“œ μž‘업을 μˆ˜ν–‰ν•΄μ•Όν•˜κ³  λ™μΌν•œ ν”„λ‘œμ„ΈμŠ€μ—μ„œ μ‹€ν–‰ν•  ν•„μš”κ°€ μ—†λŠ” κ²½μš° (예: λ©”λͺ¨λ¦¬, λ³€μˆ˜ λ“±μ„ κ³΅μœ ν•  ν•„μš”κ°€ μ—†μŒ) <a href="https://docs.celeryq.dev" class="external-link" target="_blank">`Celery`</a>와 κ°™μ€ ν° λ„ꡬλ₯Ό μ‚¬μš©ν•˜λ©΄ λ„움이 λ  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+RabbitMQ λ˜λŠ” Redis와 κ°™μ€ λ©”μ‹œμ§€/μž‘μ—… ν μ‹œμŠ€ν…œ λ³΄λ‹€ λ³΅μž‘ν•œ κ΅¬μ„±μ΄ ν•„μš”ν•œ κ²½ν–₯이 μžˆμ§€λ§Œ, μ—¬λŸ¬ μž‘μ—… ν”„λ‘œμ„ΈμŠ€λ₯Ό νŠΉνžˆ μ—¬λŸ¬ μ„œλ²„μ˜ λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.
+
+예제λ₯Ό λ³΄μ‹œλ €λ©΄ [ν”„λ‘œμ νŠΈ μƒμ„±κΈ°](../project-generation.md){.internal-link target=\_blank} λ₯Ό μ°Έκ³ ν•˜μ„Έμš”. ν•΄λ‹Ή μ˜ˆμ œμ—λŠ” μ΄λ―Έ κ΅¬μ„±λœ `Celery`κ°€ ν¬ν•¨λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
+
+κ·ΈλŸ¬λ‚˜ λ™μΌν•œ FastAPI μ•±μ—μ„œ λ³€μˆ˜ λ° κ°œμ²΄μ— μ ‘κ·Όν•΄μ•Όν–λŠ” μž‘은 λ°±κ·ΈλΌμš΄λ“œ μˆ˜ν–‰μ΄ ν•„μš”ν•œ κ²½μš° (예 : μ•Œλ¦Ό μ΄λ©”일 λ³΄λ‚΄κΈ°) κ°„λ‹¨ν•˜κ²Œ `BackgroundTasks`λ₯Ό μ‚¬μš©ν•΄λ³΄μ„Έμš”.
+
+## μš”μ•½
+
+λ°±κ·ΈλΌμš΄λ“œ μž‘업을 μΆ”κ°€ν•˜κΈ° μœ„ν•΄ _경둜 λ™μž‘ ν•¨μˆ˜_ μ— λ§€κ°œλ³€μˆ˜λ‘œ `BackgroundTasks`λ₯Ό κ°€μ Έμ˜€κ³  μ‚¬μš©ν•©λ‹ˆλ‹€.