# asyncio 모듈: 비동기 프로그래밍 asyncio 모듈은 파이썬에서 비동기 프로그래밍을 지원하는 강력한 도구입니다. 특히, I/O 작업이 많은 네트워킹 프로그램이나 웹 서버 개발에 널리 사용됩니다. * 비동기 처리: 여러 작업을 동시에 처리하여 프로그램의 응답성을 높일 수 있습니다. * I/O 바운드 작업 최적화: 네트워크 통신, 파일 입출력과 같은 I/O 작업을 효율적으로 처리하여 프로그램의 성능을 향상시킬 수 있습니다. * 코루틴 기반: 코루틴을 사용하여 비동기 코드를 직관적으로 작성할 수 있습니다. ```python import asyncio async def hello(): print("Hello, world!") await asyncio.sleep(1) print("Hello again!") async def main(): task1 = asyncio.create_task(hello()) task2 = asyncio.create_task(hello()) await asyncio.gather(task1, task2) asyncio.run(main()) ``` 위 예시에서 async 키워드로 코루틴 함수 hello()를 정의하고, asyncio.run()을 통해 이벤트 루프를 시작하여 코루틴을 실행합니다. asyncio.sleep()은 비동기적으로 1초 동안 일시 정지하는 함수입니다. ## asyncio의 핵심 개념 * 이벤트 루프: 비동기 작업을 관리하고 스케줄링하는 중심 엔진입니다. * 코루틴: 비동기 함수를 정의하는 데 사용되는 키워드 `async`와 `await`를 사용하여 작성됩니다. 코루틴은 실행 중에 일시 중단될 수 있으며, 다른 코루틴이 실행될 수 있는 기회를 제공합니다. * 태스크: 코루틴을 실행하는 객체입니다. 이벤트 루프는 태스크를 관리하고 실행합니다.