Rust

async/await

async 함수, Future 트레이트, tokio 런타임, async 블록, .await 구문, Streams, Pin<T>, 취소, executor 패턴

22 면접 질문·
Mid-Level
1

Rust에서 async 키워드로 선언된 함수는 무엇을 반환하나요?

답변

async 함수는 Future 트레이트를 구현하는 타입을 자동으로 반환합니다. 컴파일러는 함수 본문을 Future를 구현하는 상태 기계(state machine)로 변환합니다. 반환 값은 즉시 계산되지 않으며, Future가 .await로 대기되거나 runtime에 의해 실행될 때만 계산됩니다.

2

Rust에서 Future 트레이트의 주요 역할은 무엇인가요?

답변

Future 트레이트는 아직 완료되지 않았을 수 있는 비동기 계산을 나타냅니다. poll 메서드를 통해 executor는 Future가 준비되었는지(Poll::Ready) 또는 대기해야 하는지(Poll::Pending)를 확인할 수 있습니다. 이는 Rust 비동기 처리의 근본적인 메커니즘으로, 논블로킹이면서 효율적인 실행을 가능하게 합니다.

3

Rust에서 async 코드를 실행하려면 왜 tokio 같은 runtime이 필요한가요?

답변

Rust는 언어를 최소한으로 유지하고 필요에 따라 runtime을 선택할 수 있도록 표준 라이브러리에 비동기 runtime을 포함하지 않습니다. tokio 같은 runtime은 Future를 poll하는 executor, 태스크를 관리하는 scheduler, 그리고 비동기 I/O를 제공합니다. runtime이 없으면 Future는 결코 실행되지 않습니다.

4

Rust에서 async block과 async function의 차이점은 무엇인가요?

5

Rust에서 Future에 .await를 사용하면 어떤 일이 발생하나요?

+19 면접 질문

다음 면접을 위해 Rust을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기