본문 바로가기
기타

웹 페이지에서의 동적 콘텐츠 생성? (CGI, WSGI, ASGI)

by 개복취 2023. 8. 22.

학습 주제  🗒️

WebServer

  • CGI
  • WSGI
  • ASGI

주요 메모 사항 📔

CGI (Common Gateway Interface)

CGI (C: 쓰려다가 G: 거짓없이 I: 아이고 소리나옴)

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

 

WSGI(Web Server Gateway Interface / 위스키)

WSGI : 위스키 시에라 골프 잉카

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

ASGI(Asynchronous Server Gateway Interface / 아스키?)

ASGI : 하지만 빨랐죠

  • 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


추후 알아볼 사항 🔎