더북(TheBook)

런타임 사용은 애플리케이션의 main 함수 위에 정의한다.

main 함수를 async로 표시하므로 내부에서 await를 사용할 수 있다.

여기에서 Reqwest 크레이트를 사용해 Future 타입을 반환하는 HTTP GET 요청을 실행한다.

await 키워드를 사용해 이 함수에서 다음으로 넘어가기 전에 퓨처가 완료될 때까지 기다릴 것이라고 프로그램에 알린다.

응답 내용을 출력한다.

Ok 키워드는 Result를 반환하며, 이 경우에서는 빈 값이다.

main 함수에 #[tokio::main] 주석을 단다. Tokio는 여기서 사용하는 비동기 런타임(또는 스레드 스케줄러)이다. Tokio 자체는 이전에 언급한 운영체제의 비동기 커널 API를 (Mio라는 다른 크레이트를 통해) 이용한다.

표준 러스트 구문을 사용해 함수를 async로 표시하고 퓨처(Future, http://mng.bz/5mv1) 타입 결과를 기다릴(await) 수 있다. 러스트의 퓨처는 트레이트로, 다른 어떤 타입으로도 구현될 수 있다. 이 트레이트는 구현 대상이 Output(계산이 완료될 때 퓨처가 반환하는 것을 나타냄) 타입과 poll 함수(런타임이 퓨처에 작업을 수행하기 위해 호출할 수 있음)를 가져오는 것을 나타낸다. 웹 프레임워크로 작업할 때 퓨처의 실제 구현을 건드릴 일이 거의 없겠지만, 컴파일러 메시지와 프레임워크 구현이 뜻하는 바를 알려면 기본 개념을 이해하는 것이 중요하다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.