advanced
Python 비동기 처리를 통한 데이터 파이프라인 최적화
대용량 로그 데이터를 처리하는 기존의 동기식 Python 스크립트를 asyncio와 multiprocessing을 활용하여 고도화하세요.
📝 프롬프트 내용
다음은 외부 API에서 데이터를 가져와 로컬 파일 시스템에 저장하는 기존의 동기식 Python 코드 로직입니다: 1) 10,000개의 URL 목록을 순차적으로 요청합니다. 2) 각 응답을 파싱하여 CSV 형식으로 변환합니다. 3) 디스크에 순차적으로 씁니다. 이 코드를 asyncio를 사용하여 I/O 병목을 최소화하고, CPU 바운드 작업(파싱)은 multiprocessing을 활용하여 병렬 처리하도록 재작성해 주세요. 또한, 메모리 사용량을 모니터링하고 동시 요청 수를 제어하는 Semaphore 사용 예제와 에러 핸들링 및 재시도 로직(retry logic)을 포함하여 완성된 코드를 제시하십시오.