학습 주제 🗒️
WebServer
- CGI
- WSGI
- ASGI
주요 메모 사항 📔
CGI (Common Gateway Interface)

- 웹서버를 동적으로 가능하게 해준다.
- fork 한 자식프로세스에다가 실행시켜 놓는방식이다.
- 매번 다시 스크립트를 실행해서 메모리에 적재하는 과정에서 추가적인 시간 소요가 있다고 한다. 즉, 메모리 및 프로세스 관리에 대한 오버헤드가 크다.
WSGI(Web Server Gateway Interface / 위스키)

- 파이썬 웹 응용 프로그램을 위한 인터페이스이다. (Flask / Django)
- CGI 에서는 요청이 들어올 때마다 프로세스를 만들어주는 방식이었는데, WSGI 에서는 스레드 풀을 사용해서 동시에 여러 요청을 처리할 수 있다.
- 단독으로 사용될 수 있긴 하지만 Nginx와 함께 이용된다 Gunicorn, uWSGI 같은 라이브러리들이 WSGI 미들웨어 역할을 해준다.
- Nginx에서 Buffering, Reverse Proxying, Load Balancing 등의 역할을 위해 Gunicorn 앞단에 배치되어있음
- 비동기적인 요청 처리에 쥐약이다. 많은 요청을 동시에 처리하는데 있어서 한계가 있음
ASGI(Asynchronous Server Gateway Interface / 아스키?)

- WSGI 와 비슷하지만 비동기적으로 처리한다.
- 비동기 호출이 가능해서 여러 이벤트를 주고 받을 수 있다. 많은 요청을 유연하게 할 수 있다는 장점이 있다.
https://breezymind.com/start-asgi-framework/
ASGI 웹 프레임워크 FastAPI 를 시작하며
Python, Backend 를 시작하는 데 부족한 부분들을 정리해 보고자 한다. 1. Backend 구성 (feat. WSGI 와 ASGI)Python 의 일반적인 웹서비스에 아키텍쳐를 이해하기 위해 아래와 같은 그림을 그려봤다. 1) Web Serve
breezymind.com
https://jellybeanz.medium.com/cgi-wsgi-asgi-%EB%9E%80-cgi-wsgi-asgi-bc0ba75fa5cd
CGI, WSGI, ASGI 란 (CGI, WSGI, ASGI?)
얼마 전에 다른 회사 개발자 친구들과 Flask 를 FastAPI 로 변경하는 이유에 대한 토론을 하게 되었다. 이 이야기를 하면서 왜 굳이 바꾸어야 하는가에 대한 여러 이야기를 하게 되었다.
jellybeanz.medium.com
추후 알아볼 사항 🔎
'기타' 카테고리의 다른 글
레코드 가져오는 SQL 함수 fetchone? fetchall? (0) | 2023.08.30 |
---|---|
트랜색션 SQL (ACID 원칙) (4) | 2023.08.29 |
Linux Daemon 프로세스 (0) | 2023.08.24 |
SQL Window함수를 알아보자 (0) | 2023.08.23 |
SQL 문법(Type Casting, Conversion / NULLIF / WINDOW Functions) (0) | 2023.08.21 |