SteadyDrills

Gunicorn란? 본문

웹개발

Gunicorn란?

Drills 2024. 11. 7. 22:33

 

241107

Gunicorn

Python WSGI(Web Server Gateway Interface) HTTP 서버로, 웹 애플리케이션을 배포할 때 주로 사용된다. Gunicorn은 다중 프로세스 구조를 기반으로 하여, 여러 개의 워커 프로세스를 통해 요청을 처리한다. 이를 통해 높은 성능과 안정성을 제공할 수 있다.

 

* WSGI(Web Server Gateway Interface) HTTP 서버란?

Python 웹 애플리케이션과 웹 서버 간의 인터페이스를 정의하는 표준입니다. WSGI는 Python 웹 프레임워크와 웹 서버 간의 통신을 가능하게 한다.

 

장점

  • 성능: 다중 프로세스 아키텍처 덕분에 여러 요청을 동시에 처리할 수 있어 성능이 좋다.
  • 단순성: 설정이 간단하고 사용하기 쉬워 개발자들이 빠르게 배포할 수 있습니다.
  • 호환성: WSGI를 지원하는 모든 Python 웹 프레임워크와 호환됩니다.
  • 유연성: 다양한 워커 클래스(동기, 비동기 등)를 지원하여 사용자의 필요에 맞게 조정할 수 있다.
  • 관리 도구: 프로세스 관리를 위한 다양한 옵션을 제공하여, 서버 상태를 모니터링하고 관리하기 용이하다.

 

 

단점

  • 메모리 사용량: 다중 프로세스 구조로 인해 메모리 소비가 많을 수 있다. 또한 워커 수에 따라 메모리 사용량이 급격히 증가할 수 있다.
  • 복잡한 설정: 기본적인 설정은 간단하지만, 대규모 애플리케이션의 경우 최적화된 설정을 위해 추가적인 구성이 필요할 수 있다.
  • 비동기 처리 제한: 기본적으로 동기 처리 방식이기 때문에, 비동기 처리가 필요한 경우 추가적인 설정이 필요하다.( ex gevent, eventlet 등의 프레임 워크)

 

내가 생각한 사용 이유 


파이썬으로 제작된 웹 프레임 워크와의 호환이 좋고, Nginx와 같은 웹 서버와 쉽게 통합하여 사용할 수 있기 때문이다. Nginx는 정적 파일을 처리하고 SSL을 관리하며, Gunicorn은 동적 요청을 처리하는 역할을 맡는 구조가 대부분인 것은 그만큼 효율과 성능이 좋아서 인거 같다.

 

 

'웹개발' 카테고리의 다른 글

SQLite란?  (4) 2024.11.13
Redis란?  (1) 2024.11.08
NGINX란?  (1) 2024.11.06
Process Flow란?  (0) 2024.09.23
Team project - blame news 3일 ~7일 차(완성)  (0) 2024.09.20