패스잇
백엔드 개발 · 중급

Python의 asyncio와 비동기 프로그래밍에 대해 설명해주세요.

힌트 · 코루틴, event loop, await 키워드를 설명해보세요.

async/await이벤트 루프코루틴I/O 바운드동시성

모범답안

asyncio는 Python에서 비동기 프로그래밍을 쉽게 구현할 수 있도록 도와주는 라이브러리입니다. 특히 I/O 바운드 작업(네트워크 요청, 파일 읽기/쓰기 등)을 효율적으로 처리하는 데 유용합니다.

asyncio의 핵심은 이벤트 루프, 코루틴, 그리고 async/await 키워드입니다. 코루틴은 실행을 일시 중단하고 재개할 수 있는 함수로, async def로 정의됩니다. await 키워드는 코루틴 내에서 다른 코루틴의 완료를 기다리는 동안 실행을 일시 중단하는 데 사용됩니다.

이벤트 루프는 코루틴의 실행을 관리하고, I/O 작업이 완료되면 해당 코루틴을 다시 실행합니다. 이를 통해 여러 작업을 동시에 처리하면서도 단일 스레드에서 실행되므로, 멀티 스레딩의 복잡성을 피할 수 있습니다.

예를 들어, 여러 웹 페이지를 동시에 다운로드하는 경우, 각 다운로드를 코루틴으로 만들고 await를 사용하여 각 요청의 완료를 기다리면, 전체 다운로드 시간을 크게 줄일 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Python 면접 질문

← Python 면접 질문 전체 보기