728x90
반응형
웹 서버와 웹 애플리케이션 간의 인터페이스를 정의하는 표준
그 대표적인 예로 CGI, WSGI, ASGI가 있다.
CGI (Common Gateway Interface)
- 설명: 초기의 웹 서버와 애플리케이션 간 인터페이스 방식으로, 각 HTTP 요청마다 새로운 프로세스가 생성
- 장점: 다양한 언어로 스크립트를 작성할 수 있는 단순한 구조.
- 단점: 매 요청마다 프로세스가 생성되기 때문에 성능이 떨어지고 서버 부하가 큼
WSGI (Web Server Gateway Interface)
- 설명: CGI의 성능 문제를 해결하기 위해 파이썬에서 제안된 표준 인터페이스로, 지속적으로 실행되는 프로세스를 사용하여 성능을 향상.
- 장점: 멀티스레드/멀티프로세스 환경 지원, 미들웨어로 다양한 기능 확장 가능.
- 단점: 동기 방식이므로 실시간 통신 같은 비동기 작업에 적합하지 않음.
ASGI (Asynchronous Server Gateway Interface)
- 설명: 비동기 작업 및 실시간 통신을 지원하기 위해 개발된 표준 인터페이스로, WSGI의 동기적 한계를 극복.
- 장점: 비동기 작업과 동기 작업 모두 지원, 실시간 웹 애플리케이션에 적합.
- 단점: 비동기 프로그래밍에 대한 이해가 필요하고, 일부 동기 기반 라이브러리 전환에 시간이 걸릴 수 있다.
요약
- CGI: 단순하지만 성능이 낮음.
- WSGI: 동기식 웹 애플리케이션에 적합한 표준, 성능이 뛰어남.
- ASGI: 비동기와 실시간 통신을 지원하는 현대 웹 표준.
프레임워크
- CGI: 초기에는 perl, python 기반의 웹 어플리케이션에서 사용되었지만 현재는 거의 사용되지 않음.
- WSGI: Django, Flask, Pyramid
- ASGI: Fastapi, Dango (Channels), Starletter
728x90
반응형
'개발 > PYTHON' 카테고리의 다른 글
Python 용량 변환 (0) | 2024.11.11 |
---|---|
Python IMAP 메일 연동 (1) | 2024.11.08 |
Python 3.11 소식 (0) | 2022.05.23 |
PyCharm ssh sftp 연결하기 (0) | 2022.05.13 |
Python - copy, deepcopy (0) | 2021.01.19 |