From: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com>
Date: Sat, 24 Jan 2026 21:16:10 +0000 (+0300)
Subject: 🌐 Update translations for ko (update outdated, found by fixer tool) (#14738)
X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eaf07c5d849ce4564b8708b4965a232fd026f1fe;p=thirdparty%2Ffastapi%2Ffastapi.git
🌐 Update translations for ko (update outdated, found by fixer tool) (#14738)
* Update outdated pages found by fixer tool
* Re-translate with updated prompt (fixed translation for `you`)
* Re-translate with `gtpt-5` model
* Re-translate with new preferred translation for `burger`
* Re-translate with new preferred translations for `app` and `command`
---
diff --git a/docs/ko/docs/async.md b/docs/ko/docs/async.md
index ec503d540..36f1ca6bf 100644
--- a/docs/ko/docs/async.md
+++ b/docs/ko/docs/async.md
@@ -1,18 +1,18 @@
-# ëìì±ê³¼ async / await
+# ëìì±ê³¼ async / await { #concurrency-and-async-await }
-*ê²½ë¡ ìë í¨ì*ììì `async def` 문ë²ì ëí ì¸ë¶ì¬íê³¼ ë¹ë기 ì½ë, ëìì± ë° ë³ë ¬ì±ì ëí ë°°ê²½
+*ê²½ë¡ ì²ë¦¬ í¨ì*ììì `async def` 문ë²ì ëí ì¸ë¶ì¬íê³¼ ë¹ë기 ì½ë, ëìì± ë° ë³ë ¬ì±ì ëí ë°°ê²½
-## ë°ìì ê²½ì°
+## ë°ìì ê°ì? { #in-a-hurry }
-ìì½
+TL;DR:
-ë¤ìê³¼ ê°ì´ `await`를 ì¬ì©í´ í¸ì¶íë ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì¬ì©íë ê²½ì°:
+ë¤ìê³¼ ê°ì´ `await`를 ì¬ì©í´ í¸ì¶íë¼ê³ ìë´íë ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì¬ì©íë ê²½ì°:
```Python
results = await some_library()
```
-ë¤ìì²ë¼ *ê²½ë¡ ìë í¨ì*를 `async def`를 ì¬ì©í´ ì ì¸íììì¤:
+ë¤ìì²ë¼ *ê²½ë¡ ì²ë¦¬ í¨ì*를 `async def`를 ì¬ì©í´ ì ì¸íììì¤:
```Python hl_lines="2"
@app.get('/')
@@ -29,7 +29,7 @@ async def read_results():
---
-ë°ì´í°ë² ì´ì¤, API, íì¼ìì¤í
ë±ê³¼ ìì¬ìíµíë ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì¬ì©íê³ , ê·¸ê²ì´ `await`를 ì§ìíì§ ìë ê²½ì°(íì¬ ê±°ì 모ë ë°ì´í°ë² ì´ì¤ ë¼ì´ë¸ë¬ë¦¬ê° ê·¸ë¬í©ëë¤), *ê²½ë¡ ìë í¨ì*를 ì¼ë°ì ì¸ `def`를 ì¬ì©í´ ì ì¸íììì¤:
+ë°ì´í°ë² ì´ì¤, API, íì¼ìì¤í
ë±ê³¼ ìì¬ìíµíë ì 3ì ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì¬ì©íê³ , ê·¸ê²ì´ `await` ì¬ì©ì ì§ìíì§ ìë ê²½ì°(íì¬ ëë¶ë¶ì ë°ì´í°ë² ì´ì¤ ë¼ì´ë¸ë¬ë¦¬ê° ê·¸ë¬í©ëë¤), *ê²½ë¡ ì²ë¦¬ í¨ì*를 ì¼ë°ì ì¸ `def`를 ì¬ì©í´ ì ì¸íììì¤:
```Python hl_lines="2"
@app.get('/')
@@ -40,23 +40,23 @@ def results():
---
-ë§ì½ ë¹ì ì ìì©íë¡ê·¸ë¨ì´ (ì´ì§¸ìì¸ì§) ë¤ë¥¸ 무ìê³¼ ìì¬ìíµíê³ ê·¸ê²ì´ ìëµí기를 기ë¤ë¦´ íìê° ìë¤ë©´ `async def`를 ì¬ì©íììì¤.
+ë§ì½ ì¬ë¬ë¶ì ì í리ì¼ì´ì
ì´ (ì´ì§¸ìì¸ì§) ë¤ë¥¸ ì´ë¤ ê²ê³¼ë íµì íê³ ê·¸ ìëµì 기ë¤ë¦´ íìê° ìë¤ë©´, ë´ë¶ìì `await`를 ì¬ì©í íìê° ìëë¼ë `async def`를 ì¬ì©íì¸ì.
---
-ëª¨ë¥´ê² ë¤ë©´, ê·¸ë¥ `def`를 ì¬ì©íììì¤.
+ì ëª¨ë¥´ê² ë¤ë©´, ì¼ë°ì ì¸ `def`를 ì¬ì©íì¸ì.
---
-**ì°¸ê³ **: *ê²½ë¡ ìë í¨ì*ìì íìíë§í¼ `def`ì `async def`를 í¼ì©í ì ìê³ , ê°ì¥ ìë§ì ê²ì ì íí´ì ì ìí ì ììµëë¤. FastAPIê° ìì²´ì ì¼ë¡ ìë§ì ìì
ì ìíí ê²ì
ëë¤.
+**ì°¸ê³ **: *ê²½ë¡ ì²ë¦¬ í¨ì*ìì íìí ë§í¼ `def`ì `async def`를 í¼ì©í ì ìì¼ë©°, ê°ê°ì ëí´ ê°ì¥ ìë§ì ìµì
ì ì íí´ ì ìíë©´ ë©ëë¤. FastAPIê° ì¬ë°ë¥´ê² ì²ë¦¬í©ëë¤.
-ì´ì°ëìë , ì기 ì´ë í ê²½ì°ë¼ë, FastAPIë ì¬ì í ë¹ë기ì ì¼ë¡ ìëíê³ ë§¤ì° ë¹ ë¦
ëë¤.
+ì´ì¨ë ìì ì´ë¤ ê²½ì°ììë FastAPIë ì¬ì í ë¹ë기ì ì¼ë¡ ëìíë©° ë§¤ì° ë¹ ë¦
ëë¤.
-ê·¸ë¬ë ì기 ìì
ì ìíí¨ì¼ë¡ì¨ ì´ë ì ëì ì±ë¥ ìµì íê° ê°ë¥í©ëë¤.
+íì§ë§ ìì ë¨ê³ë¥¼ ë°ë¥´ë©´, ëª ê°ì§ ì±ë¥ ìµì í를 í ì ììµëë¤.
-## 기ì ì ì¸ë¶ì¬í
+## 기ì ì ì¸ë¶ì¬í { #technical-details }
-ìµì íì´ì¬ ë²ì ì `async`ì `await` 문ë²ê³¼ í¨ê» **âì½ë£¨í´â**ì´ë¼ê³ íë ê²ì ì¬ì©íë **âë¹ë기 ì½ëâ**를 ì§ìí©ëë¤.
+ìµì íì´ì¬ ë²ì ì **âì½ë£¨í´â**ì´ë¼ê³ íë ê²ì ì¬ì©íë **âë¹ë기 ì½ëâ**를 **`async` ë° `await`** 문ë²ê³¼ í¨ê» ì§ìí©ëë¤.
ìë ì¹ì
ë¤ìì í´ë¹ 문ì¥ì ë¶ë¶ë³ë¡ ì´í´ë³´ê² ìµëë¤:
@@ -64,251 +64,283 @@ def results():
* **`async`ì `await`**
* **ì½ë£¨í´**
-## ë¹ë기 ì½ë
+## ë¹ë기 ì½ë { #asynchronous-code }
-ë¹ë기 ì½ëë ì¸ì´ ð¬ ê° ì½ëì ì´ë í ë¶ë¶ìì, ì»´í¨í° / íë¡ê·¸ë¨ð¤ìê² *ë¤ë¥¸ 무ì¸ê°*ê° ì´ëê°ìì ëë ëê¹ì§ 기ë¤ë ¤ì¼íë¤ê³ ë§íë ë°©ìì
ëë¤. *ë¤ë¥¸ 무ì¸ê°*ê° âë린-íì¼" ð ì´ë¼ê³ ë¶ë¦°ë¤ê³ ê°ì í´ë´
ìë¤.
+ë¹ë기 ì½ëë ì¸ì´ ð¬ ê° ì½ëì ì´ë í ë¶ë¶ìì ì»´í¨í°/íë¡ê·¸ë¨ ð¤ ìê², ì´ë ìì ìë ì´ëê°ìì *ë¤ë¥¸ 무ì¸ê°*ê° ëë ëê¹ì§ 기ë¤ë ¤ì¼ íë¤ê³ ë§í ì ìë ë°©ë²ì´ ìë¤ë ì미ì
ëë¤. ê·¸ *ë¤ë¥¸ 무ì¸ê°*를 "slow-file" ð ì´ë¼ê³ í´ë³´ê² ìµëë¤.
-ë°ë¼ì âë린-íì¼â ðì´ ëë ëê¹ì§ ì»´í¨í°ë ë¤ë¥¸ ìì
ì ìíí ì ììµëë¤.
+ë°ë¼ì ê·¸ ìê° ëì ì»´í¨í°ë "slow-file" ð ì´ ëëë ëì ë¤ë¥¸ ìì
ì íë¬ ê° ì ììµëë¤.
-ê·¸ ë¤ì ì»´í¨í° / íë¡ê·¸ë¨ ð¤ ì ë¤ì 기ë¤ë¦¬ê³ ì기 ë문ì 기íê° ìì ëë§ë¤ ë¤ì ëìì¤ê±°ë, í¹ì ë¹ìì ìíí´ì¼íë ìì
ë¤ì´ ìë£ë ëë§ë¤ ë¤ì ëììµëë¤. ê·¸ë¦¬ê³ ê·¸ê² ð¤ ì 기ë¤ë¦¬ê³ ìë ìì
ì¤ ì´ë ê²ì´ ì´ë¯¸ ìë£ëìëì§, ê·¸ê² ð¤ ì´ í´ì¼íë 모ë ìì
ì ìííë©´ì íì¸í©ëë¤.
+ê·¸ ë¤ì ì»´í¨í°/íë¡ê·¸ë¨ ð¤ ì ë¤ì 기ë¤ë¦¬ë ì¤ì´ê¸° ë문ì 기íê° ìì ëë§ë¤ ëìì¤ê±°ë, í¹ì ê·¸ ìì ì í´ì¼ í ìì
ì 모ë ëë¼ ëë§ë¤ ëììµëë¤. ê·¸ë¦¬ê³ ê¸°ë¤ë¦¬ë ìì
ì¤ ì´ë¯¸ ëë ê²ì´ ìëì§ íì¸íë©´ì, í´ì¼ íë ìì
ì ìíí©ëë¤.
-ë¤ìì¼ë¡, ê·¸ê² ð¤ ì ìë£í 첫ë²ì§¸ ìì
ì ì°©ìíê³ (ì°ë¦¬ì "ë린-íì¼" ð ì´ë¼ê³ ê°ì í©ìë¤) ê·¸ì ëí´ ìíí´ì¼íë ìì
ì ê³ìí©ëë¤.
+ë¤ìì¼ë¡, ìë£ë 첫 ë²ì§¸ ìì
(ì°ë¦¬ì "slow-file" ð ì´ë¼ê³ í´ë³´ê² ìµëë¤)ì ê°ì ¸ìì, ê·¸ì ëí´ í´ì¼ íë ìì
ì ê³ìí©ëë¤.
-"ë¤ë¥¸ 무ì¸ê°ë¥¼ 기ë¤ë¦¬ë ê²"ì ì¼ë°ì ì¼ë¡ ë¹êµì "ë린" (íë¡ì¸ìì RAM ë©ëª¨ë¦¬ ìëì ë¹í´) I/O ìì
ì ì미í©ëë¤. ì를 ë¤ë©´ ë¤ìì ê²ë¤ì 기ë¤ë¦¬ë ê²ì
ëë¤:
+ì´ "ë¤ë¥¸ 무ì¸ê°ë¥¼ 기ë¤ë¦¬ë ê²"ì ì¼ë°ì ì¼ë¡ íë¡ì¸ìì RAM ë©ëª¨ë¦¬ ìëì ë¹í´ ìëì ì¼ë¡ "ë린" I/O ìì
ì ì미í©ëë¤. ì를 ë¤ì´ ë¤ìì 기ë¤ë¦¬ë ê²ì
ëë¤:
-* ë¤í¸ìí¬ë¥¼ íµí´ í´ë¼ì´ì¸í¸ë¡ë¶í° ì ì¡ëë ë°ì´í°
-* ë¤í¸ìí¬ë¥¼ íµí´ í´ë¼ì´ì¸í¸ê° ìì í , ë¹ì ì íë¡ê·¸ë¨ì¼ë¡ë¶í° ì ì¡ëë ë°ì´í°
-* ìì¤í
ì´ ì½ê³ íë¡ê·¸ë¨ì ì ë¬í ëì¤í¬ ë´ì íì¼ ë´ì©
-* ë¹ì ì íë¡ê·¸ë¨ì´ ìì¤í
ì ì ë¬íë, ëì¤í¬ì ìì±ë ë´ì©
+* ë¤í¸ìí¬ë¥¼ íµí´ í´ë¼ì´ì¸í¸ê° ë°ì´í°ë¥¼ ë³´ë´ë ê²
+* ë¤í¸ìí¬ë¥¼ íµí´ í´ë¼ì´ì¸í¸ê° ì¬ë¬ë¶ì íë¡ê·¸ë¨ì´ ë³´ë¸ ë°ì´í°ë¥¼ ë°ë ê²
+* ìì¤í
ì´ ëì¤í¬ì íì¼ ë´ì©ì ì½ì´ì íë¡ê·¸ë¨ì ì ë¬íë ê²
+* íë¡ê·¸ë¨ì´ ìì¤í
ì ì ë¬í ë´ì©ì ëì¤í¬ì ì°ë ê²
* ì격 API ìì
-* ìë£ë ë°ì´í°ë² ì´ì¤ ìì
-* 결과를 ë°ííë ë°ì´í°ë² ì´ì¤ 쿼리
-* 기í
+* ë°ì´í°ë² ì´ì¤ ìì
ì´ ìë£ëë ê²
+* ë°ì´í°ë² ì´ì¤ ì¿¼ë¦¬ê° ê²°ê³¼ë¥¼ ë°ííë ê²
+* 기í ë±ë±
-ìí ìê°ì ëë¶ë¶ì´ I/O ìì
ì 기ë¤ë¦¬ëë°ì ììë기 ë문ì, "I/Oì 묶ì¸" ìì
ì´ë¼ê³ ë¶ë¦½ëë¤.
+ì¤í ìê°ì ëë¶ë¶ì´ I/O ìì
ì 기ë¤ë¦¬ë ë° ìë¹ë기 ë문ì, ì´ë¥¼ "I/O bound" ìì
ì´ë¼ê³ ë¶ë¦
ëë¤.
-ì´ê²ì "ë¹ë기"ë¼ê³ ë¶ë¦¬ëë° ì»´í¨í° / íë¡ê·¸ë¨ì´ ìì
결과를 ê°ì§ê³ ì¼ì ìíí ì ìëë¡, ë린 ìì
ì "ë기í"ëì´ ì무ê²ë íì§ ìì¼ë©´ì ìì
ì´ ìë£ë ì íí ìì ë§ì 기ë¤ë¦´ íìê° ì기 ë문ì
ëë¤.
+ì´ê²ì ì»´í¨í°/íë¡ê·¸ë¨ì´ ë린 ìì
ê³¼ "ë기í"ëì´, ì무ê²ë íì§ ìì ì± ê·¸ ìì
ì´ ëëë ì íí ìì ë§ ê¸°ë¤ë ¸ë¤ê° 결과를 ê°ì ¸ì ì¼ì ê³ìí íìê° ì기 ë문ì "ë¹ë기"ë¼ê³ ë¶ë¦½ëë¤.
-ì´ ëì ì, "ë¹ë기" ìì¤í
ììë, ìì
ì ì¼ë¨ ìë£ëë©´, ì»´í¨í° / íë¡ê·¸ë¨ì´ ìííê³ ìë ì¼ì ìë£íê³ ì´í ë¤ì ëììì ê·¸ê²ì 결과를 ë°ì ì´ë¥¼ ì¬ì©í´ ìì
ì ì§ìí ëê¹ì§ ì ì (ëª ë§ì´í¬ë¡ì´) ë기í ì ììµëë¤.
+ëì "ë¹ë기" ìì¤í
ììë, ìì
ì´ ëëë©´ ì»´í¨í°/íë¡ê·¸ë¨ì´ íë¬ ê°ë ì¼ì ë§ì¹ ëê¹ì§ ì ì(ëª ë§ì´í¬ë¡ì´) ì¤ìì 기ë¤ë ¸ë¤ê°, ë¤ì ëìì 결과를 ë°ì ì´ë¥¼ ì¬ì©í´ ìì
ì ê³ìí ì ììµëë¤.
-"ë기"("ë¹ë기"ì ë°ë)ë ì»´í¨í° / íë¡ê·¸ë¨ì´ ìì´í ìì
ë¤ê° ì íì í기 ì ì ê·¸ê²ì´ ë기를 ëë°íê² ë ì§ë¼ë 모ë ìì를 ë°ë¥´ê¸° ë문ì "ìì°¨"ë¼ë ì©ì´ë¡ë íí ë¶ë¦½ëë¤.
+"ë기"(âë¹ë기âì ë°ë)ë ë³´íµ "ìì°¨"ë¼ë ì©ì´ë¡ë ë¶ë¦¬ëë°, ì»´í¨í°/íë¡ê·¸ë¨ì´ ë¤ë¥¸ ìì
ì¼ë¡ ì íí기 ì ì 모ë ë¨ê³ë¥¼ ììëë¡ ë°ë¥´ê¸° ë문ì´ë©°, ê·¸ ë¨ê³ë¤ì 기ë¤ë¦¼ì´ í¬í¨ëì´ ìëë¼ë ë§ì°¬ê°ì§ì
ëë¤.
-### ëìì±ê³¼ ë²ê±°
+### ëìì±ê³¼ íë²ê±° { #concurrency-and-burgers }
-ììì ì¤ëª
í **ë¹ë기** ì½ëì ëí ê°ë
ì ì¢
ì¢
**"ëìì±"**ì´ë¼ê³ ë ë¶ë¦½ëë¤. ì´ê²ì **"ë³ë ¬ì±"**ê³¼ë ë¤ë¦
ëë¤.
+ììì ì¤ëª
í **ë¹ë기** ì½ëì ëí ê°ë
ì ëëë¡ **"ëìì±"**ì´ë¼ê³ ë ë¶ë¦½ëë¤. ì´ë **"ë³ë ¬ì±"**ê³¼ë ë¤ë¦
ëë¤.
-**ëìì±**ê³¼ **ë³ë ¬ì±**ì 모ë "ëìì ì¼ì´ëë ìë¡ ë¤ë¥¸ ì¼ë¤"ê³¼ ê´ë ¨ì´ ììµëë¤.
+**ëìì±**ê³¼ **ë³ë ¬ì±**ì 모ë "ëëµ ê°ì ìê°ì ì¼ì´ëë ìë¡ ë¤ë¥¸ ì¼ë¤"ê³¼ ê´ë ¨ì´ ììµëë¤.
íì§ë§ *ëìì±*ê³¼ *ë³ë ¬ì±*ì ì¸ë¶ì ì¸ ê°ë
ìë 꽤 ì°¨ì´ê° ììµëë¤.
-ì°¨ì´ë¥¼ íì¸í기 ìí´, ë¤ìì ë²ê±°ì ëí ì´ì¼ê¸°ë¥¼ ììí´ë³´ììì¤:
+ì°¨ì´ë¥¼ 보기 ìí´, ë¤ìì íë²ê±° ì´ì¼ê¸°ë¥¼ ììí´ë³´ì¸ì:
-### ëì ë²ê±°
+### ëì íë²ê±° { #concurrent-burgers }
-ë¹ì ì ì§ì¬ë ìë ð ì í¨ì¤í¸í¸ë ð 를 먹ì¼ë¬ ê°ìµëë¤. ë¹ì ì ì ì ð ì´ ë¹ì ìì ìë ì¬ëë¤ì 주문ì ë°ì ëì ì¤ì ìì 기ë¤ë¦¬ê³ ììµëë¤.
+ì¬ë¬ë¶ì ì§ì¬ë ìëì í¨ì¤í¸í¸ë를 먹ì¼ë¬ ê°ê³ , ì ìì´ ì¬ë¬ë¶ ì ì¬ëë¤ì 주문ì ë°ë ëì ì¤ì ìì 기ë¤ë¦½ëë¤. ð
-ì´ì ë¹ì ì ììê° ëì´ì, ë¹ì ì ë¹ì ê³¼ ì§ì¬ë ìë ð 를 ìí ë ê°ì ê³ ê¸ì¤ë¬ì´ ë²ê±° ð 를 주문í©ëë¤.
+
-ë¹ì ì´ ëì ë
ëë¤ ð¸.
+ì´ì ì¬ë¬ë¶ ì°¨ë¡ê° ëì´, ì¬ë¬ë¶ê³¼ ì§ì¬ë ìë를 ìí´ ë§¤ì° ê³ ê¸ì¤ë¬ì´ íë²ê±° 2ê°ë¥¼ 주문í©ëë¤. ðð
-ì ì ð ì 주방 ð¨âð³ ì ì리를 íë¼ê³ ì ë¬íê³ , ë°ë¼ì ê·¸ë¤ì ë¹ì ì ë²ê±° ð 를 ì¤ë¹í´ì¼íë¤ë ì¬ì¤ì ìê²ë©ëë¤(ê·¸ë¤ì´ ì§ê¸ì ë¹ì ì ê³ ê°ë¤ì 주문ì ì¤ë¹íê³ ììì§ë¼ë ë§ì
ëë¤).
+
-ì ì ð ì ë¹ì ì ììê° ì í ë²í¸í를 ì¤ëë¤.
+ì ìì 주방ì ì리ì¬ìê² ë¬´ì¸ê°ë¥¼ ë§í´, (ì§ê¸ì ìì ìëë¤ì 주문ì ì¤ë¹íê³ ìëë¼ë) ì¬ë¬ë¶ì íë²ê±°ë¥¼ ì¤ë¹í´ì¼ íë¤ë ê²ì ìê² í©ëë¤.
-기ë¤ë¦¬ë ëì, ë¹ì ì ì§ì¬ë ìë ð ì í¨ê» í
ì´ë¸ì ê³ ë¥´ê³ , ì리ì ìì ì¤ë«ëì (ë¹ì ì´ ì£¼ë¬¸í ë²ê±°ë 꽤ë ê³ ê¸ì¤ë½ê¸° ë문ì ì¤ë¹íëë° ìê°ì´ ì¡°ê¸ ê±¸ë¦½ëë¤ â¨ðâ¨) ëí를 ëëëë¤.
+
-ì§ì¬ë ìë ð ì í
ì´ë¸ì ììì ë²ê±° ð 를 기ë¤ë¦¬ë ëì, ê·¸ ì¬ë ð ì´ ì¼ë§ë ë©ì§ê³ , ì¬ëì¤ë½ê³ , ëëíì§ ê°ííë©° ìê°ì ë³´ë
ëë¤ â¨ðâ¨.
+ì¬ë¬ë¶ì´ ëì ë
ëë¤. ð¸
-ì§ì¬ë ìë ð ì 기ë¤ë¦¬ë©´ì ì기íë ëì, ëëë¡, ë¹ì ì ë¹ì ì ì°¨ë¡ê° ëìëì§ ë³´ê¸° ìí´ ì¹´ì´í°ì ë²í¸ë¥¼ íì¸í©ëë¤.
+ì ìì ì¬ë¬ë¶ ì°¨ë¡ ë²í¸ë¥¼ ì¤ëë¤.
-ê·¸ë¬ë¤ ì´ë ìê°, ë¹ì ì ì°¨ë¡ê° ë©ëë¤. ì¹´ì´í°ì ê°ì, ë²ê±° ð 를 ë°ê³ , í
ì´ë¸ë¡ ë¤ì ëììµëë¤.
+
-ë¹ì ê³¼ ì§ì¬ë ìë ð ë ë²ê±° ð 를 먹ì¼ë©° ì¢ì ìê°ì ë³´ë
ëë¤ â¨.
+기ë¤ë¦¬ë ëì, ì¬ë¬ë¶ì ì§ì¬ë ìëì í¨ê» ì리를 ê³ ë¥´ê³ ìì ì¤ë«ëì ëí를 ëëëë¤(ì¬ë¬ë¶ì íë²ê±°ë ë§¤ì° ê³ ê¸ì¤ë½ê¸° ë문ì ì¤ë¹íë ë° ìê°ì´ ì¢ ê±¸ë¦½ëë¤).
+
+ì§ì¬ë ìëì í
ì´ë¸ì ìì íë²ê±°ë¥¼ 기ë¤ë¦¬ë ëì, ê·¸ ì¬ëì´ ì¼ë§ë ë©ì§ê³ ê·ì½ê³ ëëíì§ ê°ííë©° ìê°ì ë³´ë¼ ì ììµëë¤ â¨ðâ¨.
+
+
+
+기ë¤ë¦¬ë©° ëííë ëì, ëëë¡ ì¬ë¬ë¶ì ì¹´ì´í°ì íìëë ë²í¸ë¥¼ íì¸í´ ì¬ë¬ë¶ ì°¨ë¡ì¸ì§ ë´
ëë¤.
+
+ê·¸ë¬ë¤ ì´ë ìê° ë§ì¹¨ë´ ì¬ë¬ë¶ ì°¨ë¡ê° ë©ëë¤. ì¬ë¬ë¶ì ì¹´ì´í°ì ê°ì íë²ê±°ë¥¼ ë°ê³ , í
ì´ë¸ë¡ ëììµëë¤.
+
+
+
+ì¬ë¬ë¶ê³¼ ì§ì¬ë ìëë íë²ê±°ë¥¼ 먹ì¼ë©° ì¢ì ìê°ì ë³´ë
ëë¤. â¨
+
+
+
+/// info | ì ë³´
+
+ìë¦ë¤ì´ ì¼ë¬ì¤í¸: Ketrina Thompson. ð¨
+
+///
---
-ë¹ì ì´ ì´ ì´ì¼ê¸°ìì ì»´í¨í° / íë¡ê·¸ë¨ ð¤ ì´ë¼ê³ ììí´ë³´ììì¤.
+ì´ ì´ì¼ê¸°ìì ì¬ë¬ë¶ì´ ì»´í¨í°/íë¡ê·¸ë¨ ð¤ ì´ë¼ê³ ììí´ë³´ì¸ì.
-ì¤ì ìì 기ë¤ë¦¬ë ëì, ë¹ì ì ì무ê²ë íì§ ìê³ ð´ ë¹ì ì ì°¨ë¡ë¥¼ 기ë¤ë¦¬ë©°, ì´ë í "ìì°ì ì¸" ì¼ë íì§ ììµëë¤. íì§ë§ ì ì ð ì´ (ììì ì¤ë¹íì§ë ìê³ ) 주문ì ë°ê¸°ë§ í기 ë문ì ì¤ì´ 빨리 ì¤ì´ë¤ì´ì ê´ì°®ìµëë¤.
+ì¤ì ì ìë ëì, ì¬ë¬ë¶ì ê·¸ë¥ ì¬ê³ ð´, ì°¨ë¡ë¥¼ 기ë¤ë¦¬ë©°, ê·¸ë¤ì§ "ìì°ì ì¸" ì¼ì íì§ ììµëë¤. íì§ë§ ì ìì ì£¼ë¬¸ë§ ë°ì§(ììì ì¤ë¹íì§ ì기) ë문ì ì¤ì´ ë¹ ë¥´ê² ì¤ì´ë¤ì´ ê´ì°®ìµëë¤.
-ê·¸ë¤ì, ë¹ì ì´ ì°¨ë¡ê° ì¤ë©´, ë¹ì ì ì¤ì ë¡ "ìì°ì ì¸" ì¼ ð¤ ì í©ëë¤. ë¹ì ì ë©ë´ë¥¼ ë³´ê³ , 무ìì 먹ìì§ ê²°ì íê³ , ì§ì¬ë ìë ð ì ì íì ë¬»ê³ , ëì ë´ê³ ð¸ , ë§ë ì¹´ë를 ëëì§ íì¸íê³ , ë¹ì©ì´ ì ëë¡ ì§ë¶ëìëì§ íì¸íê³ , ì£¼ë¬¸ì´ ì ëë¡ ë¤ì´ê°ëì§ íì¸ì íë ìì
ë±ë±ì ìíí©ëë¤.
+ê·¸ ë¤ì ì¬ë¬ë¶ ì°¨ë¡ê° ëë©´, ì¬ë¬ë¶ì ì¤ì ë¡ "ìì°ì ì¸" ì¼ì í©ëë¤. ë©ë´ë¥¼ ì²ë¦¬íê³ , 무ìì 먹ìì§ ê²°ì íê³ , ì§ì¬ë ìëì ì íì íì¸íê³ , ê²°ì íê³ , ì¬ë°ë¥¸ íê¸ì´ë ì¹´ë를 ëëì§ íì¸íê³ , ì íí ì²êµ¬ëìëì§ íì¸íê³ , 주문ì ì¬ë°ë¥¸ í목ë¤ì´ ë¤ì´ê°ëì§ íì¸íë ë±ë±ì í©ëë¤.
-íì§ë§ ì´íìë, ë²ê±° ð 를 ìì§ ë°ì§ 못íììë, ë²ê±°ê° ì¤ë¹ë ëê¹ì§ 기ë¤ë ¤ì¼ ð í기 ë문ì ì ì ð ê³¼ì ìì
ì "ì¼ìì ì§" ⸠ìíì
ëë¤.
+íì§ë§ ê·¸ ë¤ììë, ìì§ íë²ê±°ë¥¼ ë°ì§ 못íëë¼ë, íë²ê±°ê° ì¤ë¹ë ëê¹ì§ 기ë¤ë ¤ì¼ ð íë¯ë¡ ì ìê³¼ì ìì
ì "ì¼ìì ì§" ⸠ìíì
ëë¤.
-íì§ë§ ë²í¸í를 ë°ê³ ì¹´ì´í°ìì ëì í
ì´ë¸ì ìì¼ë©´, ë¹ì ì ì§ì¬ë ìë ð ì ê·¸ "ìì
" ⯠ð¤ ì ë²ê°ìê°ë©° ð ì§ì¤í©ëë¤. ê·¸ë¬ë©´ ë¹ì ì ë¤ì ì§ì¬ë ìë ð ìê² ìì
ì ê±°ë ë§¤ì° "ìì°ì ì¸" ì¼ ð¤ ì í©ëë¤.
+íì§ë§ ë²í¸ë¥¼ ë¤ê³ ì¹´ì´í°ìì ë²ì´ë í
ì´ë¸ì ìì¼ë©´, ì¬ë¬ë¶ì ì§ì¬ë ìëìê² ê´ì¬ì ì í ð íê³ , ê·¸ì ëí "ìì
" ⯠ð¤ ì í ì ììµëë¤. ê·¸ë¬ë©´ ì¬ë¬ë¶ì ë¤ì ì§ì¬ë ìëìê² ìì
ì ê±°ë ë§¤ì° "ìì°ì ì¸" ì¼ì íê² ë©ëë¤ ð.
-ì ì ð ì´ ì¹´ì´í° íë©´ì ë¹ì ì ë²í¸ë¥¼ íìí¨ì¼ë¡ì¨ "ë²ê±° ð ê° ì¤ë¹ëììµëë¤"ë¼ê³ í´ë, ë¹ì ì ì¦ì ë°ì³ëê°ì§ë ìì ê²ì
ëë¤. ë¹ì ì ë¹ì ì ë²í¸ë¥¼ ê°ê³ ìê³ , ë¤ë¥¸ ì¬ëë¤ì ê·¸ë¤ì ë²í¸ë¥¼ ê°ê³ ì기 ë문ì, ì무ë ë¹ì ì ë²ê±° ð 를 íì³ê°ì§ ìëë¤ë ì¬ì¤ì ì기 ë문ì
ëë¤.
+ê·¸ ë¤ì ì ì ð ì´ ì¹´ì´í° íë©´ì ì¬ë¬ë¶ ë²í¸ë¥¼ ëì "íë²ê±°ë¥¼ ë§ë¤ìì´ì"ë¼ê³ ë§íì§ë§, íìë ë²í¸ê° ì¬ë¬ë¶ ì°¨ë¡ë¡ ë°ëìë¤ê³ í´ì ì¦ì ë¯¸ì¹ ë¯ì´ ë°ì´ê°ì§ë ììµëë¤. ì¬ë¬ë¶ì ì¬ë¬ë¶ ë²í¸ë¥¼ ê°ê³ ìê³ , ë¤ë¥¸ ì¬ëë¤ì ê·¸ë¤ì ë²í¸ë¥¼ ê°ê³ ìì¼ë, ì무ë ì¬ë¬ë¶ íë²ê±°ë¥¼ íì³ê° ì ìë¤ë ê²ì ì기 ë문ì
ëë¤.
-ê·¸ëì ë¹ì ì ì§ì¬ë ìë ð ê° ì´ì¼ê¸°ë¥¼ ëë¼ ëê¹ì§ 기ë¤ë¦° í (íì¬ ìì
ìë£ â¯ / ì§í ì¤ì¸ ìì
ì²ë¦¬ ð¤ ), ì ì¤íê² ë¯¸ìì§ê³ ë²ê±°ë¥¼ ê°ì§ë¬ ê°ê² ë¤ê³ ë§í©ëë¤ â¸.
+ê·¸ëì ì¬ë¬ë¶ì ì§ì¬ë ìëê° ì´ì¼ê¸°ë¥¼ ëë¼ ëê¹ì§ 기ë¤ë¦° ë¤ì(íì¬ ìì
⯠/ ì²ë¦¬ ì¤ì¸ ìì
ð¤ ì ëë´ê³ ), ë¶ëë½ê² 미ì ì§ì¼ë©° íë²ê±°ë¥¼ ê°ì§ë¬ ê°ê² ë¤ê³ ë§í©ëë¤ â¸.
-ê·¸ë¤ì ë¹ì ì ì¹´ì´í°ì ê°ì ð , ì´ê¸° ìì
ì ì´ì ìë£íê³ â¯ , ë²ê±° ð 를 ë°ê³ , ê°ì¬íë¤ê³ ë§íê³ í
ì´ë¸ë¡ ê°ì ¸ìµëë¤. ì´ë¡ì¨ ì¹´ì´í°ìì ìí¸ìì© ë¨ê³ / ìì
ì´ ì¢
ë£ë©ëë¤ â¹.
+ê·¸ ë¤ì ì¬ë¬ë¶ì ì¹´ì´í°ë¡ ê°ì ð, ì´ì ëë ì´ê¸° ìì
⯠ì¼ë¡ ëìì íë²ê±°ë¥¼ ë°ê³ , ê°ì¬ ì¸ì¬ë¥¼ íê³ , í
ì´ë¸ë¡ ê°ì ¸ìµëë¤. ì´ë¡ì¨ ì¹´ì´í°ì ìí¸ìì©íë ê·¸ ë¨ê³/ìì
ì´ ëë©ëë¤ â¹. ê·¸ë¦¬ê³ ì´ë ìë¡ì´ ìì
ì¸ "íë²ê±° 먹기" ð ⯠를 ë§ë¤ì§ë§, ì´ì ìì
ì¸ "íë²ê±° ë°ê¸°"ë ëë¬ìµëë¤ â¹.
-ì´ì ìì
ì¸ "ë²ê±° ë°ê¸°"ê° ì¢
ë£ëë©´ â¹ "ë²ê±° 먹기"ë¼ë ìë¡ì´ ìì
ì´ ìì±ë©ëë¤ ð â¯.
+### ë³ë ¬ íë²ê±° { #parallel-burgers }
-### ë³ë ¬ ë²ê±°
+ì´ì ì´ê²ì´ "ëì íë²ê±°"ê° ìëë¼ "ë³ë ¬ íë²ê±°"ë¼ê³ ììí´ë´
ìë¤.
-ì´ì "ëì ë²ê±°"ê° ìë "ë³ë ¬ ë²ê±°"를 ììí´ë³´ììì¤.
+ì¬ë¬ë¶ì ì§ì¬ë ìëì í¨ê» ë³ë ¬ í¨ì¤í¸í¸ë를 먹ì¼ë¬ ê°ëë¤.
-ë¹ì ì ì§ì¬ë ìë ð ì í¨ê» ë³ë ¬ í¨ì¤í¸í¸ë ð 를 먹ì¼ë¬ ê°ìµëë¤.
+ì¬ë¬ë¶ì ì¬ë¬ ëª
(ì: 8ëª
)ì ì ìì´ ëìì ì리ì¬ì´ê¸°ë íì¬ ì¬ë¬ë¶ ì ì¬ëë¤ì 주문ì ë°ë ëì ì¤ì ì ììµëë¤.
-ë¹ì ì ì¬ë¬ëª
(8ëª
ì´ë¼ê³ ê°ì í©ëë¤)ì ì ìì´ ë¹ì ì ì¬ëë¤ì 주문ì ë°ì¼ë©° ëìì ì리 ð©âð³ð¨âð³ð©âð³ð¨âð³ð©âð³ð¨âð³ð©âð³ð¨âð³ ë íë ëì ì¤ì ìì 기ë¤ë¦½ëë¤.
+ì¬ë¬ë¶ ìì 모ë ì¬ëë¤ì, 8ëª
ì ì ì ê°ê°ì´ ë¤ì 주문ì ë°ê¸° ì ì ë°ë¡ íë²ê±°ë¥¼ ì¤ë¹íë¬ ê°ê¸° ë문ì, ì¹´ì´í°ë¥¼ ë ëì§ ìê³ íë²ê±°ê° ì¤ë¹ë ëê¹ì§ 기ë¤ë¦½ëë¤.
-ë¹ì ì 모ë ì¬ëë¤ì´ ë²ê±°ê° ì¤ë¹ë ëê¹ì§ ì¹´ì´í°ìì ë ëì§ ìê³ ê¸°ë¤ë¦½ëë¤ ð . ìëíë©´ 8ëª
ì ì§ìë¤ì´ ë¤ì 주문ì ë°ê¸° ì ì ë²ê±°ë¥¼ ì¤ë¹íë¬ ê°ê¸° ë문ì
ëë¤.
+
-ë§ì¹¨ë´ ë¹ì ì ì°¨ë¡ê° ìê³ , ë¹ì ì ë¹ì ê³¼ ì§ì¬ë ìë ð 를 ìí ë ê°ì ê³ ê¸ì¤ë¬ì´ ë²ê±° ð 를 주문í©ëë¤.
+ë§ì¹¨ë´ ì¬ë¬ë¶ ì°¨ë¡ê° ëì´, ì¬ë¬ë¶ê³¼ ì§ì¬ë ìë를 ìí´ ë§¤ì° ê³ ê¸ì¤ë¬ì´ íë²ê±° 2ê°ë¥¼ 주문í©ëë¤.
-ë¹ì ì´ ë¹ì©ì ì§ë¶í©ëë¤ ð¸ .
+ì¬ë¬ë¶ì´ ëì ë
ëë¤ ð¸.
-ì ìì´ ì£¼ë°©ì ê°ëë¤ ð¨âð³ .
+
-ë¹ì ì ë²í¸íê° ì기 ë문ì ë구ë ë¹ì ì ë²ê±° ð 를 ëì ê°ì ¸ê° ì ìëë¡ ì¹´ì´í°ì ìì 기ë¤ë¦½ëë¤ ð .
+ì ìì 주방ì¼ë¡ ê°ëë¤.
-ë¹ì ê³¼ ì§ì¬ë ìë ð ë ë¤ë¥¸ ì¬ëì´ ìì¹ê¸°í´ì ë²ê±°ë¥¼ ê°ì ¸ê°ì§ 못íê² íëë¼ ë°ì기 ë문ì ð , ì§ì¬ë ìëìê² ì£¼ì를 기ì¸ì¼ ì ììµëë¤ ð .
+ì¬ë¬ë¶ì ë²í¸íê° ìì¼ë¯ë¡, ë¤ë¥¸ ì¬ëì´ ì¬ë¬ë¶ë³´ë¤ 먼ì íë²ê±°ë¥¼ ê°ì ¸ê°ì§ 못íëë¡ ì¹´ì´í° ìì ìì 기ë¤ë¦½ëë¤ ð.
-ì´ê²ì "ë기" ìì
ì´ê³ , ë¹ì ì ì ì/ìë¦¬ì¬ ð¨âð³ ì "ë기í" ëììµëë¤. ë¹ì ì 기ë¤ë¦¬ê³ ð , ì ì/ìë¦¬ì¬ ð¨âð³ ê° ë²ê±° ð ì¤ë¹ë¥¼ ìë£í í ë¹ì ìê² ì£¼ê±°ë, ëêµ°ê°ê° ê·¸ê²ì ê°ì ¸ê°ë ê·¸ ìê°ì ê·¸ ê³³ì ìì´ì¼í©ëë¤.
+
-ì¹´ì´í° ììì ì¤ë«ëì 기ë¤ë¦° íì ð , ì ì/ìë¦¬ì¬ ð¨âð³ ê° ë¹ì ì ë²ê±° ð 를 ê°ì§ê³ ëììµëë¤.
+ì¬ë¬ë¶ê³¼ ì§ì¬ë ìëë íë²ê±°ê° ëì¤ë©´ ë¤ë¥¸ ì¬ëì´ ë¼ì´ë¤ì´ ê°ì ¸ê°ì§ 못íê² íëë¼ ë°ì기 ë문ì, ì§ì¬ë ìëìê² ì§ì¤í ì ììµëë¤. ð
-ë¹ì ì ë²ê±°ë¥¼ ë°ê³ ì§ì¬ë ìëì í¨ê» í
ì´ë¸ë¡ ëììµëë¤.
+ì´ê²ì "ë기" ìì
ì´ë©°, ì¬ë¬ë¶ì ì ì/ìë¦¬ì¬ ð¨âð³ ì "ë기í"ëì´ ììµëë¤. ì ì/ìë¦¬ì¬ ð¨âð³ ê° íë²ê±°ë¥¼ ìì±í´ ì¬ë¬ë¶ìê² ì£¼ë ì íí ìê°ì ê·¸ ì리ì ìì´ì¼ íë¯ë¡, ì¬ë¬ë¶ì 기ë¤ë ¤ì¼ ð íê³ , ê·¸ë ì§ ìì¼ë©´ ë¤ë¥¸ ì¬ëì´ ê°ì ¸ê° ìë ììµëë¤.
-ë¨ì§ ë¨¹ê¸°ë§ íë¤ê°, ë¤ ë¨¹ììµëë¤ ð â¹.
+
-ì¹´ì´í° ììì 기ë¤ë¦¬ë©´ì ð ë무 ë§ì ìê°ì íë¹í기 ë문ì ëí를 íê±°ë ìì
ì 걸 ìê°ì´ ê±°ì ìììµëë¤ ð .
+ê·¸ë¬ë¤ ì ì/ìë¦¬ì¬ ð¨âð³ ê° ì¹´ì´í° ììì ì¤ë«ëì 기ë¤ë¦° ð ëì ë§ì¹¨ë´ íë²ê±°ë¥¼ ê°ì§ê³ ëììµëë¤.
----
+
+
+ì¬ë¬ë¶ì íë²ê±°ë¥¼ ë°ì ì§ì¬ë ìëì í
ì´ë¸ë¡ ê°ëë¤.
+
+ê·¸ë¥ ë¨¹ê³ , ëì
ëë¤. â¹
+
+
+
+ëë¶ë¶ì ìê°ì ì¹´ì´í° ììì 기ë¤ë¦¬ë ë° ð ì¼ê¸° ë문ì, ëííê±°ë ìì
ì 걸 ìê°ì ë§ì§ ìììµëë¤. ð
-ì´ ë³ë ¬ ë²ê±° ìë리ì¤ìì, ë¹ì ì 기ë¤ë¦¬ê³ ð , ì¤ë ìê°ëì "ì¹´ì´í°ìì 기ë¤ë¦¬ë" ð ë°ì 주ì를 기ì¸ì´ë ⯠ë ê°ì íë¡ì¸ì(ë¹ì ê³¼ ì§ì¬ë ìëð)를 ê°ì§ ì»´í¨í° / íë¡ê·¸ë¨ ð¤ ì
ëë¤.
+/// info | ì ë³´
-í¨ì¤í¸í¸ëì ìë 8ê°ì íë¡ì¸ì(ì ì/ì리ì¬) ð©âð³ð¨âð³ð©âð³ð¨âð³ð©âð³ð¨âð³ð©âð³ð¨âð³ ê° ììµëë¤. ëì ë²ê±°ë ë¨ ë ê°(í ëª
ì ì§ìê³¼ í ëª
ì ì리ì¬) ð ð¨âð³ ë§ì ê°ì§ê³ ìììµëë¤.
+ìë¦ë¤ì´ ì¼ë¬ì¤í¸: Ketrina Thompson. ð¨
-íì§ë§ ì¬ì í, ë³ë ¬ ë²ê±° ììê° ìµì ì ìëëë¤ ð .
+///
---
-ì´ ììë ë²ê±°ð ì´ì¼ê¸°ì ê²°ì´ ê°ìµëë¤.
+ì´ ë³ë ¬ íë²ê±° ìë리ì¤ìì, ì¬ë¬ë¶ì ë ê°ì íë¡ì¸ì(ì¬ë¬ë¶ê³¼ ì§ì¬ë ìë)를 ê°ì§ ì»´í¨í°/íë¡ê·¸ë¨ ð¤ ì´ë©°, ë ë¤ ê¸°ë¤ë¦¬ê³ ð ì¤ë«ëì "ì¹´ì´í°ìì 기ë¤ë¦¬ê¸°" ð ì 주ì를 ⯠기ì¸ì
ëë¤.
+
+í¨ì¤í¸í¸ëì ìë 8ê°ì íë¡ì¸ì(ì ì/ì리ì¬)ê° ììµëë¤. ëì íë²ê±° ê°ê²ë 2ê°(ì ì 1ëª
, ìë¦¬ì¬ 1ëª
)ë§ ììì ê²ì
ëë¤.
-ë "íì¤ì ì¸" ììë¡, ìíì ììí´ë³´ììì¤.
+íì§ë§ ì¬ì í ìµì¢
ê²½íì ê·¸ë¤ì§ ì¢ì§ ììµëë¤. ð
-ìµê·¼ê¹ì§, ëë¤ìì ìíìë ë¤ìì ìíìë¤ ð¨âð¼ð¨âð¼ð¨âð¼ð¨âð¼ ê³¼ 긴 ì¤ ðððððððð ì´ ììµëë¤.
+---
-모ë ìíìë¤ì í ëª
í ëª
ì ê³ ê°ë¤ì ì°¨ë¡ë¡ ìëí©ëë¤ ð¨âð¼â¯ .
+ì´ê²ì´ íë²ê±°ì ë³ë ¬ ë²ì ì í´ë¹íë ì´ì¼ê¸°ì
ëë¤. ð
-ê·¸ë¦¬ê³ ë¹ì ì ì¤ë«ëì ì¤ìì 기ë¤ë ¤ì¼íê³ ð , ê·¸ë ì§ ìì¼ë©´ ë¹ì ì ì°¨ë¡ë¥¼ ìê² ë©ëë¤.
+ì¢ ë "íì¤ì ì¸" ììë¡, ìíì ììí´ë³´ì¸ì.
-ìë§ ë¹ì ì ìí ð¦ ì¬ë¶ë¦ì ì§ì¬ë ìë ð 를 ë°ë ¤ê°ê³ ì¶ì§ë ìì ê²ì
ëë¤.
+ìµê·¼ê¹ì§ ëë¶ë¶ì ìíìë ì¬ë¬ ìíì ð¨âð¼ð¨âð¼ð¨âð¼ð¨âð¼ ê³¼ 긴 ì¤ ðððððððð ì´ ìììµëë¤.
-### ë²ê±° ììì ê²°ë¡
+모ë ìíìì´ í ê³ ê°ì© ììëë¡ ëª¨ë ì¼ì ì²ë¦¬í©ëë¤ ð¨âð¼â¯.
-"ì§ì¬ë ìëìì í¨ì¤í¸í¸ëì ë²ê±°" ìë리ì¤ìì, ì¤ë 기ë¤ë¦¼ ð ì´ ì기 ë문ì ëì ìì¤í
â¸ð⯠ì ì¬ì©íë ê²ì´ ë í©ë¦¬ì ì
ëë¤.
+ê·¸ë¦¬ê³ ì¬ë¬ë¶ì ì¤ë«ëì ì¤ìì 기ë¤ë ¤ì¼ ð íë©°, ê·¸ë ì§ ìì¼ë©´ ì°¨ë¡ë¥¼ ììµëë¤.
-ëë¤ìì ì¹ ìì©íë¡ê·¸ë¨ì ê²½ì°ê° ê·¸ë¬í©ëë¤.
+ìë§ ìí ð¦ ì
무를 ë³´ë¬ ê° ë ì§ì¬ë ìë ð 를 ë°ë ¤ê°ê³ ì¶ì§ë ìì ê²ì
ëë¤.
-ë§¤ì° ë§ì ìì ì ì ê° ìì§ë§, ìë²ë ê·¸ë¤ì ìì²ì ì ì¡í기 ìí´ ê·¸ë¥-ì¢ì§-ìì ì°ê²°ì 기ë¤ë ¤ì¼ í©ëë¤ ð .
+### íë²ê±° ììì ê²°ë¡ { #burger-conclusion }
-ê·¸ë¦¬ê³ ìëµì´ ëìì¬ ëê¹ì§ ë¤ì 기ë¤ë ¤ì¼ í©ëë¤ ð .
+"ì§ì¬ë ìëìì í¨ì¤í¸í¸ëì íë²ê±°" ìë리ì¤ììë 기ë¤ë¦¼ ð ì´ ë§ê¸° ë문ì, ëì ìì¤í
â¸ð⯠ì ì¬ì©íë ê²ì´ í¨ì¬ ë í©ë¦¬ì ì
ëë¤.
-ì´ "기ë¤ë¦¼" ð ì ë§ì´í¬ë¡ì´ ë¨ìì´ì§ë§, 모ë ëí´ì§ë©´, ê²°êµìë ë§¤ì° ê¸´ ë기ìê°ì´ ë©ëë¤.
+ëë¶ë¶ì ì¹ ì í리ì¼ì´ì
ì´ ê·¸ë ìµëë¤.
-ë°ë¼ì ì¹ API를 ìí´ ë¹ë기 â¸ð⯠ì½ë를 ì¬ì©íë ê²ì´ í©ë¦¬ì ì
ëë¤.
+ë§¤ì° ë§ì ì¬ì©ìë¤ì´ ìê³ , ìë²ë ê·¸ë¤ì ì¢ì§ ìì ì°ê²°ì íµí´ ìì²ì´ ì ì¡ë기를 기ë¤ë¦½ëë¤ ð.
-ëë¶ë¶ì ì¡´ì¬íë ì ëª
í íì´ì¬ íë ììí¬ (Flaskì Django ë±)ì ìë¡ì´ ë¹ë기 기ë¥ë¤ì´ íì´ì¬ì ì¡´ì¬í기 ì ì ë§ë¤ì´ì¡ìµëë¤. ê·¸ëì, ê·¸ë¤ì ë°°í¬ ë°©ìì ë³ë ¬ ì¤íê³¼ ìë¡ì´ 기ë¥ë§í¼ ê°ë ¥íì§ë ìì ìì ë²ì ì ë¹ë기 ì¤íì ì§ìí©ëë¤.
+ê·¸ë¦¬ê³ ìëµì´ ëìì¤ê¸°ë¥¼ ë¤ì 기ë¤ë¦½ëë¤ ð.
-ë¹ë기 ì¹ íì´ì¬(ASGI)ì ëí 주ì ëª
ì¸ê° ì¹ìì¼ì ì§ìí기 ìí´ Djangoìì ê°ë° ëìììë ê·¸ë ìµëë¤.
+ì´ "기ë¤ë¦¼" ð ì ë§ì´í¬ë¡ì´ ë¨ìë¡ ì¸¡ì ëì§ë§, 모ë í©ì¹ë©´ ê²°êµ ê½¤ ë§ì ë기 ìê°ì´ ë©ëë¤.
-ì´ë¬í ì¢
ë¥ì ë¹ë기ì±ì (NodeJSë ë³ë ¬ì ì´ì§ ìììë) NodeJSê° ì¬ëë°ë ì´ì ì´ê³ , íë¡ê·¸ëë° ì¸ì´ë¡ìì Goì ê°ì ì
ëë¤.
+ê·¸ëì ì¹ APIìë ë¹ë기 â¸ð⯠ì½ë를 ì¬ì©íë ê²ì´ ë§¤ì° í©ë¦¬ì ì
ëë¤.
-ê·¸ë¦¬ê³ **FastAPI**를 ì¬ì©í¨ì¼ë¡ì¨ ëì¼í ì±ë¥ì ë¼ ì ììµëë¤.
+ì´ë¬í ì¢
ë¥ì ë¹ë기ì±ì NodeJSê° ì¸ê¸° ìë ì´ì (ë¹ë¡ NodeJSê° ë³ë ¬ì ìëì§ë§)ì´ì, íë¡ê·¸ëë° ì¸ì´ë¡ì Goì ê°ì ì
ëë¤.
-ëí ë³ë ¬ì±ê³¼ ë¹ë기ì±ì ëìì ì¬ì©í ì ì기 ë문ì, ëë¶ë¶ì í
ì¤í¸ê° ìë£ë NodeJS íë ììí¬ë³´ë¤ ë ëì ì±ë¥ì ì»ê³ Cì ë ê°ê¹ì´ ì»´íì¼ ì¸ì´ì¸ Goì ëë±í ì±ë¥ì ì»ì ì ììµëë¤(모ë Starlette ëë¶ì
ëë¤).
+ê·¸ë¦¬ê³ ì´ê²ì´ **FastAPI**ë¡ ì»ë ê²ê³¼ ê°ì ìì¤ì ì±ë¥ì
ëë¤.
-### ëìì±ì´ ë³ë ¬ì±ë³´ë¤ ë ëìê°?
+ëí ë³ë ¬ì±ê³¼ ë¹ë기ì±ì ëìì ì¬ì©í ì ìì¼ë¯ë¡, ëë¶ë¶ì í
ì¤í¸ë NodeJS íë ììí¬ë³´ë¤ ë ëì ì±ë¥ì ì»ê³ , Cì ë ê°ê¹ì´ ì»´íì¼ ì¸ì´ì¸ Goì ëë±í ì±ë¥ì ì»ì ì ììµëë¤ (모ë Starlette ëë¶ì
ëë¤).
-ê·¸ë ì§ ììµëë¤! ê·¸ê²ì´ ì´ì¼ê¸°ì êµíì ìëëë¤.
+### ëìì±ì´ ë³ë ¬ì±ë³´ë¤ ë ëìê°ì? { #is-concurrency-better-than-parallelism }
-ëìì±ì ë³ë ¬ì±ê³¼ ë¤ë¦
ëë¤. ê·¸ë¦¬ê³ ê·¸ê²ì ë§ì ë기를 íìë¡íë **í¹ì í** ìë리ì¤ììë ë ë«ìµëë¤. ì´ë¡ ì¸í´, ì¹ ìì©íë¡ê·¸ë¨ ê°ë°ìì ëìì±ì´ ë³ë ¬ì±ë³´ë¤ ì¼ë°ì ì¼ë¡ í¨ì¬ ë«ìµëë¤. íì§ë§ 모ë ê²½ì°ì ê·¸ë° ê²ì ìëëë¤.
+ìëì! ê·¸ê² ì´ ì´ì¼ê¸°ì êµíì ìëëë¤.
-ë°ë¼ì, ê· íì ë§ì¶ê¸° ìí´, ë¤ìì ì§§ì ì´ì¼ê¸°ë¥¼ ììí´ë³´ììì¤:
+ëìì±ì ë³ë ¬ì±ê³¼ ë¤ë¦
ëë¤. ê·¸ë¦¬ê³ ë§ì 기ë¤ë¦¼ì´ í¬í¨ëë **í¹ì í** ìë리ì¤ììë ë ë«ìµëë¤. ê·¸ ë문ì ì¹ ì í리ì¼ì´ì
ê°ë°ììë ì¼ë°ì ì¼ë¡ ë³ë ¬ì±ë³´ë¤ í¨ì¬ ë ë«ìµëë¤. íì§ë§ 모ë ê²ì í´ë¹íì§ ììµëë¤.
-> ë¹ì ì í¬ê³ , ëë¬ì´ ì§ì ì²ìí´ì¼í©ëë¤.
+ê·¸ëì ê· íì ë§ì¶ê¸° ìí´, ë¤ìì ì§§ì ì´ì¼ê¸°ë¥¼ ììí´ë³´ì¸ì:
+
+> ì¬ë¬ë¶ì í¬ê³ ëë¬ì´ ì§ì ì²ìí´ì¼ í©ëë¤.
*ë¤, ì´ê² ì ë¶ì
ëë¤*.
---
-ì´ëìë ë기 ð ë ìê³ , ì§ì 곳곳ìì í´ì¼íë ë§ì ìì
ë¤ë§ ììµëë¤.
+ì´ëìë 기ë¤ë¦¼ ð ì ìê³ , ì§ì ì¬ë¬ ì¥ììì í´ì¼ í ì¼ì´ ë§ì ë¿ì
ëë¤.
-ë²ê±° ììì²ë¼ ì²ììë ê±°ì¤, ê·¸ ë¤ìì ë¶ìê³¼ ê°ì ìì¼ë¡ ìì를 ì í ìë ìì¼ë, 무ìë 기ë¤ë¦¬ì§ ð ìê³ ê³ìí´ì ì²ì ìì
ë§ ìíí기 ë문ì, ììë ìë¬´ë° ìí¥ì 미ì¹ì§ ììµëë¤.
+íë²ê±° ììì²ë¼ ê±°ì¤ë¶í°, ê·¸ ë¤ìì ë¶ìì²ë¼ ìì를 ì í ìë ìì§ë§, ì´ë¤ ê²ë 기ë¤ë¦¬ì§ ð ìê³ ê³ì ì²ìë§ í기 ë문ì, ììë ìë¬´ë° ìí¥ì ì£¼ì§ ììµëë¤.
-ììê° ìë ìë ëì¼í ìê°ì´ ììë ê²ì´ê³ (ëìì±) ëì¼í ìì ìì
ì íê² ë ê²ì
ëë¤.
+ììê° ìë ìë (ëìì±) ëë´ë ë° ê±¸ë¦¬ë ìê°ì ê°ê³ , ê°ì ìì ì¼ì íê² ë©ëë¤.
-íì§ë§ ì´ ê²½ì°ìì, 8ëª
ì ì (å)-ì ì/ì리ì¬ì´ë©´ì-í(ç¾)-ì²ìë¶ ð©âð³ð¨âð³ð©âð³ð¨âð³ð©âð³ð¨âð³ð©âð³ð¨âð³ 를 ê³ ì©í ì ìê³ , ê·¸ë¤ ê°ì(ê·¸ë¦¬ê³ ë¹ì )ê° ì§ì í ë¶ë¶ì© ë§¡ì ì²ì를 íë¤ë©´, ë¹ì ì **ë³ë ¬ì **ì¼ë¡ ìì
ì ìíí ì ìê³ , ì¡°ê¸ì ëìì´ ìë¤ë©´, í¨ì¬ ë 빨리 ëë¼ ì ììµëë¤.
+íì§ë§ ì´ ê²½ì°, ì (å) ì ì/ì리ì¬ì´ì í(ç¾) ì²ìë¶ê° ë 8ëª
ì ë°ë ¤ì¬ ì ìê³ , ê°ì(ê·¸ë¦¬ê³ ì¬ë¬ë¶)ê° ì§ì 구ìì íëì© ë§¡ì ì²ìíë¤ë©´, ì¶ê° ëìê³¼ í¨ê» 모ë ì¼ì **ë³ë ¬**ë¡ ìííì¬ í¨ì¬ ë 빨리 ëë¼ ì ììµëë¤.
-ì´ ìë리ì¤ìì, (ë¹ì ì í¬í¨í) ê°ê°ì ì²ìë¶ë¤ì íë¡ì¸ìê° ë ê²ì´ê³ , ê°ìì ìí ì ìíí©ëë¤.
+ì´ ìë리ì¤ìì (ì¬ë¬ë¶ì í¬í¨í) ê° ì²ìë¶ë íë¡ì¸ìê° ëì´, ë§¡ì ì¼ì ìíí©ëë¤.
-ì¤í ìê°ì ëë¶ë¶ì´ ëê¸°ê° ìë ì¤ì ìì
ì ììëê³ , ì»´í¨í°ìì ìì
ì CPUìì ì´ë£¨ì´ì§ë¯ë¡, ì´ë¬í 문ì 를 "CPUì 묶ì"ë¤ê³ í©ëë¤.
+ê·¸ë¦¬ê³ ì¤í ìê°ì ëë¶ë¶ì´ 기ë¤ë¦¼ì´ ìëë¼ ì¤ì ìì
ì ì°ì´ê³ , ì»´í¨í°ìì ìì
ì CPUê° ìííë¯ë¡, ì´ë° 문ì 를 "CPU bound"ë¼ê³ ë¶ë¦
ëë¤.
---
-CPUì ë¬¶ì¸ ì°ì°ì ê´í íí ììë ë³µì¡í ìí ì²ë¦¬ë¥¼ íìë¡ íë ê²½ì°ì
ëë¤.
+CPU bound ìì
ì íí ììë ë³µì¡í ìí ì²ë¦¬ê° íìí ê²ë¤ì
ëë¤.
ì를 ë¤ì´:
-* **ì¤ëì¤** ëë **ì´ë¯¸ì§** ì²ë¦¬.
-* **ì»´í¨í° ë¹ì **: íëì ì´ë¯¸ì§ë ìë°±ê°ì í½ì
ë¡ êµ¬ì±ëì´ìê³ , ê° í½ì
ì 3ê°ì ê° / ìì ê°ê³ ìì¼ë©°, ì¼ë°ì ì¼ë¡ í´ë¹ í½ì
ë¤ì ëí´ ëìì 무ì¸ê°ë¥¼ ê³ì°í´ì¼íë ì²ë¦¬.
-* **머ì ë¬ë**: ì¼ë°ì ì¼ë¡ ë§ì "íë ¬"ê³¼ "벡í°" ê³±ì
ì´ íìí©ëë¤. ê±°ëí ì¤íë ë ìí¸ì ìë¤ì´ ìê³ ê·¸ ìë¤ì ëìì ê³±í´ì¼ íë¤ê³ ìê°í´ë³´ììì¤.
-* **ë¥ë¬ë**: 머ì ë¬ëì íìììì¼ë¡, ëì¼í ììê° ì ì©ë©ëë¤. ë¨ì§ ì´ ê²½ì°ìë íëì ì¤íë ë ìí¸ì ê³±í´ì¼í ìë¤ì´ ìë ê²ì´ ìëë¼, ê±°ëí ì¸í¸ì ì¤íë ë ìí¸ë¤ì´ ìê³ , ë§ì ê²½ì°ì, ì´ ëª¨ë¸ë¤ì ë§ë¤ê³ ì¬ì©í기 ìí´ í¹ìí íë¡ì¸ì를 ì¬ì©í©ëë¤.
+* **ì¤ëì¤** ëë **ì´ë¯¸ì§** ì²ë¦¬
+* **ì»´í¨í° ë¹ì **: ì´ë¯¸ì§ë ìë°±ë§ ê°ì í½ì
ë¡ êµ¬ì±ëë©°, ê° í½ì
ì 3ê°ì ê°/ìì ê°ìµëë¤. ë³´íµ ê·¸ í½ì
ë¤ì ëí´ ëìì 무ì¸ê°ë¥¼ ê³ì°í´ì¼ í©ëë¤.
+* **머ì ë¬ë**: ë³´íµ ë§ì "matrix"ì "vector" ê³±ì
ì´ íìí©ëë¤. ì«ìê° ìë ê±°ëí ì¤íë ëìí¸ë¥¼ ìê°íê³ , ê·¸ 모ë ì를 ëìì ê³±íë¤ê³ ìê°í´ë³´ì¸ì.
+* **ë¥ë¬ë**: 머ì ë¬ëì íì ë¶ì¼ì´ë¯ë¡ ëì¼íê² ì ì©ë©ëë¤. ë¤ë§ ê³±í´ì¼ í ì«ìê° ìë ì¤íë ëìí¸ê° íëê° ìëë¼, ì주 í° ì§í©ì´ë©°, ë§ì ê²½ì° ê·¸ 모ë¸ì ë§ë¤ê³ /ëë ì¬ì©í기 ìí´ í¹ë³í íë¡ì¸ì를 ì¬ì©í©ëë¤.
-### ëìì± + ë³ë ¬ì±: ì¹ + 머ì ë¬ë
+### ëìì± + ë³ë ¬ì±: ì¹ + 머ì ë¬ë { #concurrency-parallelism-web-machine-learning }
-**FastAPI**를 ì¬ì©íë©´ ì¹ ê°ë°ììë ë§¤ì° íí ëìì±ì ì´ì ì (NodeJSì 주ë ë§¤ë ¥ë§í¼) ì»ì ì ììµëë¤.
+**FastAPI**를 ì¬ì©íë©´ ì¹ ê°ë°ìì ë§¤ì° íí ëìì±ì ì´ì ì( NodeJSì 주ì ë§¤ë ¥ê³¼ ê°ì) ì»ì ì ììµëë¤.
-ë¿ë§ ìëë¼ ë¨¸ì ë¬ë ìì¤í
ê³¼ ê°ì´ **CPUì 묶ì¸** ìì
ì ìí´ ë³ë ¬ì±ê³¼ ë©í°íë¡ì¸ì±(ë¤ìì íë¡ì¸ì¤ë¥¼ ë³ë ¬ì ì¼ë¡ ëììí¤ë ê²)ì ì´ì©íë ê²ë ê°ë¥í©ëë¤.
+ëí 머ì ë¬ë ìì¤í
ì²ë¼ **CPU bound** ìí¬ë¡ëì ëí´ ë³ë ¬ì±ê³¼ ë©í°íë¡ì¸ì±(ì¬ë¬ íë¡ì¸ì¤ë¥¼ ë³ë ¬ë¡ ì¤í)ì íì©í ìë ììµëë¤.
-íì´ì¬ì´ **ë°ì´í° ì¬ì´ì¸ì¤**, 머ì ë¬ëê³¼ í¹í ë¥ë¬ëì ì 주ë ì¸ì´ë¼ë ê°ë¨í ì¬ì¤ì ëí´ì, ì´ê²ì FastAPI를 ë°ì´í° ì¬ì´ì¸ì¤ / 머ì ë¬ë ì¹ APIì ìì©íë¡ê·¸ë¨ì (ë¤ë¥¸ ê²ë¤ë³´ë¤) ì¢ì ì íì§ê° ëê² í©ëë¤.
+ì´ê²ì íì´ì¬ì´ **ë°ì´í° ì¬ì´ì¸ì¤**, 머ì ë¬ë, í¹í ë¥ë¬ëì 주ì ì¸ì´ë¼ë ë¨ìí ì¬ì¤ê³¼ ëí´ì ¸, FastAPI를 ë°ì´í° ì¬ì´ì¸ì¤/머ì ë¬ë ì¹ API ë° ì í리ì¼ì´ì
(ê·¸ ì¸ìë ë§ì ê²ë¤)ì ë§¤ì° ì ë§ë ì íì¼ë¡ ë§ë¤ì´ ì¤ëë¤.
-ë°°í¬ì ë³ë ¬ì ì´ë»ê² ê°ë¥íê² íëì§ ìê³ ì¶ë¤ë©´, [ë°°í¬](deployment/index.md){.internal-link target=_blank}문ì를 ì°¸ê³ íììì¤.
+íë¡ëì
ìì ì´ ë³ë ¬ì±ì ì´ë»ê² ë¬ì±íëì§ ë³´ë ¤ë©´ [ë°°í¬](deployment/index.md){.internal-link target=_blank} ì¹ì
ì ì°¸ê³ íì¸ì.
-## `async`ì `await`
+## `async`ì `await` { #async-and-await }
-ìµì íì´ì¬ ë²ì ìë ë¹ë기 ì½ë를 ì ìíë ë§¤ì° ì§ê´ì ì¸ ë°©ë²ì´ ììµëë¤. ì´ë ì´ê²ì íë²í "ìì°¨ì " ì½ëë¡ ë³´ì´ê² íê³ , ì ì í ìê°ì ë¹ì ì ìí´ "ë기"í©ëë¤.
+ìµì íì´ì¬ ë²ì ìë ë¹ë기 ì½ë를 ì ìíë ë§¤ì° ì§ê´ì ì¸ ë°©ë²ì´ ììµëë¤. ì´ ë°©ë²ì ì´ë¥¼ íë²í "ìì°¨" ì½ëì²ë¼ ë³´ì´ê² íê³ , ì ì í ìê°ì ì¬ë¬ë¶ì ìí´ "기ë¤ë¦¼"ì ìíí©ëë¤.
-ì°ì°ì´ 결과를 ì ë¬í기 ì ì ë기를 í´ì¼íê³ ìë¡ì´ íì´ì¬ 기ë¥ë¤ì ì§ìíë¤ë©´, ì´ë ê² ì½ë를 ìì±í ì ììµëë¤:
+결과를 주기 ì ì 기ë¤ë¦¼ì´ íìí ìì
ì´ ìê³ , ì´ë¬í ìë¡ì´ íì´ì¬ 기ë¥ì ì§ìíë¤ë©´, ë¤ìê³¼ ê°ì´ ìì±í ì ììµëë¤:
```Python
burgers = await get_burgers(2)
```
-ì¬ê¸°ì íµì¬ì `await`ì
ëë¤. ì´ê²ì íì´ì¬ìê² `burgers` 결과를 ì ì¥í기 ì´ì ì `get_burgers(2)`ì ìì
ì´ ìë£ë기를 ð 기ë¤ë¦¬ë¼ê³ ⸠ë§í©ëë¤. ì´ë¡ ì¸í´, íì´ì¬ì ê·¸ëì (ë¤ë¥¸ ìì²ì ë°ë ê²ê³¼ ê°ì) ë¤ë¥¸ ìì
ì ìíí´ë ëë¤ë ê²ì ð ⯠ìê²ë ê²ì
ëë¤.
+ì¬ê¸°ì íµì¬ì `await`ì
ëë¤. ì´ë íì´ì¬ìê² `get_burgers(2)`ê° ê·¸ ì¼ì ëë¼ ëê¹ì§ ð 기ë¤ë¦¬ëë¡ â¸ ë§íê³ , ê·¸ 결과를 `burgers`ì ì ì¥í기 ì ì ìë£ë기를 기ë¤ë¦¬ë¼ê³ í©ëë¤. ì´ë¥¼ íµí´ íì´ì¬ì ê·¸ëì(ì: ë¤ë¥¸ ìì²ì ë°ë ê²ì²ë¼) ë¤ë¥¸ ì¼ì íë¬ ê° ì ìë¤ë ê² ð ⯠ì ìê² ë©ëë¤.
-`await`ê° ëìí기 ìí´, ì´ê²ì ë¹ë기를 ì§ìíë í¨ì ë´ë¶ì ìì´ì¼ í©ëë¤. ì´ë¥¼ ìí´ì í¨ì를 `async def`를 ì¬ì©í´ ì ìíê¸°ë§ íë©´ ë©ëë¤:
+`await`ê° ëìíë ¤ë©´, ì´ ë¹ë기ì±ì ì§ìíë í¨ì ë´ë¶ì ìì´ì¼ í©ëë¤. ê·¸ë¬ë ¤ë©´ `async def`ë¡ ì ì¸íê¸°ë§ íë©´ ë©ëë¤:
```Python hl_lines="1"
async def get_burgers(number: int):
- # Do some asynchronous stuff to create the burgers
+ # íë²ê±°ë¥¼ ë§ë¤ê¸° ìí ë¹ë기 ì²ë¦¬ë¥¼ ìí
return burgers
```
-...`def`를 ì¬ì©íë ëì :
+...`def` ëì :
```Python hl_lines="2"
-# This is not asynchronous
+# ë¹ëê¸°ê° ìëëë¤
def get_sequential_burgers(number: int):
- # Do some sequential stuff to create the burgers
+ # íë²ê±°ë¥¼ ë§ë¤ê¸° ìí ìì°¨ ì²ë¦¬ë¥¼ ìí
return burgers
```
-`async def`를 ì¬ì©íë©´, íì´ì¬ì í´ë¹ í¨ì ë´ìì `await` ííì 주ìí´ì¼íë¤ë ì¬ì¤ê³¼, í´ë¹ í¨ìì ì¤íì "ì¼ìì ì§"â¸íê³ ë¤ì ëìì¤ê¸° ì ê¹ì§ ë¤ë¥¸ ìì
ì ìíðí ì ìë¤ë ê²ì ìê²ë©ëë¤.
+`async def`를 ì¬ì©íë©´, íì´ì¬ì ê·¸ í¨ì ë´ë¶ìì `await` ííìì 주ìí´ì¼ íë©°, ê·¸ í¨ìì ì¤íì "ì¼ìì ì§" ⸠íê³ ë¤ì ëìì¤ê¸° ì ì ë¤ë¥¸ ì¼ì íë¬ ê° ì ìë¤ë ê² ð ì ìê² ë©ëë¤.
-`async def`f í¨ì를 í¸ì¶íê³ ì í ë, "ë기"í´ì¼í©ëë¤. ë°ë¼ì, ìëë ëìíì§ ììµëë¤.
+`async def` í¨ì를 í¸ì¶íê³ ì í ëë, ê·¸ í¨ì를 "await" í´ì¼ í©ëë¤. ë°ë¼ì ìëë ëìíì§ ììµëë¤:
```Python
-# This won't work, because get_burgers was defined with: async def
+# ëìíì§ ììµëë¤. get_burgersë async defë¡ ì ìëììµëë¤
burgers = get_burgers(2)
```
---
-ë°ë¼ì, `await`f를 ì¬ì©í´ì í¸ì¶í ì ìë ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì¬ì©íë¤ë©´, ë¤ìê³¼ ê°ì´ `async def`를 ì¬ì©íë *ê²½ë¡ ìë í¨ì*를 ìì±í´ì¼ í©ëë¤:
+ë°ë¼ì, `await`ë¡ í¸ì¶í ì ìë¤ê³ ë§íë ë¼ì´ë¸ë¬ë¦¬ë¥¼ ì¬ì©íë¤ë©´, ë¤ìê³¼ ê°ì´ ê·¸ê²ì ì¬ì©íë *ê²½ë¡ ì²ë¦¬ í¨ì*를 `async def`ë¡ ë§ë¤ì´ì¼ í©ëë¤:
```Python hl_lines="2-3"
@app.get('/burgers')
@@ -317,94 +349,96 @@ async def read_burgers():
return burgers
```
-### ë ì¸ë¶ì ì¸ ê¸°ì ì ì¬í
+### ë ì¸ë¶ì ì¸ ê¸°ì ì ì¬í { #more-technical-details }
+
+`await`ë `async def`ë¡ ì ìë í¨ì ë´ë¶ììë§ ì¬ì©í ì ìë¤ë ê²ì ëì¹ì±ì
¨ì ê²ì
ëë¤.
-`await`ê° `async def`를 ì¬ì©íë í¨ì ë´ë¶ììë§ ì¬ì©ì´ ê°ë¥íë¤ë ê²ì ëì¹ì±ì
¨ì ê²ì
ëë¤.
+íì§ë§ ëìì, `async def`ë¡ ì ìë í¨ìë "await" ëì´ì¼ í©ëë¤. ë°ë¼ì `async def`를 ê°ì§ í¨ìë `async def`ë¡ ì ìë í¨ì ë´ë¶ììë§ í¸ì¶ë ì ììµëë¤.
-íì§ë§ ëìì, `async def`ë¡ ì ìë í¨ìë¤ì "ë기"ëì´ì¼ë§ í©ëë¤. ë°ë¼ì, `async def`를 ì¬ì©í í¨ìë¤ì ìì `async def`를 ì¬ì©í í¨ì ë´ë¶ììë§ í¸ì¶ë ì ììµëë¤.
+ê·¸ë ë¤ë©´, ëì´ ë¨¼ì ë ë¬ê±ì´ 먼ì ëì²ë¼, 첫 ë²ì§¸ `async` í¨ìë ì´ë»ê² í¸ì¶í ì ììê¹ì?
-ê·¸ë ë¤ë©´ ëì´ ë¨¼ì ë, ë¬ê±ì´ 먼ì ë, 첫 `async` í¨ì를 ì´ë»ê² í¸ì¶í ì ìê² ìµëê¹?
+**FastAPI**ë¡ ìì
íë¤ë©´ ê±±ì í íìê° ììµëë¤. ê·¸ "첫" í¨ìë ì¬ë¬ë¶ì *ê²½ë¡ ì²ë¦¬ í¨ì*ê° ë ê²ì´ê³ , FastAPIë ì¬ë°ë¥´ê² ì²ë¦¬íë ë°©ë²ì ìê³ ì기 ë문ì
ëë¤.
-**FastAPI**를 ì¬ì©í´ ìì
íë¤ë©´ ì´ê²ì ê±±ì íì§ ììë ë©ëë¤. ìëíë©´ ê·¸ "첫" í¨ìë ë¹ì ì *ê²½ë¡ ìë í¨ì*ê° ë ê²ì´ê³ , FastAPIë ì´ë»ê² ì¬ë°ë¥´ê² ì²ë¦¬í ì§ ìê³ ì기 ë문ì
ëë¤.
+íì§ë§ FastAPI ìì´ `async` / `await`를 ì¬ì©íê³ ì¶ë¤ë©´, ê·¸ê²ë ê°ë¥í©ëë¤.
-íì§ë§ FastAPI를 ì¬ì©íì§ ìê³ `async` / `await`를 ì¬ì©íê³ ì¶ë¤ë©´, ì´ ìì ê°ë¥í©ëë¤.
+### ì¬ë¬ë¶ë§ì async ì½ë ìì±í기 { #write-your-own-async-code }
-### ë¹ì ë§ì ë¹ë기 ì½ë ìì±í기
+Starlette(ê·¸ë¦¬ê³ **FastAPI**)ë AnyIO를 기ë°ì¼ë¡ íê³ ìì¼ë©°, íì´ì¬ íì¤ ë¼ì´ë¸ë¬ë¦¬ asyncioì Trio 모ëì í¸íë©ëë¤.
-Starlette(ê·¸ë¦¬ê³ FastAPI)ë AnyIO를 기ë°ì¼ë¡ íê³ ìê³ , ë°ë¼ì íì´ì¬ íì¤ ë¼ì´ë¸ë¬ë¦¬ì¸ asyncio ë° Trioì í¸íë©ëë¤.
+í¹í, ì½ëìì ë ê³ ê¸ í¨í´ì´ íìí ê³ ê¸ ëìì± ì¬ì© ì¬ë¡ììë ì§ì AnyIO를 ì¬ì©í ì ììµëë¤.
-í¹í, ì½ëìì ê³ ê¸ í¨í´ì´ íìí ê³ ê¸ ëìì±ì ì¬ì©íë ê²½ì° ì§ì ì ì¼ë¡ AnyIO를 ì¬ì©í ì ììµëë¤.
+ê·¸ë¦¬ê³ FastAPI를 ì¬ì©íì§ ìëë¼ë, ëì í¸íì±ì íë³´íê³ ê·¸ ì´ì (ì: *structured concurrency*)ì ì»ê¸° ìí´ AnyIOë¡ ì¬ë¬ë¶ë§ì async ì í리ì¼ì´ì
ì ìì±í ìë ììµëë¤.
-FastAPI를 ì¬ì©íì§ ìëë¼ë, ëì í¸íì± ë° AnyIOì ì´ì (ì: *구조íë ëìì±*)ì ì·¨í기 ìí´ AnyIO를 ì¬ì©í´ ë¹ë기 ìì©íë¡ê·¸ë¨ì ìì±í ì ììµëë¤.
+ì ë AnyIO ìì ìì ë ì´ì´ë¡ ë ë¤ë¥¸ ë¼ì´ë¸ë¬ë¦¬ë¥¼ ë§ë¤ìëë°, íì
ì´ë
¸í
ì´ì
ì ì¡°ê¸ ê°ì íê³ ë ëì **ìëìì±**, **ì¸ë¼ì¸ ì¤ë¥** ë±ì ì»ê¸° ìí ê²ì
ëë¤. ëí **ì´í´**íê³ **ì¬ë¬ë¶ë§ì async ì½ë**를 ìì±íëë¡ ëë ì¹ì í ìê°ì íí 리ì¼ë ì ê³µí©ëë¤: Asyncer. í¹í **async ì½ëì ì¼ë°**(blocking/ë기) ì½ë를 **ê²°í©**í´ì¼ íë¤ë©´ ì주 ì ì©í©ëë¤.
-### ë¹ë기 ì½ëì ë¤ë¥¸ íí
+### ë¹ë기 ì½ëì ë¤ë¥¸ íí { #other-forms-of-asynchronous-code }
-íì´ì¬ìì `async`ì `await`를 ì¬ì©íê² ë ê²ì ë¹êµì ìµê·¼ì ì¼ì
ëë¤.
+`async`ì `await`를 ì¬ì©íë ì´ ì¤íì¼ì ì¸ì´ìì ë¹êµì ìµê·¼ì ì¶ê°ëììµëë¤.
-íì§ë§ ì´ë¡ ì¸í´ ë¹ë기 ì½ë ìì
ì´ í¨ì¬ ê°ë¨í´ì¡ìµëë¤.
+íì§ë§ ë¹ë기 ì½ë를 ë¤ë£¨ë ì¼ì í¨ì¬ ë ì½ê² ë§ë¤ì´ ì¤ëë¤.
-ê°ì (ëë ê±°ì ì ì¬í) 문ë²ì ìµì ë²ì ì ìë°ì¤í¬ë¦½í¸(ë¸ë¼ì°ì ì NodeJS)ìë ì¶ê°ëììµëë¤.
+ê±°ì ëì¼í 문ë²ì´ ìµê·¼ ë¸ë¼ì°ì ì NodeJSì ìµì JavaScriptìë í¬í¨ëììµëë¤.
-íì§ë§ ê·¸ ì´ì ì, ë¹ë기 ì½ë를 ì²ë¦¬íë ê²ì 꽤 ë³µì¡íê³ ì´ë ¤ì´ ì¼ì´ììµëë¤.
+íì§ë§ ê·¸ ì´ì ìë ë¹ë기 ì½ë를 ì²ë¦¬íë ê²ì´ í¨ì¬ ë ë³µì¡íê³ ì´ë ¤ì ìµëë¤.
-íì´ì¬ì ìì ë²ì ì´ë¼ë©´, ì¤ë ë ëë Gevent를 ì¬ì©í ì ìì ê²ì
ëë¤. íì§ë§ ì½ë를 ì´í´íê³ , ëë²ê¹
íê³ , ì´ì ëí´ ìê°íëê² í¨ì¬ ë³µì¡í©ëë¤.
+ì´ì ë²ì ì íì´ì¬ììë ì¤ë ë ëë Gevent를 ì¬ì©í ì ììì ê²ì
ëë¤. íì§ë§ ì½ë를 ì´í´íê³ , ëë²ê¹
íê³ , ì´ì ëí´ ìê°íë ê²ì´ í¨ì¬ ë ë³µì¡í©ëë¤.
-ìì ë²ì ì NodeJS / ë¸ë¼ì°ì ìë°ì¤í¬ë¦½í¸ë¼ë©´, "ì½ë°± í¨ì"를 ì¬ì©íì ê²ì
ëë¤. ê·¸ë¦¬ê³ ì´ë¡ ì¸í´ "ì½ë°± ì§ì¥"ì ë¹ ì§ê² ë ì ììµëë¤.
+ì´ì ë²ì ì NodeJS/ë¸ë¼ì°ì JavaScriptììë "callback"ì ì¬ì©íì ê²ì
ëë¤. ì´ë "callback hell"ë¡ ì´ì´ì§ëë¤.
-## ì½ë£¨í´
+## ì½ë£¨í´ { #coroutines }
-**ì½ë£¨í´**ì `async def` í¨ìê° ë°ííë ê²ì ì¹íë ë§¤ì° ê³ ê¸ì¤ë¬ì´ ì©ì´ì¼ ë¿ì
ëë¤. íì´ì¬ì ê·¸ê²ì´ ììëê³ ì´ë ìì ìì ìë£ëì§ë§ ë´ë¶ì `await`ê° ìì ëë§ë¤ ë´ë¶ì ì¼ë¡ ì¼ìì ì§â¸ë ìë ìë í¨ìì ì ì¬í ê²ì´ë¼ë ì¬ì¤ì ìê³ ììµëë¤.
+**ì½ë£¨í´**ì `async def` í¨ìê° ë°ííë ê²ì ëí ë§¤ì° ê³ ê¸ì¤ë¬ì´ ì©ì´ì¼ ë¿ì
ëë¤. íì´ì¬ì ê·¸ê²ì´ í¨ìì ë¹ì·í 무ì¸ê°ë¡ì ììí ì ìê³ , ì´ë ìì ì ëëì§ë§, ë´ë¶ì `await`ê° ìì ëë§ë¤ ë´ë¶ì ì¼ë¡ë ì¼ìì ì§ â¸ ë ì ìë¤ë ê²ì ìê³ ììµëë¤.
-ê·¸ë¬ë `async` ë° `await`ì í¨ê» ë¹ë기 ì½ë를 ì¬ì©íë ì´ ëª¨ë 기ë¥ë¤ì "ì½ë£¨í´"ì¼ë¡ ê°ë¨í ìì½ë©ëë¤. ì´ê²ì Goì 주ë íµì¬ 기ë¥ì¸ "ê³ ë£¨í´"ì ê²¬ì¤ ì ììµëë¤.
+íì§ë§ `async` ë° `await`ì í¨ê» ë¹ë기 ì½ë를 ì¬ì©íë ì´ ëª¨ë 기ë¥ì ì¢
ì¢
"ì½ë£¨í´"ì ì¬ì©íë¤ê³ ìì½ë©ëë¤. ì´ë Goì 주ì íµì¬ 기ë¥ì¸ "Goroutines"ì ë¹ê²¬ë©ëë¤.
-## ê²°ë¡
+## ê²°ë¡ { #conclusion }
-ì기 문ì¥ì ë¤ì í ë² ë´
ìë¤:
+ìì ê°ì 문ì¥ì ë¤ì ë´
ìë¤:
-> ìµì íì´ì¬ ë²ì ì **`async` ë° `await`** 문ë²ê³¼ í¨ê» **âì½ë£¨í´â**ì´ë¼ê³ íë ê²ì ì¬ì©íë **âë¹ë기 ì½ëâ**를 ì§ìí©ëë¤.
+> ìµì íì´ì¬ ë²ì ì **âì½ë£¨í´â**ì´ë¼ê³ íë ê²ì ì¬ì©íë **âë¹ë기 ì½ëâ**를 **`async` ë° `await`** 문ë²ê³¼ í¨ê» ì§ìí©ëë¤.
-ì´ì ì´ ë§ì ì¡°ê¸ ë ì´í´í ì ìì ê²ì
ëë¤. â¨
+ì´ì ë ì´í´ê° ë ê²ì
ëë¤. â¨
-ì´ê²ì´ (Starletteì íµí´) FastAPI를 ê°íê² íë©´ì ê·¸ê²ì´ ì¸ìì ì¸ ì±ë¥ì ë¼ ì ìê² í©ëë¤.
+ì´ ëª¨ë ê²ì´ FastAPI(Starletteì íµí´)를 구ëíê³ , ì¸ìì ì¸ ì±ë¥ì ë´ê² íë ìëë ¥ì
ëë¤.
-## ë§¤ì° ì¸ë¶ì ì¸ ê¸°ì ì ì¬í
+## ë§¤ì° ì¸ë¶ì ì¸ ê¸°ì ì ì¬í { #very-technical-details }
/// warning | ê²½ê³
-ì´ ë¶ë¶ì ëì´ê°ë ë©ëë¤.
+ì´ ë¶ë¶ì ìë§ ê±´ëë°ì´ë ë©ëë¤.
ì´ê²ë¤ì **FastAPI**ê° ë´ë¶ì ì¼ë¡ ì´ë»ê² ëìíëì§ì ëí ë§¤ì° ì¸ë¶ì ì¸ ê¸°ì ì¬íì
ëë¤.
-ë§ì½ 기ì ì ì§ì(ì½ë£¨í´, ì¤ë ë, ë¸ë¡í¹ ë±)ì´ ìê³ FastAPIê° ì´ë»ê² `async def` vs `def`를 ë¤ë£¨ëì§ ê¶ê¸íë¤ë©´, ê³ìíììì¤.
+(ì½ë£¨í´, ì¤ë ë, ë¸ë¡í¹ ë±) ê°ì 기ì ì§ìì´ ê½¤ ìê³ FastAPIê° `async def`ì ì¼ë° `def`를 ì´ë»ê² ì²ë¦¬íëì§ ê¶ê¸íë¤ë©´, ê³ì ì½ì´ë³´ì¸ì.
///
-### ê²½ë¡ ìë í¨ì
+### ê²½ë¡ ì²ë¦¬ í¨ì { #path-operation-functions }
-ê²½ë¡ ìë í¨ì를 `async def` ëì ì¼ë°ì ì¸ `def`ë¡ ì ì¸íë ê²½ì°, (ìë²ë¥¼ ì°¨ë¨íë ê²ì²ë¼) ê·¸ê²ì ì§ì í¸ì¶íë ëì ë기ì¤ì¸ ì¸ë¶ ì¤ë ëíìì ì¤íë©ëë¤.
+*ê²½ë¡ ì²ë¦¬ í¨ì*를 `async def` ëì ì¼ë°ì ì¸ `def`ë¡ ì ì¸íë©´, (ìë²ë¥¼ ë¸ë¡í¹í ì ìì¼ë¯ë¡ ì§ì í¸ì¶íë ëì ) ì¸ë¶ ì¤ë ëíìì ì¤íëê³ ê·¸ 결과를 await í©ëë¤.
-ë§ì½ ì기ì ë¬ì¬ëëë¡ ëìíì§ ìë ë¹ë기 íë¡ê·¸ë¨ì ì¬ì©í´ìê³ ì½ê°ì ì±ë¥ í¥ì (ì½ 100 ëë
¸ì´)ì ìí´ `def`를 ì¬ì©í´ì ê³ì°ë§ì ìí ì¬ìí *ê²½ë¡ ìë í¨ì*를 ì ìí´ìë¤ë©´, **FastAPI**ë ì´ìë ë°ëë¼ë ê²ì 주ìíììì¤. ì´ë¬í ê²½ì°ì, *ê²½ë¡ ìë í¨ì*ê° ë¸ë¡í¹ I/O를 ìííë ì½ë를 ì¬ì©íì§ ìë í `async def`를 ì¬ì©íë í¸ì´ ë ë«ìµëë¤.
+ììì ì¤ëª
í ë°©ìì¼ë¡ ëìíì§ ìë ë¤ë¥¸ async íë ììí¬ë¥¼ ì¬ì©í´ë³¸ ì ì´ ìê³ , ì주 ìì ì±ë¥ í¥ì(ì½ 100 ëë
¸ì´)ì ìí´ ê³ì°ë§ íë ì¬ìí *ê²½ë¡ ì²ë¦¬ í¨ì*를 ì¼ë° `def`ë¡ ì ìí곤 íë¤ë©´, **FastAPI**ììë ê·¸ í¨ê³¼ê° ì ë°ëê° ë ì ìë¤ë ì ì ì ìíì¸ì. ì´ë° ê²½ì°ìë *ê²½ë¡ ì²ë¦¬ í¨ì*ìì ë¸ë¡í¹ I/O 를 ìííë ì½ë를 ì¬ì©íì§ ìë í `async def`를 ì¬ì©íë í¸ì´ ë ë«ìµëë¤.
-íì§ë§ ë ê²½ì° ëª¨ë, FastAPIê° ë¹ì ì´ ì ì ì¬ì©íë íë ììí¬ë³´ë¤ [ë ë¹ ë¥¼](index.md#_11){.internal-link target=_blank} (ìµìí ë¹ê²¬ë ) íë¥ ì´ ëìµëë¤.
+ê·¸ë¼ìë ë ê²½ì° ëª¨ë, **FastAPI**ë ì´ì ì ì¬ì©íë íë ììí¬ë³´ë¤ [ì¬ì í ë ë¹ ë¥¼](index.md#performance){.internal-link target=_blank} ê°ë¥ì±ì´ ëìµëë¤(ëë ìµìí ë¹ì·í©ëë¤).
-### ìì¡´ì±
+### ìì¡´ì± { #dependencies }
-ìì¡´ì±ìë ëì¼íê² ì ì©ë©ëë¤. ìì¡´ì±ì´ `async def`ê° ìë íì¤ `def` í¨ìë¼ë©´, ì¸ë¶ ì¤ë ëíìì ì¤íë©ëë¤.
+[ìì¡´ì±](tutorial/dependencies/index.md){.internal-link target=_blank}ìë ëì¼íê² ì ì©ë©ëë¤. ìì¡´ì±ì´ `async def` ëì íì¤ `def` í¨ìë¼ë©´, ì¸ë¶ ì¤ë ëíìì ì¤íë©ëë¤.
-### íì-ìì¡´ì±
+### íì ìì¡´ì± { #sub-dependencies }
-í¨ì ì ìì 매ê°ë³ìë¡ ìë¡ë¥¼ íìë¡íë ë¤ìì ìì¡´ì±ê³¼ íì-ìì¡´ì±ì ê°ì§ ì ìê³ , ê·¸ ì¤ ì¼ë¶ë `async def`ë¡, ë¤ë¥¸ ì¼ë¶ë ì¼ë°ì ì¸ `def`ë¡ ìì±ëìì ì ììµëë¤. ì´ê²ì ì¬ì í ì ëìíê³ , ì¼ë°ì ì¸ `def`ë¡ ìì±ë ê²ë¤ì "ë기"ëë ëì ì (ì¤ë ëíë¡ë¶í°) ì¸ë¶ ì¤ë ëìì í¸ì¶ë©ëë¤.
+ìë¡ë¥¼ íìë¡ íë ì¬ë¬ ìì¡´ì±ê³¼ [íì ìì¡´ì±](tutorial/dependencies/sub-dependencies.md){.internal-link target=_blank}ì í¨ì ì ìì 매ê°ë³ìë¡ ê°ì§ ì ìì¼ë©°, ê·¸ì¤ ì¼ë¶ë `async def`ë¡, ë¤ë¥¸ ì¼ë¶ë ì¼ë° `def`ë¡ ìì±ëìì ì ììµëë¤. ê·¸ëë ì ì ëìíë©°, ì¼ë° `def`ë¡ ìì±ë ê²ë¤ì "await"ëë ëì (ì¤ë ëíìì) ì¸ë¶ ì¤ë ëìì í¸ì¶ë©ëë¤.
-### ë¤ë¥¸ ì í¸ë¦¬í° í¨ì
+### ë¤ë¥¸ ì í¸ë¦¬í° í¨ì { #other-utility-functions }
-ì§ì í¸ì¶ëë ë¤ë¥¸ 모ë ì í¸ë¦¬í° í¨ìë ì¼ë°ì ì¸ `def`ë `async def`ë¡ ìì±ë ì ìê³ FastAPIë ì´ë¥¼ í¸ì¶íë ë°©ìì ìí¥ì 미ì¹ì§ ììµëë¤.
+ì§ì í¸ì¶íë ë¤ë¥¸ 모ë ì í¸ë¦¬í° í¨ìë ì¼ë° `def`ë `async def`ë¡ ìì±ë ì ìì¼ë©°, FastAPIë í¸ì¶ ë°©ìì ìí¥ì ì£¼ì§ ììµëë¤.
-ì´ê²ì FastAPIê° ë¹ì ì ìí´ í¸ì¶íë í¨ììë ë°ëì
ëë¤: *ê²½ë¡ ìë í¨ì*ì ìì¡´ì±
+ì´ë FastAPIê° ì¬ë¬ë¶ì ìí´ í¸ì¶íë í¨ì(ì¦, *ê²½ë¡ ì²ë¦¬ í¨ì*ì ìì¡´ì±)ì ëë¹ë©ëë¤.
-ë§ì½ ë¹ì ì ì í¸ë¦¬í° í¨ìê° `def`를 ì¬ì©í ì¼ë°ì ì¸ í¨ìë¼ë©´, ì¤ë ëíììê° ìëë¼ ì§ì í¸ì¶(ë¹ì ì´ ì½ëì ìì±í ëë¡)ë ê²ì´ê³ , `async def`ë¡ ìì±ë í¨ìë¼ë©´ ì½ëìì í¸ì¶í ë ê·¸ í¨ì를 `await` í´ì¼ í©ëë¤.
+ì í¸ë¦¬í° í¨ìê° `def`ë¡ ë§ë ì¼ë° í¨ìë¼ë©´, ì¤ë ëíì´ ìëë¼ ì§ì (ì½ëì ìì±í ëë¡) í¸ì¶ë©ëë¤. ê·¸ë¦¬ê³ `async def`ë¡ ìì±ë í¨ìë¼ë©´, ì½ëìì í¸ì¶í ë ê·¸ í¨ì를 `await` í´ì¼ í©ëë¤.
---
-ë¤ì ë§íì§ë§, ì´ê²ì ë¹ì ì´ ì´ê²ì ëí´ ì°¾ê³ ìë ê²½ì°ì íí´ ì ì©í ë§¤ì° ì¸ë¶ì ì¸ ê¸°ì ì¬íì
ëë¤.
+ë¤ì ë§íì§ë§, ì´ê²ë¤ì ìë§ë ì´ë¥¼ ì°¾ê³ ììë ê²½ì°ì ì ì©í ë§¤ì° ì¸ë¶ì ì¸ ê¸°ì ì¬íì
ëë¤.
-ê·¸ë ì§ ìì ê²½ì°, ì기ì ê°ì´ëë¼ì¸ë§ì¼ë¡ë ì¶©ë¶í ê²ì
ëë¤: [ë°ìì ê²½ì°](#_1).
+ê·¸ë ì§ ìë¤ë©´, ì ì¹ì
ì ê°ì´ëë¼ì¸ì´ë©´ ì¶©ë¶í©ëë¤: ë°ìì ê°ì?.
diff --git a/docs/ko/docs/fastapi-cli.md b/docs/ko/docs/fastapi-cli.md
index a1160c71f..0d87ce321 100644
--- a/docs/ko/docs/fastapi-cli.md
+++ b/docs/ko/docs/fastapi-cli.md
@@ -1,83 +1,75 @@
-# FastAPI CLI
+# FastAPI CLI { #fastapi-cli }
-**FastAPI CLI**ë FastAPI ì í리ì¼ì´ì
ì ì¤ííê³ , íë¡ì í¸ë¥¼ ê´ë¦¬íë ë± ë¤ìí ìì
ì ìíí ì ìë 커맨ë ë¼ì¸ íë¡ê·¸ë¨ì
ëë¤.
+**FastAPI CLI**ë FastAPI ì í리ì¼ì´ì
ì ìë¹íê³ , FastAPI íë¡ì í¸ë¥¼ ê´ë¦¬íë ë± ë¤ìí ìì
ì ì¬ì©í ì ìë 커맨ë ë¼ì¸ íë¡ê·¸ë¨ì
ëë¤.
-FastAPI를 ì¤ì¹í ë (ì: `pip install "fastapi[standard]"` ëª
ë ¹ì´ë¥¼ ì¬ì©í ê²½ì°), `fastapi-cli`ë¼ë í¨í¤ì§ê° í¬í¨ë©ëë¤. ì´ í¨í¤ì§ë í°ë¯¸ëìì ì¬ì©í ì ìë `fastapi` ëª
ë ¹ì´ë¥¼ ì ê³µí©ëë¤.
+FastAPI를 ì¤ì¹í ë(ì: `pip install "fastapi[standard]"`), `fastapi-cli`ë¼ë í¨í¤ì§ê° í¬í¨ëë©°, ì´ í¨í¤ì§ë í°ë¯¸ëìì `fastapi` ëª
ë ¹ì´ë¥¼ ì ê³µí©ëë¤.
-ê°ë°ì©ì¼ë¡ FastAPI ì í리ì¼ì´ì
ì ì¤ííë ¤ë©´ ë¤ìê³¼ ê°ì´ `fastapi dev` ëª
ë ¹ì´ë¥¼ ì¬ì©í ì ììµëë¤:
+ê°ë°ì©ì¼ë¡ FastAPI ì í리ì¼ì´ì
ì ì¤ííë ¤ë©´ `fastapi dev` ëª
ë ¹ì´ë¥¼ ì¬ì©í ì ììµëë¤:
---- +**FastAPI**ë ë¤ë¥¸ ì¬ëë¤ì´ ì´ì ì í´ì¨ ìì ì´ ììë¤ë©´ ì¡´ì¬íì§ ììì ê²ì ëë¤. -## ì¡°ì¬ +ê·¸ ì ì ë§ë¤ì´ì§ ë§ì ë구ë¤ì´ ì´ê²ì íìì ìê°ì 주ììµëë¤. -ì¬ë¬ ëìì ì¬ì©í´ ë³´ë©° ë¤ìí ë구ìì ë°°ì´ ì ë¤ì 모ì ì ì ê°ë°íìê² ê°ì¥ ì í©í ë°©ìì ì°¾ììµëë¤. +ì ë ì¬ë¬ í´ ëì ìë¡ì´ íë ììí¬ë¥¼ ë§ëë ê²ì í¼íê³ ìììµëë¤. ì²ììë **FastAPI**ê° ë¤ë£¨ë 모ë 기ë¥ì ì¬ë¬ ë¤ë¥¸ íë ììí¬, íë¬ê·¸ì¸, ë구ë¤ì ì¬ì©í´ í´ê²°íë ¤ê³ íìµëë¤. -ì를 ë¤ì´, íì¤ :term:Python íì íí¸-ê·¸ëì **FastAPI**ì ì½ë를 ìì±í기 ì ì ëª ë¬ ëì OpenAPI, JSON Schema, OAuth2 ëª ì¸ë¥¼ ì°êµ¬íë©° ì´ë¤ì ê´ê³ì ê²¹ì¹ë ë¶ë¶, ì°¨ì´ì ì ì´í´íìµëë¤. +## ì¡°ì¬ { #investigation } ---- +ì´ì ì 모ë ëìì ì¬ì©í´ ë³´ë©´ì, ê° ë구ë¡ë¶í° ë°°ì¸ ê¸°í를 ì»ìê³ , ìì´ëì´ë¥¼ ê°ì ¸ì ì ê° ì¼í´ì¨ ê°ë° íë¤ê³¼ ì ìì ìê² ê°ì¥ ì í©íë¤ê³ ì°¾ì ë°©ìì¼ë¡ ì¡°í©í ì ìììµëë¤. -## ëìì¸ +ì를 ë¤ì´, ì´ìì ì¼ë¡ë íì¤ Python íì íí¸ì 기ë°í´ì¼ íë¤ë ì ì´ ë¶ëª íìµëë¤. -ê·¸ í, **FastAPI** ì¬ì©ìê° ë ê°ë°ìë¡ì ì¬ì©íê³ ì¶ì ê°ë°ì "API"를 ëìì¸íìµëë¤. +ëí, ê°ì¥ ì¢ì ì ê·¼ë²ì ì´ë¯¸ ì¡´ì¬íë íì¤ì ì¬ì©íë ê²ì´ììµëë¤. -[Python Developer Survey](https://www.jetbrains.com/research/python-developers-survey-2018/#development-tools)ì ë°ë¥´ë©´ ì½ 80%ì Python ê°ë°ìê° PyCharm, VS Code, Jedi ê¸°ë° í¸ì§ê¸° ë±ìì ê°ë°í©ëë¤. ì´ ê³¼ì ìì ì¬ë¬ ìì´ëì´ë¥¼ í ì¤í¸íìµëë¤. +ê·¸ëì **FastAPI**ì ì½ë©ì ììí기ë ì ì, OpenAPI, JSON Schema, OAuth2 ë±ê³¼ ê°ì ëª ì¸ë¥¼ ëª ë¬ ëì ê³µë¶íìµëë¤. ì´ë¤ì ê´ê³, ê²¹ì¹ë ë¶ë¶, ì°¨ì´ì ì ì´í´í기 ìí´ìììµëë¤. -ëë¶ë¶ì ë¤ë¥¸ í¸ì§ê¸°ë ì ì¬íê² ëìí기 ë문ì, **FastAPI**ì ì´ì ì ê±°ì 모ë í¸ì§ê¸°ìì ë릴 ì ììµëë¤. +## ëìì¸ { #design } -ì´ ê³¼ì ì íµí´ ì½ë ì¤ë³µì ìµìííê³ , 모ë ê³³ìì ìë ìì±, íì ê²ì¬, ìë¬ íì¸ ê¸°ë¥ì´ ì ê³µëë ìµì ì ë°©ìì ì°¾ìëìµëë¤. +ê·¸ ë¤ììë (FastAPI를 ì¬ì©íë ê°ë°ìë¡ì) ì¬ì©ìë¡ì ê°ê³ ì¶ìë ê°ë°ì "API"를 ëìì¸íë ë° ìê°ì ì¼ìµëë¤. -ì´ ëª¨ë ê²ì ê°ë°ìë¤ìê² ìµê³ ì ê°ë° ê²½íì ì ê³µí기 ìí´ ì¤ê³ëììµëë¤. +ê°ì¥ ì¸ê¸° ìë Python í¸ì§ê¸°ë¤: PyCharm, VS Code, Jedi ê¸°ë° í¸ì§ê¸°ìì ì¬ë¬ ìì´ëì´ë¥¼ í ì¤í¸íìµëë¤. ---- +ì½ 80%ì ì¬ì©ì를 í¬í¨íë ìµê·¼ Python Developer Surveyì ë°ë¥´ë©´ ê·¸ë ìµëë¤. -## íìì¡°ê±´ +ì¦, **FastAPI**ë Python ê°ë°ìì 80%ê° ì¬ì©íë í¸ì§ê¸°ë¤ë¡ í¹ë³í í ì¤í¸ëììµëë¤. ê·¸ë¦¬ê³ ëë¶ë¶ì ë¤ë¥¸ í¸ì§ê¸°ë ì ì¬íê² ëìíë ê²½í¥ì´ ìì¼ë¯ë¡, ê·¸ 모ë ì´ì ì ì¬ì¤ì 모ë í¸ì§ê¸°ìì ëìí´ì¼ í©ëë¤. -ì¬ë¬ ëìì í ì¤í¸í í, [Pydantic](https://docs.pydantic.dev/)ì ì¬ì©íê¸°ë¡ ê²°ì íìµëë¤. +ê·¸ë ê² í´ì ì½ë ì¤ë³µì ê°ë¥í í ë§ì´ ì¤ì´ê³ , ì´ëìë ìë ìì±, íì ë° ìë¬ ê²ì¬ ë±ì ì ê³µíë ìµì ì ë°©ë²ì ì°¾ì ì ìììµëë¤. -ì´í ì ë **Pydantic**ì´ JSON Schemaì ìë²½í í¸íëëë¡ ê°ì íê³ , ë¤ìí ì ì½ ì¡°ê±´ ì ì¸ì ì§ìíë©°, ì¬ë¬ í¸ì§ê¸°ììì ìë ìì±ê³¼ íì ê²ì¬ 기ë¥ì í¥ìí기 ìí´ ê¸°ì¬íìµëë¤. +모ë ê°ë°ììê² ìµê³ ì ê°ë° ê²½íì ì ê³µíë ë°©ìì¼ë¡ ë§ì ëë¤. -ëí, ë ë¤ë¥¸ 주ì íìì¡°ê±´ì´ìë [Starlette](https://www.starlette.dev/)ìë 기ì¬íìµëë¤. +## íìì¡°ê±´ { #requirements } ---- +ì¬ë¬ ëìì í ì¤í¸í í, ì¥ì ë문ì **Pydantic**ì ì¬ì©íê¸°ë¡ ê²°ì íìµëë¤. -## ê°ë° +ê·¸ í, JSON Schema를 ìì í ì¤ìíëë¡ íê³ , ì ì½ ì¡°ê±´ ì ì¸ì ì ìíë ë¤ìí ë°©ìì ì§ìíë©°, ì¬ë¬ í¸ì§ê¸°ììì í ì¤í¸ë¥¼ ë°íì¼ë¡ í¸ì§ê¸° ì§ì(íì ê²ì¬, ìë ìì±)ì ê°ì í기 ìí´ ê¸°ì¬íìµëë¤. -**FastAPI**를 ê°ë°í기 ììí ì¦ììë ëë¶ë¶ì ì¤ë¹ê° ì´ë¯¸ ìë£ë ìíììµëë¤. ì¤ê³ê° ì ìëìê³ , íìì¡°ê±´ê³¼ ëêµ¬ê° ì¤ë¹ëìì¼ë©°, íì¤ê³¼ ëª ì¸ì ëí ì§ìë ì¶©ë¶íìµëë¤. +ê°ë° ê³¼ì ìì, ë ë¤ë¥¸ íµì¬ íìì¡°ê±´ì¸ **Starlette**ìë 기ì¬íìµëë¤. ---- +## ê°ë° { #development } -## 미ë +**FastAPI** ì체를 ë§ë¤ê¸° ììíì ë쯤ìë, ëë¶ë¶ì ì¡°ê°ë¤ì´ ì´ë¯¸ ê°ì¶°ì ¸ ììê³ , ëìì¸ì ì ìëì´ ììì¼ë©°, íìì¡°ê±´ê³¼ ë구ë ì¤ë¹ëì´ ììê³ , íì¤ê³¼ ëª ì¸ì ëí ì§ìë ëª ííê³ ìµì ìíììµëë¤. -íìì ìì **FastAPI**ê° ë§ì ì¬ëë¤ìê² ì ì©íë¤ë ê²ì´ ëª ë°±í´ì¡ìµëë¤. +## 미ë { #future } -ì¬ë¬ ì©ëì ë ì í©í ë구ë¡ì 기존 ëìë³´ë¤ ì í¸ëê³ ììµëë¤. -ì´ë¯¸ ë§ì ê°ë°ìì íë¤ì´ **FastAPI**ì ìì¡´í´ íë¡ì í¸ë¥¼ ì§í ì¤ì ëë¤ (ì ì ì íë ë§ì°¬ê°ì§ì ëë¤). +ì´ ìì ìë, **FastAPI**ê° ê·¸ ìì´ëì´ì í¨ê» ë§ì ì¬ëë¤ìê² ì ì©íë¤ë ê²ì´ ì´ë¯¸ ë¶ëª í©ëë¤. -íì§ë§ ì¬ì í ê°ì í´ì¼ í ì ê³¼ ì¶ê°í 기ë¥ë¤ì´ ë§ì´ ë¨ì ììµëë¤. +ë§ì ì¬ì© ì¬ë¡ì ë ì ë§ê¸° ë문ì ì´ì ëìë¤ë³´ë¤ ì íëê³ ììµëë¤. + +ë§ì ê°ë°ìì íì´ ì´ë¯¸ ìì ì íë¡ì í¸ë¥¼ ìí´ **FastAPI**ì ìì¡´íê³ ììµëë¤(ì ì ì íë í¬í¨í´ìì). + +íì§ë§ ì¬ì í, ìì¼ë¡ ëì¬ ê°ì ì¬íê³¼ 기ë¥ë¤ì´ ë§ì´ ììµëë¤. + +**FastAPI**ì 미ëë ë°ìµëë¤. -**FastAPI**ë ë°ì 미ëë¡ ëìê°ê³ ììµëë¤. ê·¸ë¦¬ê³ [ì¬ë¬ë¶ì ëì](help-fastapi.md){.internal-link target=_blank}ì í° íì´ ë©ëë¤.ì 기ë°íë ê²ì´ ì´ìì ì´ë¼ë ì ì´ ëª ííìµëë¤. +íì§ë§ ì´ë ìì ìë, ì´ì ë구ë¤ì ìµê³ ì ìì´ëì´ë¥¼ ê°ì ¸ì ê°ë¥í í ìµì ì ë°©ìì¼ë¡ ì¡°í©íê³ , ì´ì ìë ì¡´ì¬íì§ ììë ì¸ì´ 기ë¥(Python 3.6+ type hints)ì ì¬ì©í´ ì´ ëª¨ë 기ë¥ì ì ê³µíë 무ì¸ê°ë¥¼ ë§ëë ê² ì¸ìë ë¤ë¥¸ ì íì§ê° ìììµëë¤. -ëí, ì´ë¯¸ ì¡´ì¬íë íì¤ì íì©íë ê²ì´ ê°ì¥ ì¢ì ì ê·¼ë²ì´ë¼ íë¨íìµëë¤. +