저수준 API 색인
***************

이 페이지는 모든 저수준 asyncio API를 나열합니다.


이벤트 루프 얻기
================

+----------------------------------------------------+----------------------------------------------------+
| "asyncio.get_running_loop()"                       | 실행 중인 이벤트 루프를 가져오는 데 **선호되는**   |
|                                                    | 함수.                                              |
+----------------------------------------------------+----------------------------------------------------+
| "asyncio.get_event_loop()"                         | 이벤트 루프 인스턴스를 가져옵니다 (실행 중이거나   |
|                                                    | 현재 정책을 통해 현재 ).                           |
+----------------------------------------------------+----------------------------------------------------+
| "asyncio.set_event_loop()"                         | 현재 정책을 통해 현재 이벤트 루프를 설정합니다.    |
+----------------------------------------------------+----------------------------------------------------+
| "asyncio.new_event_loop()"                         | 새 이벤트 루프를 만듭니다.                         |
+----------------------------------------------------+----------------------------------------------------+

-[ 예제 ]-

* asyncio.get_running_loop() 사용하기.


이벤트 루프 메서드
==================

이벤트 루프 메서드에 관한 주 설명서 절도 참조하십시오.

-[ 수명주기 ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.run_until_complete()"                        | 완료할 때까지 퓨처/태스크/어웨이터블을 실행합니다. |
+----------------------------------------------------+----------------------------------------------------+
| "loop.run_forever()"                               | 이벤트 루프를 영원히 실행합니다.                   |
+----------------------------------------------------+----------------------------------------------------+
| "loop.stop()"                                      | 이벤트 루프를 중지합니다.                          |
+----------------------------------------------------+----------------------------------------------------+
| "loop.close()"                                     | 이벤트 루프를 닫습니다.                            |
+----------------------------------------------------+----------------------------------------------------+
| "loop.is_running()"                                | 이벤트 루프가 실행 중이면 "True"를 반환합니다.     |
+----------------------------------------------------+----------------------------------------------------+
| "loop.is_closed()"                                 | 이벤트 루프가 닫혔으면 "True"를 반환합니다.        |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.shutdown_asyncgens()"                | 비동기 제너레이터를 닫습니다.                      |
+----------------------------------------------------+----------------------------------------------------+

-[ 디버깅 ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.set_debug()"                                 | 디버그 모드를 활성화 또는 비활성화합니다.          |
+----------------------------------------------------+----------------------------------------------------+
| "loop.get_debug()"                                 | 현재의 디버그 모드를 얻습니다.                     |
+----------------------------------------------------+----------------------------------------------------+

-[ 콜백 예약하기 ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.call_soon()"                                 | 콜백을 곧 호출합니다.                              |
+----------------------------------------------------+----------------------------------------------------+
| "loop.call_soon_threadsafe()"                      | 스레드 안전한 "loop.call_soon()"의 변형입니다.     |
+----------------------------------------------------+----------------------------------------------------+
| "loop.call_later()"                                | 주어진 시간 *후*에 콜백을 호출합니다.              |
+----------------------------------------------------+----------------------------------------------------+
| "loop.call_at()"                                   | 주어진 시간 *에* 콜백을 호출합니다.                |
+----------------------------------------------------+----------------------------------------------------+

-[ Thread/Interpreter/Process Pool ]-

+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.run_in_executor()"                   | "concurrent.futures" 실행기에서 CPU-병목이나 다른  |
|                                                    | 블로킹 함수를 실행합 니다.                         |
+----------------------------------------------------+----------------------------------------------------+
| "loop.set_default_executor()"                      | "loop.run_in_executor()"의 기본 실행기를 설정합니  |
|                                                    | 다.                                                |
+----------------------------------------------------+----------------------------------------------------+

-[ 태스크와 퓨처 ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.create_future()"                             | "Future" 객체를 만듭니다.                          |
+----------------------------------------------------+----------------------------------------------------+
| "loop.create_task()"                               | 코루틴을 "Task"로 예약합니다.                      |
+----------------------------------------------------+----------------------------------------------------+
| "loop.set_task_factory()"                          | "loop.create_task()"가 "태스크"를 만드는데 사용하  |
|                                                    | 는 팩토리를 설정합니 다.                           |
+----------------------------------------------------+----------------------------------------------------+
| "loop.get_task_factory()"                          | "loop.create_task()"가 "태스크"를 만드는데 사용하  |
|                                                    | 는 팩토리를 얻습니다.                              |
+----------------------------------------------------+----------------------------------------------------+

-[ DNS ]-

+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.getaddrinfo()"                       | "socket.getaddrinfo()"의 비동기 버전.              |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.getnameinfo()"                       | "socket.getnameinfo()"의 비동기 버전.              |
+----------------------------------------------------+----------------------------------------------------+

-[ 네트워킹과 IPC ]-

+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_connection()"                 | TCP 연결을 엽니다.                                 |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_server()"                     | TCP 서버를 만듭니다.                               |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_unix_connection()"            | 유닉스 소켓 연결을 엽니다.                         |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_unix_server()"                | Unix 소켓 서버를 만듭니다.                         |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.connect_accepted_socket()"           | "socket"을 "(transport, protocol)" 쌍으로 감쌉니다 |
|                                                    | .                                                  |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.create_datagram_endpoint()"          | 데이터 그램 (UDP) 연결을 엽니다.                   |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sendfile()"                          | 트랜스포트를 통해 파일을 보냅니다.                 |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.start_tls()"                         | 기존 연결을 TLS로 업그레이드합니다.                |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.connect_read_pipe()"                 | 파이프의 읽기 끝을 "(transport, protocol)" 쌍으로  |
|                                                    | 감쌉니다.                                          |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.connect_write_pipe()"                | 파이프의 쓰기 끝을 "(transport, protocol)" 쌍으로  |
|                                                    | 감쌉니다.                                          |
+----------------------------------------------------+----------------------------------------------------+

-[ 소켓 ]-

+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_recv()"                         | "socket"에서 데이터를 수신합니다.                  |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_recv_into()"                    | "socket"에서 데이터를 버퍼로 수신합니다.           |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_recvfrom()"                     | "socket"에서 데이터 그램을 수신합니다.             |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_recvfrom_into()"                | "socket"에서 데이터 그램을 버퍼로 수신합니다.      |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_sendall()"                      | 데이터를 "socket"으로 보냅니다.                    |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_sendto()"                       | 데이터 그램을 "socket"을 통해 주어진 주소로 보냅니 |
|                                                    | 다.                                                |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_connect()"                      | "socket"을 연결합니다.                             |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_accept()"                       | "socket" 연결을 수락합니다.                        |
+----------------------------------------------------+----------------------------------------------------+
| "await" "loop.sock_sendfile()"                     | "socket"를 통해 파일을 보냅니다.                   |
+----------------------------------------------------+----------------------------------------------------+
| "loop.add_reader()"                                | 파일 기술자가 읽기 가능한지 관찰하기 시작합니다.   |
+----------------------------------------------------+----------------------------------------------------+
| "loop.remove_reader()"                             | 파일 기술자가 읽기 가능한지 관찰하는 것을 중단합니 |
|                                                    | 다.                                                |
+----------------------------------------------------+----------------------------------------------------+
| "loop.add_writer()"                                | 파일 기술자가 쓰기 가능한지 관찰하기 시작합니다.   |
+----------------------------------------------------+----------------------------------------------------+
| "loop.remove_writer()"                             | 파일 기술자가 쓰기 가능한지 관찰하는 것을 중단합니 |
|                                                    | 다.                                                |
+----------------------------------------------------+----------------------------------------------------+

-[ 유닉스 시그널 ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.add_signal_handler()"                        | "signal"에 대한 처리기를 추가합니다.               |
+----------------------------------------------------+----------------------------------------------------+
| "loop.remove_signal_handler()"                     | "signal"에 대한 처리기를 제거합니다.               |
+----------------------------------------------------+----------------------------------------------------+

-[ 서브 프로세스 ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.subprocess_exec()"                           | 서브 프로세스를 스폰합니다.                        |
+----------------------------------------------------+----------------------------------------------------+
| "loop.subprocess_shell()"                          | 셸 명령으로 서브 프로세스를 스폰합니다.            |
+----------------------------------------------------+----------------------------------------------------+

-[ 에러 처리 ]-

+----------------------------------------------------+----------------------------------------------------+
| "loop.call_exception_handler()"                    | 예외 처리기를 호출합니다.                          |
+----------------------------------------------------+----------------------------------------------------+
| "loop.set_exception_handler()"                     | 새로운 예외 처리기를 설정합니다.                   |
+----------------------------------------------------+----------------------------------------------------+
| "loop.get_exception_handler()"                     | 현재 예외 처리기를 가져옵니다.                     |
+----------------------------------------------------+----------------------------------------------------+
| "loop.default_exception_handler()"                 | 기본 예외 처리기 구현.                             |
+----------------------------------------------------+----------------------------------------------------+

-[ 예제 ]-

* asyncio.new_event_loop() 와 loop.run_forever() 사용하기.

* loop.call_later() 사용하기.

* "loop.create_connection()"을 사용하여 메아리 클라이언트 구현하기.

* "loop.create_connection()"을 사용하여 소켓 연결하기.

* add_reader()를 사용하여 FD에서 읽기 이벤트 관찰하기.

* loop.add_signal_handler() 사용하기.

* loop.subprocess_exec() 사용하기.


트랜스포트
==========

모든 트랜스포트는 다음과 같은 메서드를 구현합니다:

+----------------------------------------------------+----------------------------------------------------+
| "transport.close()"                                | 트랜스포트를 닫습니다.                             |
+----------------------------------------------------+----------------------------------------------------+
| "transport.is_closing()"                           | 트랜스포트가 닫히고 있거나 닫혔으면 "True"를 반환  |
|                                                    | 합니다.                                            |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_extra_info()"                       | 트랜스포트에 대한 정보를 요청합니다.               |
+----------------------------------------------------+----------------------------------------------------+
| "transport.set_protocol()"                         | 새 프로토콜을 설정합니다.                          |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_protocol()"                         | 현재 프로토콜을 돌려줍니다.                        |
+----------------------------------------------------+----------------------------------------------------+

데이터를 받을 수 있는 트랜스포트 (TCP 및 유닉스 연결, 파이프 등).
"loop.create_connection()", "loop.create_unix_connection()",
"loop.connect_read_pipe()" 등의 메서드에서 반환됩니다:

-[ 트랜스포트 읽기 ]-

+----------------------------------------------------+----------------------------------------------------+
| "transport.is_reading()"                           | 트랜스포트가 수신 중이면 "True"를 반환합니다.      |
+----------------------------------------------------+----------------------------------------------------+
| "transport.pause_reading()"                        | 수신을 일시 정지합니다.                            |
+----------------------------------------------------+----------------------------------------------------+
| "transport.resume_reading()"                       | 수신을 재개합니다.                                 |
+----------------------------------------------------+----------------------------------------------------+

데이터를 전송할 수 있는 트랜스포트 (TCP와 유닉스 연결, 파이프 등).
"loop.create_connection()", "loop.create_unix_connection()",
"loop.connect_write_pipe()" 등의 메서드에서 반환됩니다:

-[ 트랜스포트 쓰기 ]-

+----------------------------------------------------+----------------------------------------------------+
| "transport.write()"                                | 데이터를 트랜스포트에 씁니다.                      |
+----------------------------------------------------+----------------------------------------------------+
| "transport.writelines()"                           | 버퍼들을 트랜스포트에 씁니다.                      |
+----------------------------------------------------+----------------------------------------------------+
| "transport.can_write_eof()"                        | 트랜스포트가 EOF 전송을 지원하면 "True"를 반환합니 |
|                                                    | 다.                                                |
+----------------------------------------------------+----------------------------------------------------+
| "transport.write_eof()"                            | 버퍼 된 데이터를 플러시 한 후 닫고 EOF를 보냅니다. |
+----------------------------------------------------+----------------------------------------------------+
| "transport.abort()"                                | 즉시 트랜스포트를 닫습니다.                        |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_write_buffer_size()"                | 출력 버퍼의 현재 크기를 돌려줍니다.                |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_write_buffer_limits()"              | 쓰기 흐름 제어를 위한 높은 수위와 낮은 수위를 반환 |
|                                                    | 합니다.                                            |
+----------------------------------------------------+----------------------------------------------------+
| "transport.set_write_buffer_limits()"              | 쓰기 흐름 제어를 위한 새로운 높은 수위와 낮은 수위 |
|                                                    | 를 설정합니다.                                     |
+----------------------------------------------------+----------------------------------------------------+

"loop.create_datagram_endpoint()"에서 반환된 트랜스포트:

-[ 데이터 그램 트랜스포트 ]-

+----------------------------------------------------+----------------------------------------------------+
| "transport.sendto()"                               | 데이터를 원격 피어로 보냅니다.                     |
+----------------------------------------------------+----------------------------------------------------+
| "transport.abort()"                                | 즉시 트랜스포트를 닫습니다.                        |
+----------------------------------------------------+----------------------------------------------------+

서브 프로세스에 대한 저수준 트랜스포트 추상화.
"loop.subprocess_exec()" 와 "loop.subprocess_shell()"가 반환합니다:

-[ 서브 프로세스 트랜스포트 ]-

+----------------------------------------------------+----------------------------------------------------+
| "transport.get_pid()"                              | 서브 프로세스의 프로세스 ID를 돌려줍니다.          |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_pipe_transport()"                   | 요청한 통신 파이프 (*stdin*, *stdout* 또는         |
|                                                    | *stderr*)에 대한 트랜스포트 를 반환합니다.         |
+----------------------------------------------------+----------------------------------------------------+
| "transport.get_returncode()"                       | 서브 프로세스 반환 코드를 돌려줍니다.              |
+----------------------------------------------------+----------------------------------------------------+
| "transport.kill()"                                 | 서브 프로세스를 죽입니다.                          |
+----------------------------------------------------+----------------------------------------------------+
| "transport.send_signal()"                          | 서브 프로세스에 시그널을 보냅니다.                 |
+----------------------------------------------------+----------------------------------------------------+
| "transport.terminate()"                            | 서브 프로세스를 중지합니다.                        |
+----------------------------------------------------+----------------------------------------------------+
| "transport.close()"                                | 서브 프로세스를 죽이고 모든 파이프를 닫습니다.     |
+----------------------------------------------------+----------------------------------------------------+


프로토콜
========

프로토콜 클래스는 다음 **콜백 메서드를** 구현할 수 있습니다:

+----------------------------------------------------+----------------------------------------------------+
| "callback" "connection_made()"                     | 연결이 이루어질 때 호출됩니다.                     |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "connection_lost()"                     | 연결이 끊어지거나 닫힐 때 호출됩니다.              |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "pause_writing()"                       | 트랜스포트 버퍼가 높은 수위를 초과할 때 호출됩니다 |
|                                                    | .                                                  |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "resume_writing()"                      | 트랜스포트 버퍼가 낮은 수위 아래로 내려갈 때 호출  |
|                                                    | 됩니다.                                            |
+----------------------------------------------------+----------------------------------------------------+

-[ 스트리밍 프로토콜 (TCP, 유닉스 소켓, 파이프) ]-

+----------------------------------------------------+----------------------------------------------------+
| "callback" "data_received()"                       | 어떤 데이터가 수신될 때 호출됩니다.                |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "eof_received()"                        | EOF가 수신될 때 호출됩니다.                        |
+----------------------------------------------------+----------------------------------------------------+

-[ 버퍼 된 스트리밍 프로토콜 ]-

+----------------------------------------------------+----------------------------------------------------+
| "callback" "get_buffer()"                          | 새로운 수신 버퍼를 할당하기 위해서 호출됩니다.     |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "buffer_updated()"                      | 수신된 데이터로 버퍼가 갱신될 때 호출됩니다.       |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "eof_received()"                        | EOF가 수신될 때 호출됩니다.                        |
+----------------------------------------------------+----------------------------------------------------+

-[ 데이터 그램 프로토콜 ]-

+----------------------------------------------------+----------------------------------------------------+
| "callback" "datagram_received()"                   | 데이터 그램이 수신될 때 호출됩니다.                |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "error_received()"                      | 이전의 송신이나 수신 연산이 "OSError"를 일으킬 때  |
|                                                    | 호출됩니다.                                        |
+----------------------------------------------------+----------------------------------------------------+

-[ 서브 프로세스 프로토콜 ]-

+----------------------------------------------------+----------------------------------------------------+
| "callback" "pipe_data_received()"                  | 자식 프로세스가 *stdout* 이나 *stderr* 파이프에 데 |
|                                                    | 이터를 쓸 때 호출됩 니다.                          |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "pipe_connection_lost()"                | 자식 프로세스와 통신하는 파이프 중 하나가 닫힐 때  |
|                                                    | 호출됩니다.                                        |
+----------------------------------------------------+----------------------------------------------------+
| "callback" "process_exited()"                      | 자식 프로세스가 종료할 때 호출됩니다.              |
|                                                    | "pipe_data_received()" 와 "pipe_connection_lost()" |
|                                                    | 메서드 전에 호출될 수 있습니다.                    |
+----------------------------------------------------+----------------------------------------------------+


이벤트 루프 정책
================

정책은 "asyncio.get_event_loop()"와 같은 함수의 동작을 변경하는 저수준
메커니즘입니다. 자세한 내용은 주 정책 절을 참조하십시오.

-[ 정책 액세스하기 ]-

+----------------------------------------------------+----------------------------------------------------+
| "asyncio.get_event_loop_policy()"                  | 현재 프로세스 전반의 정책을 돌려줍니다.            |
+----------------------------------------------------+----------------------------------------------------+
| "asyncio.set_event_loop_policy()"                  | 새로운 프로세스 전반의 정책을 설정합니다.          |
+----------------------------------------------------+----------------------------------------------------+
| "AbstractEventLoopPolicy"                          | 정책 객체의 베이스 클래스.                         |
+----------------------------------------------------+----------------------------------------------------+
