Browse Source

Re-translate with `gtpt-5` model

pull/14738/head
Yurii Motov 6 months ago
parent
commit
b1e1d6bb78
  1. 16
      docs/ko/docs/async.md
  2. 2
      docs/ko/docs/fastapi-cli.md
  3. 18
      docs/ko/docs/features.md

16
docs/ko/docs/async.md

@ -74,7 +74,7 @@ def results():
다음으로, 완료된 첫 번째 작업(우리의 "slow-file" 📝 이라고 해보겠습니다)을 가져와서, 그에 대해 해야 했던 작업을 계속합니다. 다음으로, 완료된 첫 번째 작업(우리의 "slow-file" 📝 이라고 해보겠습니다)을 가져와서, 그에 대해 해야 했던 작업을 계속합니다.
이 "다른 무언가를 기다리는 것"은 일반적으로 프로세서와 RAM 메모리 속도에 비해 상대적으로 "느린" <abbr title="Input and Output">I/O</abbr> 작업을 의미합니다. 예를 들어 다음을 기다리는 것입니다: 이 "다른 무언가를 기다리는 것"은 일반적으로 프로세서와 RAM 메모리 속도에 비해 상대적으로 "느린" <abbr title="Input and Output - 입력/출력">I/O</abbr> 작업을 의미합니다. 예를 들어 다음을 기다리는 것입니다:
* 네트워크를 통해 클라이언트가 데이터를 보내는 것 * 네트워크를 통해 클라이언트가 데이터를 보내는 것
* 네트워크를 통해 클라이언트가 여러분의 프로그램이 보낸 데이터를 받는 것 * 네트워크를 통해 클라이언트가 여러분의 프로그램이 보낸 데이터를 받는 것
@ -85,7 +85,7 @@ def results():
* 데이터베이스 쿼리가 결과를 반환하는 것 * 데이터베이스 쿼리가 결과를 반환하는 것
* 기타 등등 * 기타 등등
실행 시간의 대부분이 <abbr title="Input and Output">I/O</abbr> 작업을 기다리는 데 소비되기 때문에, 이를 "I/O bound" 작업이라고 부릅니다. 실행 시간의 대부분이 <abbr title="Input and Output - 입력/출력">I/O</abbr> 작업을 기다리는 데 소비되기 때문에, 이를 "I/O bound" 작업이라고 부릅니다.
이것은 컴퓨터/프로그램이 느린 작업과 "동기화"되어, 아무것도 하지 않은 채 그 작업이 끝나는 정확한 시점만 기다렸다가 결과를 가져와 일을 계속할 필요가 없기 때문에 "비동기"라고 불립니다. 이것은 컴퓨터/프로그램이 느린 작업과 "동기화"되어, 아무것도 하지 않은 채 그 작업이 끝나는 정확한 시점만 기다렸다가 결과를 가져와 일을 계속할 필요가 없기 때문에 "비동기"라고 불립니다.
@ -277,7 +277,7 @@ def results():
이 시나리오에서 (여러분을 포함한) 각 청소부는 프로세서가 되어, 맡은 일을 수행합니다. 이 시나리오에서 (여러분을 포함한) 각 청소부는 프로세서가 되어, 맡은 일을 수행합니다.
그리고 실행 시간의 대부분이 기다림이 아니라 실제 작업에 쓰이고, 컴퓨터에서 작업은 <abbr title="Central Processing Unit">CPU</abbr>가 수행하므로, 이런 문제를 "CPU bound"라고 부릅니다. 그리고 실행 시간의 대부분이 기다림이 아니라 실제 작업에 쓰이고, 컴퓨터에서 작업은 <abbr title="Central Processing Unit - 중앙 처리 장치">CPU</abbr>가 수행하므로, 이런 문제를 "CPU bound"라고 부릅니다.
--- ---
@ -316,16 +316,16 @@ burgers = await get_burgers(2)
```Python hl_lines="1" ```Python hl_lines="1"
async def get_burgers(number: int): async def get_burgers(number: int):
# Do some asynchronous stuff to create the burgers # 버거를 만들기 위한 비동기 처리를 수행
return burgers return burgers
``` ```
...`def` 대신: ...`def` 대신:
```Python hl_lines="2" ```Python hl_lines="2"
# This is not asynchronous # 비동기가 아닙니다
def get_sequential_burgers(number: int): def get_sequential_burgers(number: int):
# Do some sequential stuff to create the burgers # 버거를 만들기 위한 순차 처리를 수행
return burgers return burgers
``` ```
@ -334,7 +334,7 @@ def get_sequential_burgers(number: int):
`async def` 함수를 호출하고자 할 때는, 그 함수를 "await" 해야 합니다. 따라서 아래는 동작하지 않습니다: `async def` 함수를 호출하고자 할 때는, 그 함수를 "await" 해야 합니다. 따라서 아래는 동작하지 않습니다:
```Python ```Python
# This won't work, because get_burgers was defined with: async def # 동작하지 않습니다. get_burgers는 async def로 정의되었습니다
burgers = get_burgers(2) burgers = get_burgers(2)
``` ```
@ -417,7 +417,7 @@ Starlette(그리고 **FastAPI**)는 <a href="https://anyio.readthedocs.io/en/sta
*경로 처리 함수*를 `async def` 대신 일반적인 `def`로 선언하면, (서버를 블로킹할 수 있으므로 직접 호출하는 대신) 외부 스레드풀에서 실행되고 그 결과를 await 합니다. *경로 처리 함수*를 `async def` 대신 일반적인 `def`로 선언하면, (서버를 블로킹할 수 있으므로 직접 호출하는 대신) 외부 스레드풀에서 실행되고 그 결과를 await 합니다.
위에서 설명한 방식으로 동작하지 않는 다른 async 프레임워크를 사용해본 적이 있고, 아주 작은 성능 향상(약 100 나노초)을 위해 계산만 하는 사소한 *경로 처리 함수*를 일반 `def`로 정의하곤 했다면, **FastAPI**에서는 그 효과가 정반대가 될 수 있다는 점에 유의하세요. 이런 경우에는 *경로 처리 함수*에서 블로킹 <abbr title="Input/Output: disk reading or writing, network communications. - 디스크 읽기 또는 쓰기, 네트워크 통신.">I/O</abbr> 를 수행하는 코드를 사용하지 않는 한 `async def`를 사용하는 편이 더 낫습니다. 위에서 설명한 방식으로 동작하지 않는 다른 async 프레임워크를 사용해본 적이 있고, 아주 작은 성능 향상(약 100 나노초)을 위해 계산만 하는 사소한 *경로 처리 함수*를 일반 `def`로 정의하곤 했다면, **FastAPI**에서는 그 효과가 정반대가 될 수 있다는 점에 유의하세요. 이런 경우에는 *경로 처리 함수*에서 블로킹 <abbr title="Input/Output - 입력/출력: 디스크 읽기 또는 쓰기, 네트워크 통신.">I/O</abbr> 를 수행하는 코드를 사용하지 않는 한 `async def`를 사용하는 편이 더 낫습니다.
그럼에도 두 경우 모두, **FastAPI**는 이전에 사용하던 프레임워크보다 [여전히 더 빠를](index.md#performance){.internal-link target=_blank} 가능성이 높습니다(또는 최소한 비슷합니다). 그럼에도 두 경우 모두, **FastAPI**는 이전에 사용하던 프레임워크보다 [여전히 더 빠를](index.md#performance){.internal-link target=_blank} 가능성이 높습니다(또는 최소한 비슷합니다).

2
docs/ko/docs/fastapi-cli.md

@ -70,6 +70,6 @@ FastAPI CLI는 Python 프로그램의 경로(예: `main.py`)를 받아 `FastAPI`
/// tip | 팁 /// tip | 팁
자세한 내용은 [deployment documentation](deployment/index.md){.internal-link target=_blank}에서 확인할 수 있습니다. 자세한 내용은 [배포 문서](deployment/index.md){.internal-link target=_blank}에서 확인할 수 있습니다.
/// ///

18
docs/ko/docs/features.md

@ -6,7 +6,7 @@
### 개방형 표준을 기반으로 { #based-on-open-standards } ### 개방형 표준을 기반으로 { #based-on-open-standards }
* <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank"><strong>OpenAPI</strong></a>: <abbr title="also known as: endpoints, routes - 엔드포인트, 라우트로도 알려져 있습니다">path</abbr> <abbr title="also known as HTTP methods, as POST, GET, PUT, DELETE - POST, GET, PUT, DELETE와 같은 HTTP 메소드로 알려져 있습니다">operations</abbr>, 매개변수, 요청 본문, 보안 등의 선언을 포함하여 API를 생성합니다. * <a href="https://github.com/OAI/OpenAPI-Specification" class="external-link" target="_blank"><strong>OpenAPI</strong></a>: <abbr title="또한 다음으로도 불립니다: 엔드포인트, 라우트">path</abbr> <abbr title="HTTP 메소드(POST, GET, PUT, DELETE 등)로도 알려져 있습니다">operations</abbr>, 매개변수, 요청 본문, 보안 등의 선언을 포함하여 API를 생성합니다.
* <a href="https://json-schema.org/" class="external-link" target="_blank"><strong>JSON Schema</strong></a>를 사용한 자동 데이터 모델 문서화(OpenAPI 자체가 JSON Schema를 기반으로 하기 때문입니다). * <a href="https://json-schema.org/" class="external-link" target="_blank"><strong>JSON Schema</strong></a>를 사용한 자동 데이터 모델 문서화(OpenAPI 자체가 JSON Schema를 기반으로 하기 때문입니다).
* 단순히 떠올려서 덧붙인 레이어가 아니라, 세심한 검토를 거친 뒤 이러한 표준을 중심으로 설계되었습니다. * 단순히 떠올려서 덧붙인 레이어가 아니라, 세심한 검토를 거친 뒤 이러한 표준을 중심으로 설계되었습니다.
* 이는 또한 다양한 언어로 자동 **클라이언트 코드 생성**을 사용할 수 있게 해줍니다. * 이는 또한 다양한 언어로 자동 **클라이언트 코드 생성**을 사용할 수 있게 해줍니다.
@ -36,13 +36,13 @@ from datetime import date
from pydantic import BaseModel from pydantic import BaseModel
# Declare a variable as a str # 변수를 str로 선언합니다
# and get editor support inside the function # 그리고 함수 내부에서 편집기 지원을 받습니다
def main(user_id: str): def main(user_id: str):
return user_id return user_id
# A Pydantic model # Pydantic 모델
class User(BaseModel): class User(BaseModel):
id: int id: int
name: str name: str
@ -136,7 +136,7 @@ Python 개발자 설문조사에서 <a href="https://www.jetbrains.com/research/
### 의존성 주입 { #dependency-injection } ### 의존성 주입 { #dependency-injection }
FastAPI는 사용하기 매우 쉽지만, 매우 강력한 <abbr title='also known as "components", "resources", "services", "providers" - "컴포넌트", "자원", "서비스", "제공자"로도 알려진'><strong>Dependency Injection</strong></abbr> 시스템을 포함하고 있습니다. FastAPI는 사용하기 매우 쉽지만, 매우 강력한 <abbr title='또한 다음으로도 불립니다: "컴포넌트", "자원", "서비스", "제공자"'><strong>Dependency Injection</strong></abbr> 시스템을 포함하고 있습니다.
* 의존성도 의존성을 가질 수 있어, 의존성의 계층 또는 **의존성의 "그래프"**를 생성합니다. * 의존성도 의존성을 가질 수 있어, 의존성의 계층 또는 **의존성의 "그래프"**를 생성합니다.
* 모든 것이 프레임워크에 의해 **자동으로 처리됩니다**. * 모든 것이 프레임워크에 의해 **자동으로 처리됩니다**.
@ -153,8 +153,8 @@ FastAPI는 사용하기 매우 쉽지만, 매우 강력한 <abbr title='also kno
### 테스트됨 { #tested } ### 테스트됨 { #tested }
* 100% <abbr title="The amount of code that is automatically tested - 자동으로 테스트되는 코드의 양">test coverage</abbr>. * 100% <abbr title="자동으로 테스트되는 코드의 양">test coverage</abbr>.
* 100% <abbr title="Python type annotations, with this your editor and external tools can give you better support - Python 타입 어노테이션으로, 이를 통해 편집기와 외부 도구가 더 나은 지원을 제공할 수 있습니다">type annotated</abbr> 코드 베이스. * 100% <abbr title="Python 타입 어노테이션으로, 이를 통해 편집기와 외부 도구가 더 나은 지원을 제공할 수 있습니다">type annotated</abbr> 코드 베이스.
* 프로덕션 애플리케이션에서 사용됩니다. * 프로덕션 애플리케이션에서 사용됩니다.
## Starlette 기능 { #starlette-features } ## Starlette 기능 { #starlette-features }
@ -179,7 +179,7 @@ FastAPI는 사용하기 매우 쉽지만, 매우 강력한 <abbr title='also kno
**FastAPI**는 <a href="https://docs.pydantic.dev/" class="external-link" target="_blank"><strong>Pydantic</strong></a>과 완벽하게 호환되며(또한 이를 기반으로 합니다). 따라서 추가로 가지고 있는 Pydantic 코드도 모두 동작합니다. **FastAPI**는 <a href="https://docs.pydantic.dev/" class="external-link" target="_blank"><strong>Pydantic</strong></a>과 완벽하게 호환되며(또한 이를 기반으로 합니다). 따라서 추가로 가지고 있는 Pydantic 코드도 모두 동작합니다.
데이터베이스를 위한 <abbr title="Object-Relational Mapper">ORM</abbr>, <abbr title="Object-Document Mapper">ODM</abbr>과 같은, Pydantic을 기반으로 하는 외부 라이브러리도 포함합니다. 데이터베이스를 위한 <abbr title="Object-Relational Mapper - 객체-관계 매퍼">ORM</abbr>, <abbr title="Object-Document Mapper - 객체-문서 매퍼">ODM</abbr>과 같은, Pydantic을 기반으로 하는 외부 라이브러리도 포함합니다.
이는 모든 것이 자동으로 검증되기 때문에, 많은 경우 요청에서 얻은 동일한 객체를 **직접 데이터베이스로** 넘겨줄 수 있다는 의미이기도 합니다. 이는 모든 것이 자동으로 검증되기 때문에, 많은 경우 요청에서 얻은 동일한 객체를 **직접 데이터베이스로** 넘겨줄 수 있다는 의미이기도 합니다.
@ -190,7 +190,7 @@ FastAPI는 사용하기 매우 쉽지만, 매우 강력한 <abbr title='also kno
* **No brainfuck**: * **No brainfuck**:
* 새로운 스키마 정의 마이크로 언어를 배울 필요가 없습니다. * 새로운 스키마 정의 마이크로 언어를 배울 필요가 없습니다.
* Python 타입을 알고 있다면 Pydantic 사용법도 알고 있는 것입니다. * Python 타입을 알고 있다면 Pydantic 사용법도 알고 있는 것입니다.
* 여러분의 **<abbr title="Integrated Development Environment - 통합 개발 환경: 코드 편집기와 비슷합니다">IDE</abbr>/<abbr title="A program that checks for code errors - 코드 오류를 확인하는 프로그램">linter</abbr>/뇌**와 잘 어울립니다: * 여러분의 **<abbr title="Integrated Development Environment - 통합 개발 환경: 코드 편집기와 비슷합니다">IDE</abbr>/<abbr title="코드 오류를 확인하는 프로그램">linter</abbr>/뇌**와 잘 어울립니다:
* pydantic 데이터 구조는 여러분이 정의한 클래스 인스턴스일 뿐이므로, 자동 완성, 린팅, mypy, 그리고 직관까지도 검증된 데이터와 함께 제대로 작동합니다. * pydantic 데이터 구조는 여러분이 정의한 클래스 인스턴스일 뿐이므로, 자동 완성, 린팅, mypy, 그리고 직관까지도 검증된 데이터와 함께 제대로 작동합니다.
* **복잡한 구조**를 검증합니다: * **복잡한 구조**를 검증합니다:
* 계층적인 Pydantic 모델, Python `typing``List``Dict` 등을 사용합니다. * 계층적인 Pydantic 모델, Python `typing``List``Dict` 등을 사용합니다.

Loading…
Cancel
Save