# LLM 테스트 파일 { #llm-test-file } 이 문서는 문서를 번역하는 LLM이 `scripts/translate.py`의 `general_prompt`와 `docs/{language code}/llm-prompt.md`의 언어별 프롬프트를 이해하는지 테스트합니다. 언어별 프롬프트는 `general_prompt`에 추가됩니다. 여기에 추가된 테스트는 언어별 프롬프트를 설계하는 모든 사람이 보게 됩니다. 사용 방법은 다음과 같습니다: * 언어별 프롬프트 `docs/{language code}/llm-prompt.md`를 준비합니다. * 이 문서를 원하는 대상 언어로 새로 번역합니다(예: `translate.py`의 `translate-page` 명령). 그러면 `docs/{language code}/docs/_llm-test.md` 아래에 번역이 생성됩니다. * 번역에서 문제가 없는지 확인합니다. * 필요하다면 언어별 프롬프트, 일반 프롬프트, 또는 영어 문서를 개선합니다. * 그런 다음 번역에서 남아 있는 문제를 수동으로 수정해 좋은 번역이 되게 합니다. * 좋은 번역을 둔 상태에서 다시 번역합니다. 이상적인 결과는 LLM이 더 이상 번역에 변경을 만들지 않는 것입니다. 이는 일반 프롬프트와 언어별 프롬프트가 가능한 한 최선이라는 뜻입니다(때때로 몇 가지 seemingly random 변경을 할 수 있는데, 그 이유는 LLM은 결정론적 알고리즘이 아니기 때문입니다). 테스트: ## 코드 스니펫 { #code-snippets } //// tab | 테스트 다음은 코드 스니펫입니다: `foo`. 그리고 이것은 또 다른 코드 스니펫입니다: `bar`. 그리고 또 하나: `baz quux`. //// //// tab | 정보 코드 스니펫의 내용은 그대로 두어야 합니다. `scripts/translate.py`의 일반 프롬프트에서 `### Content of code snippets` 섹션을 참고하세요. //// ## 따옴표 { #quotes } //// tab | 테스트 어제 제 친구가 이렇게 썼습니다: "If you spell incorrectly correctly, you have spelled it incorrectly". 이에 저는 이렇게 답했습니다: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'". /// note | 참고 LLM은 아마 이것을 잘못 번역할 것입니다. 흥미로운 점은 재번역할 때 고정된 번역을 유지하는지 여부뿐입니다. /// //// //// tab | 정보 프롬프트 설계자는 중립 따옴표를 타이포그래피 따옴표로 변환할지 선택할 수 있습니다. 그대로 두어도 괜찮습니다. 예를 들어 `docs/de/llm-prompt.md`의 `### Quotes` 섹션을 참고하세요. //// ## 코드 스니펫의 따옴표 { #quotes-in-code-snippets } //// tab | 테스트 `pip install "foo[bar]"` 코드 스니펫에서 문자열 리터럴의 예: `"this"`, `'that'`. 코드 스니펫에서 문자열 리터럴의 어려운 예: `f"I like {'oranges' if orange else "apples"}"` 하드코어: `Yesterday, my friend wrote: "If you spell incorrectly correctly, you have spelled it incorrectly". To which I answered: "Correct, but 'incorrectly' is incorrectly not '"incorrectly"'"` //// //// tab | 정보 ... 하지만 코드 스니펫 안의 따옴표는 그대로 유지되어야 합니다. //// ## 코드 블록 { #code-blocks } //// tab | 테스트 Bash 코드 예시... ```bash # 우주에 인사말 출력 echo "Hello universe" ``` ...그리고 콘솔 코드 예시... ```console $ fastapi run main.py FastAPI Starting server Searching for package file structure ``` ...그리고 또 다른 콘솔 코드 예시... ```console // "Code" 디렉터리 생성 $ mkdir code // 해당 디렉터리로 이동 $ cd code ``` ...그리고 Python 코드 예시... ```Python wont_work() # 이건 동작하지 않습니다 😱 works(foo="bar") # 이건 동작합니다 🎉 ``` ...이상입니다. //// //// tab | 정보 코드 블록의 코드는(주석을 제외하고) 수정하면 안 됩니다. `scripts/translate.py`의 일반 프롬프트에서 `### Content of code blocks` 섹션을 참고하세요. //// ## 탭과 색상 박스 { #tabs-and-colored-boxes } //// tab | 테스트 /// info | 정보 일부 텍스트 /// /// note | 참고 일부 텍스트 /// /// note | 기술 세부사항 일부 텍스트 /// /// check | 확인 일부 텍스트 /// /// tip | 팁 일부 텍스트 /// /// warning | 경고 일부 텍스트 /// /// danger | 위험 일부 텍스트 /// //// //// tab | 정보 탭과 `Info`/`Note`/`Warning`/등의 블록은 제목 번역을 수직 막대(`|`) 뒤에 추가해야 합니다. `scripts/translate.py`의 일반 프롬프트에서 `### Special blocks`와 `### Tab blocks` 섹션을 참고하세요. //// ## 웹 및 내부 링크 { #web-and-internal-links } //// tab | 테스트 링크 텍스트는 번역되어야 하고, 링크 주소는 변경되지 않아야 합니다: * [위의 제목으로 가는 링크](#code-snippets) * [내부 링크](index.md#installation){.internal-link target=_blank} * 외부 링크 * 스타일로 가는 링크 * 스크립트로 가는 링크 * 이미지로 가는 링크 링크 텍스트는 번역되어야 하고, 링크 주소는 번역 페이지를 가리켜야 합니다: * FastAPI 링크 //// //// tab | 정보 링크는 번역되어야 하지만, 주소는 변경되지 않아야 합니다. 예외는 FastAPI 문서 페이지로 향하는 절대 링크이며, 이 경우 번역 페이지로 연결되어야 합니다. `scripts/translate.py`의 일반 프롬프트에서 `### Links` 섹션을 참고하세요. //// ## HTML "abbr" 요소 { #html-abbr-elements } //// tab | 테스트 여기 HTML "abbr" 요소로 감싼 몇 가지가 있습니다(일부는 임의로 만든 것입니다): ### abbr가 전체 문구를 제공 { #the-abbr-gives-a-full-phrase } * GTD * lt * XWT * PSGI ### abbr가 전체 문구와 설명을 제공 { #the-abbr-gives-a-full-phrase-and-an-explanation } * MDN * I/O. //// //// tab | 정보 "abbr" 요소의 "title" 속성은 몇 가지 구체적인 지침에 따라 번역됩니다. 번역에서는(영어 단어를 설명하기 위해) 자체 "abbr" 요소를 추가할 수 있으며, LLM은 이를 제거하면 안 됩니다. `scripts/translate.py`의 일반 프롬프트에서 `### HTML abbr elements` 섹션을 참고하세요. //// ## HTML "dfn" 요소 { #html-dfn-elements } * 클러스터 * 딥 러닝 ## 제목 { #headings } //// tab | 테스트 ### 웹앱 개발하기 - 튜토리얼 { #develop-a-webapp-a-tutorial } 안녕하세요. ### 타입 힌트와 -애너테이션 { #type-hints-and-annotations } 다시 안녕하세요. ### super- 및 subclasses { #super-and-subclasses } 다시 안녕하세요. //// //// tab | 정보 제목에 대한 유일한 강한 규칙은, LLM이 중괄호 안의 해시 부분을 변경하지 않아 링크가 깨지지 않게 하는 것입니다. `scripts/translate.py`의 일반 프롬프트에서 `### Headings` 섹션을 참고하세요. 언어별 지침은 예를 들어 `docs/de/llm-prompt.md`의 `### Headings` 섹션을 참고하세요. //// ## 문서에서 사용되는 용어 { #terms-used-in-the-docs } //// tab | 테스트 * 여러분 * 여러분의 * 예: (e.g.) * 등 (etc.) * `foo`로서의 `int` * `bar`로서의 `str` * `baz`로서의 `list` * 튜토리얼 - 사용자 가이드 * 고급 사용자 가이드 * SQLModel 문서 * API 문서 * 자동 문서 * Data Science * Deep Learning * Machine Learning * Dependency Injection * HTTP Basic authentication * HTTP Digest * ISO format * JSON Schema 표준 * JSON schema * schema definition * Password Flow * Mobile * deprecated * designed * invalid * on the fly * standard * default * case-sensitive * case-insensitive * 애플리케이션을 서빙하다 * 페이지를 서빙하다 * 앱 * 애플리케이션 * 요청 * 응답 * 오류 응답 * 경로 처리 * 경로 처리 데코레이터 * 경로 처리 함수 * body * 요청 body * 응답 body * JSON body * form body * file body * 함수 body * parameter * body parameter * path parameter * query parameter * cookie parameter * header parameter * form parameter * function parameter * event * startup event * 서버 startup * shutdown event * lifespan event * handler * event handler * exception handler * 처리하다 * model * Pydantic model * data model * database model * form model * model object * class * base class * parent class * subclass * child class * sibling class * class method * header * headers * authorization header * `Authorization` header * forwarded header * dependency injection system * dependency * dependable * dependant * I/O bound * CPU bound * concurrency * parallelism * multiprocessing * env var * environment variable * `PATH` * `PATH` variable * authentication * authentication provider * authorization * authorization form * authorization provider * 사용자가 인증한다 * 시스템이 사용자를 인증한다 * CLI * command line interface * server * client * cloud provider * cloud service * development * development stages * dict * dictionary * enumeration * enum * enum member * encoder * decoder * encode하다 * decode하다 * exception * raise하다 * expression * statement * frontend * backend * GitHub discussion * GitHub issue * performance * performance optimization * return type * return value * security * security scheme * task * background task * task function * template * template engine * type annotation * type hint * server worker * Uvicorn worker * Gunicorn Worker * worker process * worker class * workload * deployment * deploy하다 * SDK * software development kit * `APIRouter` * `requirements.txt` * Bearer Token * breaking change * bug * button * callable * code * commit * context manager * coroutine * database session * disk * domain * engine * fake X * HTTP GET method * item * library * lifespan * lock * middleware * mobile application * module * mounting * network * origin * override * payload * processor * property * proxy * pull request * query * RAM * remote machine * status code * string * tag * web framework * wildcard * return하다 * validate하다 //// //// tab | 정보 이것은 문서에서 보이는 (대부분) 기술 용어의 불완전하고 비규범적인 목록입니다. 프롬프트 설계자가 어떤 용어에 대해 LLM에 추가적인 도움이 필요한지 파악하는 데 유용할 수 있습니다. 예를 들어, 좋은 번역을 계속 덜 좋은 번역으로 되돌릴 때, 또는 언어에서 용어의 활용/변화를 처리하는 데 문제가 있을 때 도움이 됩니다. 예를 들어 `docs/de/llm-prompt.md`의 `### List of English terms and their preferred German translations` 섹션을 참고하세요. ////