비동기 처리

term_id: async_processing

Category: engineering_practice

Definition

비동기 처리는 소프트웨어가 메인 애플리케이션 인터페이스가 멈추거나 다른 프로세스를 차단하지 않고도 I/O 작업이나 복잡한 계산과 같은 긴 시간 동안 실행되는 작업을 수행할 수 있게 합니다. 이벤트 루프와 콜백, 또는 Promise와 같은 메커니즘을 사용하여 작업 완료 시 알림을 받거나 결과를 처리함으로써 시스템의 응답성과 효율성을 높입니다.

Summary

주 실행 스레드와 독립적으로 작업을 실행하여 블로킹되지 않는 동작을 허용하는 프로그래밍 패러다임.

Key Concepts

  • 논블로킹 I/O
  • 이벤트 루프
  • 동시성
  • 스레딩

Use Cases

  • 실시간 비디오 스트림 처리
  • 여러 API 요청 동시 처리
  • 백그라운드 모델 학습 작업

Code Example

1
2
3
4
5
6
7
import asyncio

async def fetch_data():
    await asyncio.sleep(1)
    return 'Data'

asyncio.run(fetch_data())