더북(TheBook)

러스트에서는 구문 키워드로 asyncawait를 조합해 사용할 수 있다. 함수 내부에서 await를 사용할 수 있도록 해당 함수를 async로 표시한다. 함수는 실행에 성공하면 반환하는 값의 타입이 있는 Future 타입을 기다리며(await), 다른 한편으로는 실행 시간이 긴 프로세스를 실행하고 Pending 또는 Ready를 반환하는 poll 메서드를 반환한다. Ready 상태는 Error 또는 성공했을 때의 반환 값을 가질 수 있다.

때로는 Future 타입을 자세히 이해할 필요는 없다. 기본 시스템을 더 깊이 이해하면 시스템을 만드는 데 더 도움이 되겠지만 처음에는 기본 시스템이 존재하는 이유, 나머지 생태계와 어떻게 작동하는지 아는 것만으로도 충분하다.

러스트의 모든 비동기 애플리케이션에서 가장 중요한 결정은 런타임을 선택하는 것이다. 런타임에는 이미 커널 API(대부분의 경우 Mio라는 라이브러리)에 대한 추상화가 포함되어 있지만 그래도 먼저 러스트에서 제공하는 구문과 타입을 살펴보자.

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