Browse Source

๐ŸŒ Update translations for ko (update-outdated) (#15525)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Yurii Motov <[email protected]>
pull/15556/head
Sebastiรกn Ramรญrez 2 weeks ago
committed by GitHub
parent
commit
5cfd983e1d
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 1
      docs/ko/docs/advanced/generate-clients.md
  2. 91
      docs/ko/docs/index.md
  3. 42
      docs/ko/docs/virtual-environments.md

1
docs/ko/docs/advanced/generate-clients.md

@ -30,7 +30,6 @@ FastAPI๋Š” **OpenAPI 3.1** ์‚ฌ์–‘์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋ฏ€๋กœ, ์‚ฌ์šฉํ•˜๋Š”
์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
* [Speakeasy](https://speakeasy.com/editor?utm_source=fastapi+repo&utm_medium=github+sponsorship)
* [Stainless](https://www.stainless.com/?utm_source=fastapi&utm_medium=referral)
* [liblab](https://developers.liblab.com/tutorials/sdk-for-fastapi?utm_source=fastapi)

91
docs/ko/docs/index.md

@ -54,18 +54,27 @@ FastAPI๋Š” ํ˜„๋Œ€์ ์ด๊ณ , ๋น ๋ฅด๋ฉฐ(๊ณ ์„ฑ๋Šฅ), ํŒŒ์ด์ฌ ํ‘œ์ค€ ํƒ€์ž… ํžŒํŠธ
### ํ‚ค์Šคํ†ค ์Šคํฐ์„œ { #keystone-sponsor }
<div class="fastapi-sponsors fastapi-sponsors--keystone">
{% for sponsor in sponsors.keystone -%}
<a href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img src="{{ sponsor.img }}" style="border-radius:15px"></a>
<a class="fastapi-sponsors__card fastapi-sponsors__card--keystone" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}"></a>
{% endfor -%}
</div>
### ๊ณจ๋“œ ๋ฐ ์‹ค๋ฒ„ ์Šคํฐ์„œ { #gold-and-silver-sponsors }
### ๊ณจ๋“œ ์Šคํฐ์„œ { #gold-sponsors }
<div class="fastapi-sponsors fastapi-sponsors--gold">
{% for sponsor in sponsors.gold -%}
<a href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img src="{{ sponsor.img }}" style="border-radius:15px"></a>
<a class="fastapi-sponsors__card fastapi-sponsors__card--gold" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}" loading="lazy"></a>
{% endfor -%}
{%- for sponsor in sponsors.silver -%}
<a href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img src="{{ sponsor.img }}" style="border-radius:15px"></a>
</div>
### ์‹ค๋ฒ„ ์Šคํฐ์„œ { #silver-sponsors }
<div class="fastapi-sponsors fastapi-sponsors--silver">
{% for sponsor in sponsors.silver -%}
<a class="fastapi-sponsors__card fastapi-sponsors__card--silver" href="{{ sponsor.url }}" title="{{ sponsor.title }}"><img class="fastapi-sponsors__banner" src="{{ sponsor.img }}" alt="{{ sponsor.title }}" loading="lazy"></a>
{% endfor %}
</div>
<!-- /sponsors -->
@ -73,55 +82,81 @@ FastAPI๋Š” ํ˜„๋Œ€์ ์ด๊ณ , ๋น ๋ฅด๋ฉฐ(๊ณ ์„ฑ๋Šฅ), ํŒŒ์ด์ฌ ํ‘œ์ค€ ํƒ€์ž… ํžŒํŠธ
## ์˜๊ฒฌ๋“ค { #opinions }
"_[...] ์ €๋Š” ์š”์ฆ˜ **FastAPI**๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. [...] ์‚ฌ์‹ค ์šฐ๋ฆฌ ํŒ€์˜ **๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ML ์„œ๋น„์Šค** ์ „๋ถ€๋ฅผ ๋ฐ”๊ฟ€ ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๊ทธ์ค‘ ์ผ๋ถ€๋Š” ํ•ต์‹ฌ **Windows**์™€ ๋ช‡๋ช‡์˜ **Office** ์ œํ’ˆ๋“ค์ด ํ†ตํ•ฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค._"
<!-- only-mkdocs -->
<div class="fastapi-opinions" data-fastapi-opinions>
<div class="fastapi-opinions__tabs" role="tablist" aria-label="Companies using FastAPI">
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-microsoft" aria-controls="fo-panel-microsoft" aria-selected="true" tabindex="0">
<span class="fastapi-opinions__mark"><img src="/img/logos/microsoft.svg" alt="Microsoft" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-uber" aria-controls="fo-panel-uber" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/uber.svg" alt="Uber" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-netflix" aria-controls="fo-panel-netflix" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/netflix.svg" alt="Netflix" loading="lazy"></span>
</button>
<button class="fastapi-opinions__tab" role="tab" type="button" id="fo-tab-cisco" aria-controls="fo-panel-cisco" aria-selected="false" tabindex="-1">
<span class="fastapi-opinions__mark"><img src="/img/logos/cisco.svg" alt="Cisco" loading="lazy"></span>
</button>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-microsoft" role="tabpanel" aria-labelledby="fo-tab-microsoft" tabindex="0">
<blockquote class="fastapi-opinions__quote">"์ €๋Š” ์š”์ฆ˜ <strong>FastAPI</strong>๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ํŒ€์˜ ๋ชจ๋“  <strong>๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ML ์„œ๋น„์Šค</strong>์— ์‚ฌ์šฉํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๊ทธ์ค‘ ์ผ๋ถ€๋Š” ํ•ต์‹ฌ <strong>Windows</strong> ์ œํ’ˆ๊ณผ ์ผ๋ถ€ <strong>Office</strong> ์ œํ’ˆ์— ํ†ตํ•ฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค."</blockquote>
<div class="fastapi-opinions__attr">โ€” Kabir Khan, <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26">(ref)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-uber" role="tabpanel" aria-labelledby="fo-tab-uber" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">"์šฐ๋ฆฌ๋Š” <strong>FastAPI</strong> ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฑ„ํƒํ•ด <strong>์˜ˆ์ธก</strong>์„ ์–ป๊ธฐ ์œ„ํ•ด ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” <strong>REST</strong> ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค." <em>[Ludwig์„ ์œ„ํ•ด]</em></blockquote>
<div class="fastapi-opinions__attr">โ€” Piero Molino, Yaroslav Dudin, Sai Sumanth Miryala, <strong>Uber</strong> <a href="https://eng.uber.com/ludwig-v0-2/">(ref)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-netflix" role="tabpanel" aria-labelledby="fo-tab-netflix" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">"<strong>Netflix</strong>๋Š” ์šฐ๋ฆฌ์˜ <strong>์œ„๊ธฐ ๊ด€๋ฆฌ</strong> ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์ธ <strong>Dispatch</strong>์˜ ์˜คํ”ˆ ์†Œ์Šค ๊ณต๊ฐœ๋ฅผ ๋ฐœํ‘œํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค!" <em>[FastAPI๋กœ ๋นŒ๋“œ]</em></blockquote>
<div class="fastapi-opinions__attr">โ€” Kevin Glisson, Marc Vilanova, Forest Monsen, <strong>Netflix</strong> <a href="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072">(ref)</a></div>
</div>
<div class="fastapi-opinions__panel" id="fo-panel-cisco" role="tabpanel" aria-labelledby="fo-tab-cisco" tabindex="0" hidden>
<blockquote class="fastapi-opinions__quote">"ํ”„๋กœ๋•์…˜ Python API๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค๋ฉด, ์ €๋Š” <strong>FastAPI</strong>๋ฅผ ๊ฐ•๋ ฅํžˆ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. <strong>์•„๋ฆ„๋‹ต๊ฒŒ ์„ค๊ณ„</strong>๋˜์—ˆ๊ณ , <strong>์‚ฌ์šฉ์ด ๊ฐ„๋‹จ</strong>ํ•˜๋ฉฐ, <strong>ํ™•์žฅ์„ฑ์ด ๋งค์šฐ ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค</strong> โ€” ์šฐ๋ฆฌ์˜ API ์šฐ์„  ๊ฐœ๋ฐœ ์ „๋žต์—์„œ <strong>ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ</strong>๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค."</blockquote>
<div class="fastapi-opinions__attr">โ€” Deon Pillsbury, <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/">(ref)</a></div>
</div>
</div>
<!-- /only-mkdocs -->
<div style="text-align: right; margin-right: 10%;">Kabir Khan - <strong>๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ</strong> <a href="https://github.com/fastapi/fastapi/pull/26"><small>(ref)</small></a></div>
<div class="only-github" markdown="1">
---
"_**FastAPI** ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฑ„ํƒํ•˜์—ฌ **์˜ˆ์ธก**์„ ์–ป๊ธฐ ์œ„ํ•ด ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” **REST** ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. [Ludwig์„ ์œ„ํ•ด]_"
"_[...] ์ €๋Š” ์š”์ฆ˜ **FastAPI**๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. [...] ์‚ฌ์‹ค ์šฐ๋ฆฌ ํŒ€์˜ **๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ML ์„œ๋น„์Šค** ์ „๋ถ€๋ฅผ ๋ฐ”๊ฟ€ ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๊ทธ์ค‘ ์ผ๋ถ€๋Š” ํ•ต์‹ฌ **Windows**์™€ ๋ช‡๋ช‡์˜ **Office** ์ œํ’ˆ๋“ค์ด ํ†ตํ•ฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค._"
<div style="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin ๊ทธ๋ฆฌ๊ณ  Sai Sumanth Miryala - <strong>์šฐ๋ฒ„</strong> <a href="https://eng.uber.com/ludwig-v0-2/"><small>(ref)</small></a></div>
<div style="text-align: right; margin-right: 10%;">Kabir Khan - <strong>Microsoft</strong> <a href="https://github.com/fastapi/fastapi/pull/26"><small>(ref)</small></a></div>
---
"_**Netflix**๋Š” ์šฐ๋ฆฌ์˜ ์˜คํ”ˆ ์†Œ์Šค ๋ฐฐํฌํŒ์ธ **์œ„๊ธฐ ๊ด€๋ฆฌ** ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฐœํ‘œํ•  ์ˆ˜ ์žˆ์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค: ๋ฐ”๋กœ **Dispatch**์ž…๋‹ˆ๋‹ค! [**FastAPI**๋กœ ๋นŒ๋“œ]_"
"_**FastAPI** ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฑ„ํƒํ•˜์—ฌ **์˜ˆ์ธก**์„ ์–ป๊ธฐ ์œ„ํ•ด ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” **REST** ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. [Ludwig์„ ์œ„ํ•ด]_"
<div style="text-align: right; margin-right: 10%;">Kevin Glisson, Marc Vilanova, Forest Monsen - <strong>๋„ทํ”Œ๋ฆญ์Šค</strong> <a href="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072"><small>(ref)</small></a></div>
<div style="text-align: right; margin-right: 10%;">Piero Molino, Yaroslav Dudin, and Sai Sumanth Miryala - <strong>Uber</strong> <a href="https://eng.uber.com/ludwig-v0-2/"><small>(ref)</small></a></div>
---
"_**FastAPI**๊ฐ€ ๋„ˆ๋ฌด ์ข‹์•„์„œ ๊ตฌ๋ฆ„ ์œ„๋ฅผ ๊ฑท๋Š”๋“ฏ ํ•ฉ๋‹ˆ๋‹ค. ์ •๋ง ์ฆ๊ฒ์Šต๋‹ˆ๋‹ค!_"
"_**Netflix**๋Š” ์šฐ๋ฆฌ์˜ ์˜คํ”ˆ ์†Œ์Šค ๋ฐฐํฌํŒ์ธ **์œ„๊ธฐ ๊ด€๋ฆฌ** ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฐœํ‘œํ•  ์ˆ˜ ์žˆ์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค: ๋ฐ”๋กœ **Dispatch**์ž…๋‹ˆ๋‹ค! [**FastAPI**๋กœ ๋นŒ๋“œ]_"
<div style="text-align: right; margin-right: 10%;">Brian Okken - <strong>[Python Bytes](https://pythonbytes.fm/episodes/show/123/time-to-right-the-py-wrongs?time_in_sec=855) podcast host</strong> <a href="https://x.com/brianokken/status/1112220079972728832"><small>(ref)</small></a></div>
<div style="text-align: right; margin-right: 10%;">Kevin Glisson, Marc Vilanova, Forest Monsen - <strong>Netflix</strong> <a href="https://netflixtechblog.com/introducing-dispatch-da4b8a2a8072"><small>(ref)</small></a></div>
---
"_์†”์งํžˆ, ๋‹น์‹ ์ด ๋งŒ๋“  ๊ฒƒ์€ ๋งค์šฐ ๊ฒฌ๊ณ ํ•˜๊ณ  ์„ธ๋ จ๋˜์–ด ๋ณด์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฉด์—์„œ **Hug**๊ฐ€ ์ด๋ ‡๊ฒŒ ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค - ๊ทธ๊ฑธ ๋งŒ๋“  ๋ˆ„๊ตฐ๊ฐ€๋ฅผ ๋ณด๋Š” ๊ฒƒ์€ ๋งŽ์€ ์˜๊ฐ์„ ์ค๋‹ˆ๋‹ค._"
"_ํ”„๋กœ๋•์…˜ Python API๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค๋ฉด, ์ €๋Š” **FastAPI**๋ฅผ ๊ฐ•๋ ฅํžˆ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. **์•„๋ฆ„๋‹ต๊ฒŒ ์„ค๊ณ„**๋˜์—ˆ๊ณ , **์‚ฌ์šฉ์ด ๊ฐ„๋‹จ**ํ•˜๋ฉฐ, **ํ™•์žฅ์„ฑ์ด ๋งค์šฐ ๋›ฐ์–ด๋‚˜** ์šฐ๋ฆฌ์˜ API ์šฐ์„  ๊ฐœ๋ฐœ ์ „๋žต์—์„œ **ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ**๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค._"
<div style="text-align: right; margin-right: 10%;">Timothy Crosley - <strong>[Hug](https://github.com/hugapi/hug) ์ œ์ž‘์ž</strong> <a href="https://news.ycombinator.com/item?id=19455465"><small>(ref)</small></a></div>
<div style="text-align: right; margin-right: 10%;">Deon Pillsbury - <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/"><small>(ref)</small></a></div>
---
"_REST API๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด **ํ˜„๋Œ€์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ**๋ฅผ ์ฐพ๊ณ  ์žˆ๋‹ค๋ฉด **FastAPI**๋ฅผ ํ™•์ธํ•ด ๋ณด์‹ญ์‹œ์˜ค. [...] ๋น ๋ฅด๊ณ , ์“ฐ๊ธฐ ์‰ฝ๊ณ , ๋ฐฐ์šฐ๊ธฐ๋„ ์‰ฝ์Šต๋‹ˆ๋‹ค [...]_"
"_์šฐ๋ฆฌ **API**๋ฅผ **FastAPI**๋กœ ๋ฐ”๊ฟจ์Šต๋‹ˆ๋‹ค [...] ์•„๋งˆ ์—ฌ๋Ÿฌ๋ถ„๋„ ์ข‹์•„ํ•˜์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค [...]_"
<div style="text-align: right; margin-right: 10%;">Ines Montani - Matthew Honnibal - <strong>[Explosion AI](https://explosion.ai) ์„ค๋ฆฝ์ž - [spaCy](https://spacy.io) ์ œ์ž‘์ž</strong> <a href="https://x.com/_inesmontani/status/1144173225322143744"><small>(ref)</small></a> - <a href="https://x.com/honnibal/status/1144031421859655680"><small>(ref)</small></a></div>
</div>
---
## FastAPI Conf { #fastapi-conf }
"_ํ”„๋กœ๋•์…˜ Python API๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค๋ฉด, ์ €๋Š” **FastAPI**๋ฅผ ๊ฐ•๋ ฅํžˆ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. **์•„๋ฆ„๋‹ต๊ฒŒ ์„ค๊ณ„**๋˜์—ˆ๊ณ , **์‚ฌ์šฉ์ด ๊ฐ„๋‹จ**ํ•˜๋ฉฐ, **ํ™•์žฅ์„ฑ์ด ๋งค์šฐ ๋›ฐ์–ด๋‚˜**๊ณ , ์šฐ๋ฆฌ์˜ API ์šฐ์„  ๊ฐœ๋ฐœ ์ „๋žต์—์„œ **ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ**๊ฐ€ ๋˜์—ˆ์œผ๋ฉฐ Virtual TAC Engineer ๊ฐ™์€ ๋งŽ์€ ์ž๋™ํ™”์™€ ์„œ๋น„์Šค๋ฅผ ์ด๋Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค._"
[**FastAPI Conf '26**](https://fastapiconf.com)์€ **2026๋…„ 10์›” 28์ผ**, **๋„ค๋œ๋ž€๋“œ ์•”์Šคํ…Œ๋ฅด๋‹ด**์—์„œ ์—ด๋ฆฝ๋‹ˆ๋‹ค. FastAPI์— ๊ด€ํ•œ ๋ชจ๋“  ๊ฒƒ, ๋ฐ”๋กœ ์ถœ์ฒ˜์—์„œ. ๐ŸŽค
<div style="text-align: right; margin-right: 10%;">Deon Pillsbury - <strong>Cisco</strong> <a href="https://www.linkedin.com/posts/deonpillsbury_cisco-cx-python-activity-6963242628536487936-trAp/"><small>(ref)</small></a></div>
---
<a class="fastapi-feature-banner" href="https://fastapiconf.com"><img src="https://fastapi.tiangolo.com/img/fastapi-conf.jpeg" alt="FastAPI Conf '26 - October 28, 2026 - Amsterdam, NL"></a>
## FastAPI ๋ฏธ๋‹ˆ ๋‹คํ๋ฉ˜ํ„ฐ๋ฆฌ { #fastapi-mini-documentary }
2025๋…„ ๋ง์— ๊ณต๊ฐœ๋œ [FastAPI ๋ฏธ๋‹ˆ ๋‹คํ๋ฉ˜ํ„ฐ๋ฆฌ](https://www.youtube.com/watch?v=mpR8ngthqiE)๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜จ๋ผ์ธ์—์„œ ์‹œ์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:
<a href="https://www.youtube.com/watch?v=mpR8ngthqiE"><img src="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg" alt="FastAPI Mini Documentary"></a>
<a class="fastapi-feature-banner" href="https://www.youtube.com/watch?v=mpR8ngthqiE"><img src="https://fastapi.tiangolo.com/img/fastapi-documentary.jpg" alt="FastAPI Mini Documentary"></a>
## **Typer**, CLI๋ฅผ ์œ„ํ•œ FastAPI { #typer-the-fastapi-of-clis }

42
docs/ko/docs/virtual-environments.md

@ -2,13 +2,13 @@
Python ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์—…ํ•  ๋•Œ๋Š” **๊ฐ€์ƒ ํ™˜๊ฒฝ**(๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜)์„ ์‚ฌ์šฉํ•ด ๊ฐ ํ”„๋กœ์ ํŠธ๋งˆ๋‹ค ์„ค์น˜ํ•˜๋Š” ํŒจํ‚ค์ง€๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
/// info
/// note | ์ฐธ๊ณ 
์ด๋ฏธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์žˆ๊ณ , ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ•˜๊ณ  ์‚ฌ์šฉํ•˜๋Š”์ง€๋„ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด, ์ด ์„น์…˜์€ ๊ฑด๋„ˆ๋›ฐ์–ด๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๐Ÿค“
///
/// tip
/// tip | ํŒ
**๊ฐ€์ƒ ํ™˜๊ฒฝ**์€ **ํ™˜๊ฒฝ ๋ณ€์ˆ˜**์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
@ -18,7 +18,7 @@ Python ํ”„๋กœ์ ํŠธ๋ฅผ ์ž‘์—…ํ•  ๋•Œ๋Š” **๊ฐ€์ƒ ํ™˜๊ฒฝ**(๋˜๋Š” ์ด์™€ ์œ ์‚ฌ
///
/// info
/// note | ์ฐธ๊ณ 
์ด ํŽ˜์ด์ง€์—์„œ๋Š” **๊ฐ€์ƒ ํ™˜๊ฒฝ**์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ž‘๋™ ๋ฐฉ์‹์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.
@ -55,7 +55,7 @@ $ cd awesome-project
Python ํ”„๋กœ์ ํŠธ๋ฅผ **์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ**, ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ **<dfn title="๋‹ค๋ฅธ ์˜ต์…˜๋„ ์žˆ์ง€๋งŒ, ์ด๊ฒƒ์€ ๊ฐ„๋‹จํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์ž…๋‹ˆ๋‹ค">ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€</dfn>**์— ์ƒ์„ฑํ•˜์„ธ์š”.
/// tip
/// tip | ํŒ
์ด ์ž‘์—…์€ **ํ”„๋กœ์ ํŠธ๋‹น ํ•œ ๋ฒˆ๋งŒ** ํ•˜๋ฉด ๋˜๋ฉฐ, ์ž‘์—…ํ•  ๋•Œ๋งˆ๋‹ค ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.
@ -96,7 +96,7 @@ $ uv venv
</div>
/// tip
/// tip | ํŒ
๊ธฐ๋ณธ์ ์œผ๋กœ `uv`๋Š” `.venv`๋ผ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
@ -118,7 +118,7 @@ $ uv venv
์ดํ›„ ์‹คํ–‰ํ•˜๋Š” Python ๋ช…๋ น์–ด์™€ ์„ค์น˜ํ•˜๋Š” ํŒจํ‚ค์ง€๊ฐ€ ์ƒˆ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๋„๋ก, ์ƒˆ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”ํ•˜์„ธ์š”.
/// tip
/// tip | ํŒ
ํ”„๋กœ์ ํŠธ ์ž‘์—…์„ ์œ„ํ•ด **์ƒˆ ํ„ฐ๋ฏธ๋„ ์„ธ์…˜**์„ ์‹œ์ž‘ํ•  ๋•Œ๋งˆ๋‹ค **๋งค๋ฒˆ** ์ด ์ž‘์—…์„ ํ•˜์„ธ์š”.
@ -162,7 +162,7 @@ $ source .venv/Scripts/activate
////
/// tip
/// tip | ํŒ
ํ•ด๋‹น ํ™˜๊ฒฝ์— **์ƒˆ ํŒจํ‚ค์ง€**๋ฅผ ์„ค์น˜ํ•  ๋•Œ๋งˆ๋‹ค, ํ™˜๊ฒฝ์„ ๋‹ค์‹œ **ํ™œ์„ฑํ™”**ํ•˜์„ธ์š”.
@ -174,7 +174,7 @@ $ source .venv/Scripts/activate
๊ฐ€์ƒ ํ™˜๊ฒฝ์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€(์ด์ „ ๋ช…๋ น์–ด๊ฐ€ ์ž‘๋™ํ–ˆ๋Š”์ง€) ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
/// tip
/// tip | ํŒ
์ด ๋‹จ๊ณ„๋Š” **์„ ํƒ ์‚ฌํ•ญ**์ด์ง€๋งŒ, ๋ชจ๋“  ๊ฒƒ์ด ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•˜๊ณ  ์žˆ๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์˜๋„ํ•œ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ **ํ™•์ธ**ํ•˜๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
@ -214,7 +214,7 @@ C:\Users\user\code\awesome-project\.venv\Scripts\python
## `pip` ์—…๊ทธ๋ ˆ์ด๋“œ { #upgrade-pip }
/// tip
/// tip | ํŒ
[`uv`](https://github.com/astral-sh/uv)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, `pip` ๋Œ€์‹  `uv`๋กœ ์„ค์น˜ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ `pip`์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๐Ÿ˜Ž
@ -224,7 +224,7 @@ C:\Users\user\code\awesome-project\.venv\Scripts\python
ํŒจํ‚ค์ง€ ์„ค์น˜ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ๋‹ค์–‘ํ•œ ํŠน์ดํ•œ ์˜ค๋ฅ˜๋Š” ๋จผ์ € `pip`๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
/// tip
/// tip | ํŒ
๋ณดํ†ต ์ด ์ž‘์—…์€ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๋งŒ๋“  ์งํ›„ **ํ•œ ๋ฒˆ๋งŒ** ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
@ -242,7 +242,7 @@ $ python -m pip install --upgrade pip
</div>
/// tip
/// tip | ํŒ
๋•Œ๋กœ๋Š” pip๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•  ๋•Œ **`No module named pip`** ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
@ -266,13 +266,13 @@ $ python -m ensurepip --upgrade
**Git**์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด(์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค), `.venv`์˜ ๋ชจ๋“  ๋‚ด์šฉ์„ Git์—์„œ ์ œ์™ธํ•˜๋„๋ก `.gitignore` ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”.
/// tip
/// tip | ํŒ
[`uv`](https://github.com/astral-sh/uv)๋กœ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์—ˆ๋‹ค๋ฉด, ์ด๋ฏธ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ด ๋‹จ๊ณ„๋Š” ๊ฑด๋„ˆ๋›ฐ์–ด๋„ ๋ฉ๋‹ˆ๋‹ค. ๐Ÿ˜Ž
///
/// tip
/// tip | ํŒ
๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๋งŒ๋“  ์งํ›„ **ํ•œ ๋ฒˆ๋งŒ** ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
@ -306,7 +306,7 @@ $ echo "*" > .venv/.gitignore
ํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”ํ•œ ๋’ค, ๊ทธ ์•ˆ์— ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
/// tip
/// tip | ํŒ
ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ๋Š” **ํ•œ ๋ฒˆ**๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
@ -318,7 +318,7 @@ $ echo "*" > .venv/.gitignore
๊ธ‰ํ•˜๊ฒŒ ์ž‘์—… ์ค‘์ด๊ณ  ํ”„๋กœ์ ํŠธ์˜ ํŒจํ‚ค์ง€ ์š”๊ตฌ์‚ฌํ•ญ์„ ์„ ์–ธํ•˜๋Š” ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š๋‹ค๋ฉด, ํŒจํ‚ค์ง€๋ฅผ ์ง์ ‘ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
/// tip
/// tip | ํŒ
ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•œ ํŒจํ‚ค์ง€์™€ ๋ฒ„์ „์„ ํŒŒ์ผ(์˜ˆ: `requirements.txt` ๋˜๋Š” `pyproject.toml`)์— ์ ์–ด๋‘๋Š” ๊ฒƒ์€ (๋งค์šฐ) ์ข‹์€ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.
@ -419,7 +419,7 @@ Hello World
* [VS Code](https://code.visualstudio.com/docs/python/environments#_select-and-activate-an-environment)
* [PyCharm](https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html)
/// tip
/// tip | ํŒ
๋ณดํ†ต ์ด ์„ค์ •์€ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๋งŒ๋“ค ๋•Œ **ํ•œ ๋ฒˆ๋งŒ** ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
@ -445,7 +445,7 @@ $ deactivate
/// tip
/// tip | ํŒ
์œ„์˜ ๋‚ด์šฉ์ด ๋ฌด์—‡์ธ์ง€ ๋” ์ดํ•ดํ•˜๊ณ  ์‹ถ์œผ์‹ ๊ฐ€์š”?
@ -536,7 +536,7 @@ flowchart LR
end
```
/// tip
/// tip | ํŒ
Python ํŒจํ‚ค์ง€์—์„œ๋Š” **์ƒˆ ๋ฒ„์ „**์—์„œ **ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆฌ๋Š” ๋ณ€๊ฒฝ(breaking changes)**์„ **ํ”ผํ•˜๋ ค๊ณ ** ์ตœ์„ ์„ ๋‹คํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ผ๋ฐ˜์ ์ด์ง€๋งŒ, ์•ˆ์ „์„ ์œ„ํ•ด ๋” ์ตœ์‹  ๋ฒ„์ „์€ ์˜๋„์ ์œผ๋กœ ์„ค์น˜ํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ด ๋ชจ๋“  ๊ฒƒ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
@ -643,7 +643,7 @@ $ source .venv/Scripts/activate
๊ทธ ๋ณ€์ˆ˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ `PATH` ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
/// tip
/// tip | ํŒ
`PATH` ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ๋” ์•Œ์•„๋ณด๋ ค๋ฉด [ํ™˜๊ฒฝ ๋ณ€์ˆ˜](environment-variables.md#path-environment-variable) ์„น์…˜์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.
@ -776,7 +776,7 @@ Linux์™€ macOS์—์„œ๋Š” `which`, Windows PowerShell์—์„œ๋Š” `Get-Command`๋ฅผ
๋”ฐ๋ผ์„œ ์˜ฌ๋ฐ”๋ฅธ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
/// tip
/// tip | ํŒ
๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ•˜๋‚˜ ํ™œ์„ฑํ™”ํ•ด์„œ Python์„ ์‚ฌ์šฉํ•œ ๋‹ค์Œ, **๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋กœ ์ด๋™**ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.
@ -819,7 +819,7 @@ Traceback (most recent call last):
</div>
ํ•˜์ง€๋งŒ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  `prisoner-of-askaban`์— ๋Œ€ํ•œ ์ƒˆ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด, `python`์„ ์‹คํ–‰ํ•  ๋•Œ `prisoner-of-azkaban`์˜ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์žˆ๋Š” Python์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ณ  `prisoner-of-azkaban`์— ๋Œ€ํ•œ ์ƒˆ ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด, `python`์„ ์‹คํ–‰ํ•  ๋•Œ `prisoner-of-azkaban`์˜ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์žˆ๋Š” Python์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
<div class="termy">

Loadingโ€ฆ
Cancel
Save