From 095dcc8a633a5a14059bbf7ed5d63c0d7744e482 Mon Sep 17 00:00:00 2001 From: ChaeYeong Hwang <79563565+NinaHwang@users.noreply.github.com> Date: Thu, 12 Jun 2025 09:32:09 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8C=90=20Add=20Korean=20translation=20for?= =?UTF-8?q?=20`docs/ko/docs/advanced/sub-applications.md`=20(#4543)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * This PR translates advanced/sub-applications.md in Korean. Test complete related: #2017 * Update sub-applications.md * Update sub-applications.md * Update sub-applications.md * remove .DS_Store * 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks * Update docs/ko/docs/advanced/sub-applications.md * Update docs/ko/docs/advanced/sub-applications.md * Update docs/ko/docs/advanced/sub-applications.md --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: SebastiΓ‘n RamΓ­rez Co-authored-by: Motov Yurii <109919500+YuriiMotov@users.noreply.github.com> --- docs/ko/docs/advanced/sub-applications.md | 67 +++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 docs/ko/docs/advanced/sub-applications.md diff --git a/docs/ko/docs/advanced/sub-applications.md b/docs/ko/docs/advanced/sub-applications.md new file mode 100644 index 000000000..c5835de15 --- /dev/null +++ b/docs/ko/docs/advanced/sub-applications.md @@ -0,0 +1,67 @@ +# ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨ - 마운트 + +λ§Œμ•½ 각각의 독립적인 OpenAPI와 λ¬Έμ„œ UIλ₯Ό κ°–λŠ” 두 개의 독립적인 FastAPI μ‘μš©ν”„λ‘œκ·Έλž¨μ΄ ν•„μš”ν•˜λ‹€λ©΄, 메인 μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ— ν•˜λ‚˜ (λ˜λŠ” κ·Έ μ΄μƒμ˜) ν•˜μœ„-μ‘μš©ν”„λ‘œκ·Έλž¨(λ“€)을 β€œλ§ˆμš΄νŠΈ"ν•΄μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. + +## **FastAPI** μ‘μš©ν”„λ‘œκ·Έλž¨ 마운트 + +β€œλ§ˆμš΄νŠΈ"μ΄λž€ μ™„μ „νžˆ β€œλ…λ¦½μ μΈ" μ‘μš©ν”„λ‘œκ·Έλž¨μ„ νŠΉμ • κ²½λ‘œμ— μΆ”κ°€ν•˜μ—¬ ν•΄λ‹Ή ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ—μ„œ μ„ μ–Έλœ *경둜 λ™μž‘*을 톡해 ν•΄λ‹Ή 경둜 μ•„λž˜μ— μžˆλŠ” λͺ¨λ“  μž‘μ—…λ“€μ„ μ²˜λ¦¬ν•  수 μžˆλ„λ‘ ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. + +### μ΅œμƒλ‹¨ μ‘μš©ν”„λ‘œκ·Έλž¨ + +λ¨Όμ €, 메인, μ΅œμƒλ‹¨μ˜ **FastAPI** μ‘μš©ν”„λ‘œκ·Έλž¨κ³Ό μ΄κ²ƒμ˜ *경둜 λ™μž‘*을 μƒμ„±ν•©λ‹ˆλ‹€: + +{* ../../docs_src/sub_applications/tutorial001.py hl[3, 6:8] *} + +### ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨ + +λ‹€μŒμœΌλ‘œ, ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨κ³Ό μ΄κ²ƒμ˜ *경둜 λ™μž‘*을 μƒμ„±ν•©λ‹ˆλ‹€: + +이 ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ€ 또 λ‹€λ₯Έ ν‘œμ€€ FastAPI μ‘μš©ν”„λ‘œκ·Έλž¨μž…λ‹ˆλ‹€. λ‹€λ§Œ 이것은 β€œλ§ˆμš΄νŠΈβ€λ  κ²ƒμž…λ‹ˆλ‹€: + +{* ../../docs_src/sub_applications/tutorial001.py hl[11, 14:16] *} + +### ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨ 마운트 + +μ΅œμƒλ‹¨ μ‘μš©ν”„λ‘œκ·Έλž¨, `app`에 ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨, `subapi`λ₯Ό λ§ˆμš΄νŠΈν•©λ‹ˆλ‹€. + +이 μ˜ˆμ‹œμ—μ„œ, ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ…˜μ€ `/subapi` κ²½λ‘œμ— 마운트 될 κ²ƒμž…λ‹ˆλ‹€: + +{* ../../docs_src/sub_applications/tutorial001.py hl[11, 19] *} + +### μžλ™μœΌλ‘œ μƒμ„±λœ API λ¬Έμ„œ 확인 + +이제, `uvicorn`으둜 메인 μ‘μš©ν”„λ‘œκ·Έλž¨μ„ μ‹€ν–‰ν•˜μ‹­μ‹œμ˜€. λ‹Ήμ‹ μ˜ 파일이 `main.py`라면, μ΄λ ‡κ²Œ μ‹€ν–‰ν•©λ‹ˆλ‹€: + +
+ +```console +$ uvicorn main:app --reload + +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) +``` + +
+ +그리고 http://127.0.0.1:8000/docsμ—μ„œ λ¬Έμ„œλ₯Ό μ—¬μ‹­μ‹œμ˜€. + +메인 μ‘μš©ν”„λ‘œκ·Έλž¨μ˜ *경둜 λ™μž‘*λ§Œμ„ ν¬ν•¨ν•˜λŠ”, 메인 μ‘μš©ν”„λ‘œκ·Έλž¨μ— λŒ€ν•œ μžλ™ API λ¬Έμ„œλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€: + + + +λ‹€μŒμœΌλ‘œ, http://127.0.0.1:8000/subapi/docsμ—μ„œ ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ˜ λ¬Έμ„œλ₯Ό μ—¬μ‹­μ‹œμ˜€. + +ν•˜μœ„ 경둜 접두사 `/subapi` μ•„λž˜μ— μ„ μ–Έλœ *경둜 λ™μž‘* 을 ν¬ν•¨ν•˜λŠ”, ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ— λŒ€ν•œ μžλ™ API λ¬Έμ„œλ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€: + + + +두 μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€ 쀑 μ–΄λŠ ν•˜λ‚˜λ₯Ό μ‚¬μš©ν•΄μ•Όν•˜λŠ” 경우, λΈŒλΌμš°μ €λŠ” νŠΉμ • μ‘μš©ν”„λ‘œκ·Έλž¨ λ˜λŠ” ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨κ³Ό 각각 톡신할 수 있기 λ•Œλ¬Έμ— μ˜¬λ°”λ₯΄κ²Œ λ™μž‘ν•  κ²ƒμž…λ‹ˆλ‹€. + +### 기술적 세뢀사항: `root_path` + +μœ„μ— μ„€λͺ…λœ 것과 같이 ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ„ λ§ˆμš΄νŠΈν•˜λŠ” 경우, FastAPIλŠ” `root_path`라고 ν•˜λŠ” ASGI λͺ…μ„Έμ˜ λ§€μ»€λ‹ˆμ¦˜μ„ μ‚¬μš©ν•˜μ—¬ ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ— λŒ€ν•œ 마운트 경둜 톡신을 μ²˜λ¦¬ν•©λ‹ˆλ‹€. + +이λ₯Ό 톡해, ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ€ λ¬Έμ„œ UIλ₯Ό μœ„ν•΄ 경둜 접두사λ₯Ό μ‚¬μš©ν•΄μ•Ό ν•œλ‹€λŠ” 사싀을 μΈμ§€ν•©λ‹ˆλ‹€. + +ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ—λ„ μ—­μ‹œ λ‹€λ₯Έ ν•˜μœ„ μ‘μš©ν”„λ‘œκ·Έλž¨μ„ λ§ˆμš΄νŠΈν•˜λŠ” 것이 κ°€λŠ₯ν•˜λ©° FastAPIκ°€ λͺ¨λ“  `root_path` 듀을 μžλ™μ μœΌλ‘œ μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— λͺ¨λ“  것은 μ˜¬λ°”λ₯΄κ²Œ λ™μž‘ν•  κ²ƒμž…λ‹ˆλ‹€. + +`root_path`와 이것을 μ‚¬μš©ν•˜λŠ” 방법에 λŒ€ν•΄μ„œλŠ” [ν”„λ‘μ‹œμ˜ 뒷단](./behind-a-proxy.md){.internal-link target=_blank} μ„Ήμ…˜μ—μ„œ 배울 수 μžˆμŠ΅λ‹ˆλ‹€.