반응형
ASGI (Asynchronous Server Gateway Interface)
ASGI (Asynchronous Server Gateway Interface)는 Python 웹 애플리케이션과 서버 사이의 인터페이스입니다. WSGI (Web Server Gateway Interface)의 후속작으로, 비동기 프로그래밍을 지원하기 위해 만들어졌습니다.
WSGI가 동기적인 요청 처리에 초점을 맞춘 반면, ASGI는 동시성을 처리하는 현대적인 웹 애플리케이션에 더 적합한 비동기 요청 처리를 가능하게 합니다. 이는 다수의 요청을 동시에 처리하고, WebSockets과 같은 양방향 통신을 지원하는 데 이점이 있습니다.
ASGI는 세 가지 주요 구성 요소
- 애플리케이션(Application): 애플리케이션은 ASGI 인터페이스 사양에 따라 작성된 비동기 Python 함수 또는 클래스입니다. FastAPI, Django Channels 등이 ASGI를 지원하는 웹 프레임워크 예입니다.
- 서버(Server): 서버는 클라이언트로부터의 연결을 받아들이고, ASGI 애플리케이션으로 요청을 전달하며, 애플리케이션의 응답을 클라이언트에게 전송합니다. Uvicorn, Daphne, Hypercorn 등이 ASGI 서버의 예입니다.
- 프로토콜(Protocol): 프로토콜은 애플리케이션과 서버 간의 통신 규칙을 정의합니다. 예를 들어 HTTP, WebSocket, 생명주기 이벤트(lifespan events) 등의 ASGI 메시지 유형을 지정합니다.
정리
ASGI의 비동기 지원 덕분에 개발자들은 동시에 발생하는 여러 네트워크 연결과 I/O 작업을 더 효율적으로 처리할 수 있게 되어, 고성능의 실시간 애플리케이션을 만들 수 있습니다.
반응형
'Linuxpia > 웹 프로그램' 카테고리의 다른 글
[FastAPI] 파이썬 라이브러리에서 Pydentic이란? (125) | 2024.03.03 |
---|---|
[FastAPI] 비동기 처리가 가능한 async 키워드 (128) | 2024.03.02 |
[FastAPI] API란 무엇인가요? (109) | 2024.03.01 |
[FastAPI] 가상환경 생성에서 FastAPI 애플리케이션 테스트까지 (127) | 2024.02.28 |
[FastAPI] 아나콘다 가상환경에서 FastAPI 시작 (147) | 2024.02.27 |