반응형
ASGI, 비동기 Python 웹 프레임워크
ASGI는 Asynchronous Server Gateway Interface의 약자로, 비동기 Python 웹 프레임워크를 위한 표준 인터페이스입니다.
이는 기존의 WSGI(Web Server Gateway Interface)의 한계를 보완하기 위해 만들어졌으며, 특히 웹소켓, HTTP/2, 비동기 통신을 지원합니다.
✅ ASGI가 필요한 이유
| 기존 WSGI | 동기 방식만 지원 (요청이 끝날 때까지 대기) |
| ASGI | 비동기 처리가 가능 (여러 요청을 동시에 처리) |
✅ 주요 특징
- 비동기 처리 가능
- async/await 문법을 사용할 수 있어, 빠르고 유연한 요청 처리 가능
- 웹소켓 지원
- 실시간 채팅, 알림, 스트리밍 같은 기능 구현에 적합
- 고성능
- 하나의 서버 프로세스가 여러 클라이언트 요청을 동시에 처리 가능
- 멀티 프로토콜
- 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+) 등 |
| 주요 장점 | 웹소켓 지원, 고성능, 비동기 처리 |

ASGI는 실시간 웹, 높은 동시성, 빠른 응답이 필요한 현대적 웹 서비스 개발에서 필수적인 인터페이스입니다.
FastAPI 같은 차세대 웹 프레임워크를 사용하려면, ASGI 개념을 꼭 이해하고 있어야 합니다.
반응형
'컴퓨터 활용 > 노년에 즐기는 코딩' 카테고리의 다른 글
| AWS CLI 활용 데이터 파이프라인 구현 (10) | 2025.06.08 |
|---|---|
| Django 관리자 페이지를 활용한 시(Poem) 등록 (5) | 2025.06.08 |
| [SQL] SQL이란? (11) | 2025.06.06 |
| MySQL 서버와 클라이언트 (3) | 2025.06.05 |
| AWS CLI (Command Line Interface) (4) | 2025.06.03 |
댓글