본문 바로가기
컴퓨터 활용/노년에 즐기는 코딩

ASGI, 비동기 Python 웹 프레임워크

by easyfly 2025. 6. 7.
반응형

ASGI, 비동기 Python 웹 프레임워크

ASGIAsynchronous Server Gateway Interface의 약자로, 비동기 Python 웹 프레임워크를 위한 표준 인터페이스입니다.

이는 기존의 WSGI(Web Server Gateway Interface)의 한계를 보완하기 위해 만들어졌으며, 특히 웹소켓, HTTP/2, 비동기 통신을 지원합니다.


✅ ASGI가 필요한 이유

기존 WSGI 동기 방식만 지원 (요청이 끝날 때까지 대기)
ASGI 비동기 처리가 가능 (여러 요청을 동시에 처리)

✅ 주요 특징

  1. 비동기 처리 가능
    • async/await 문법을 사용할 수 있어, 빠르고 유연한 요청 처리 가능
  2. 웹소켓 지원
    • 실시간 채팅, 알림, 스트리밍 같은 기능 구현에 적합
  3. 고성능
    • 하나의 서버 프로세스가 여러 클라이언트 요청을 동시에 처리 가능
  4. 멀티 프로토콜
    • HTTP뿐 아니라 WebSocket 같은 다양한 프로토콜을 지원

✅ ASGI를 사용하는 대표 프레임워크

프레임워크  설명
FastAPI 완전한 ASGI 기반 프레임워크, 매우 빠르고 현대적
Django 기본은 WSGI이지만, Django 3.0 이상부터는 ASGI 지원
Starlette FastAPI의 기반이 되는 초경량 ASGI 프레임워크
Quart Flask와 비슷하지만 완전 비동기 방식 지원

✅ 예시: FastAPI 애플리케이션

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def hello():
    return {"message": "안녕하세요"}

 

이처럼 async def로 정의하면, 비동기 요청 처리로 성능이 향상됩니다.


✅ ASGI와 WSGI 비교

항목 WSGI ASGI
지원 방식 동기(Synchronous) 동기 + 비동기(Asynchronous)
웹소켓 지원 불가능 가능
적합한 환경 단순 웹사이트 실시간 서비스, 대규모 트래픽
대표 프레임워크 Django (기본), Flask 등 FastAPI, Django(3.0+) 등

✅ 마무리 요약

정식 명칭 Asynchronous Server Gateway Interface
목적 Python 비동기 웹서버/프레임워크 연결
대표 프레임워크 FastAPI, Starlette, Django(3.0+) 등
주요 장점 웹소켓 지원, 고성능, 비동기 처리

FastAPI 개발 중에


ASGI는 실시간 웹, 높은 동시성, 빠른 응답이 필요한 현대적 웹 서비스 개발에서 필수적인 인터페이스입니다.
FastAPI 같은 차세대 웹 프레임워크를 사용하려면, ASGI 개념을 꼭 이해하고 있어야 합니다.

반응형

댓글