Gunicorn

정의
Gunicorn은 Python으로 작성된 웹 애플리케이션을 실행하기 위한 WSGI(Web Server Gateway Interface) 호환 HTTP 서버이다. 주로 Django, Flask 등과 같은 Python 웹 프레임워크와 함께 사용되며, 프리포크(pre-fork) 워커 모델을 기반으로 클라이언트의 요청을 처리한다.


개요
Gunicorn은 2009년부터 공개된 오픈 소스 프로젝트로, BSD 3-Clause 라이선스 하에 배포된다. 서버 자체는 순수 Python으로 구현되어 있어 별도의 컴파일 과정을 필요로 하지 않으며, pip 패키지 관리자를 통해 간단히 설치할 수 있다. 운영 체제에 독립적이며, Unix 계열 시스템(리눅스, macOS 등)뿐 아니라 Windows에서도 제한적인 호환성을 제공한다. Gunicorn은 단일 프로세스가 아닌 다수의 워커 프로세스를 사전에 생성해 두고, 각 워커가 독립적으로 요청을 처리함으로써 높은 동시성을 확보한다.


어원/유래

  • Gunicorn이라는 명칭은 “Green Unicorn”의 축약형으로, 원래 Ruby 언어에서 사용되는 Unicorn 서버와의 연관성을 강조하기 위해 고안된 것으로 알려져 있다.
  • “Green”은 Unicorn 서버와 차별화된 구현을 의미하기 위해 선택된 것으로 추정되며, 정확한 의도에 대한 공식적인 설명은 제한적이다.

특징

구분 내용
워커 모델 프리포크 방식을 사용하여 다수의 독립 워커 프로세스를 사전에 생성함.
호환성 WSGI 표준을 준수하므로 거의 모든 Python 웹 프레임워크와 호환.
설정 명령줄 옵션 및 설정 파일(gunicorn.conf.py)을 통해 포트, 워커 수, 타임아웃 등 다양한 파라미터를 조정 가능.
성능 가벼운 구조와 멀티프로세싱 방식을 통해 높은 처리량과 낮은 레이턴시를 제공.
확장성 gevent, eventlet 등 비동기 워커 클래스를 선택해 비동기 I/O 처리도 가능.
보안 TLS 종료는 별도 프록시(Nginx, Apache 등)와 연계해 수행하는 것이 일반적이며, 직접 TLS를 지원하는 옵션도 존재.
배포 Docker 이미지와 같은 컨테이너 환경에서도 널리 사용되며, 시스템 서비스 매니저(systemd, upstart 등)를 통한 관리가 용이.

관련 항목

  • WSGI (Web Server Gateway Interface)
  • HTTP 서버
  • Django, Flask 등 Python 웹 프레임워크
  • Unicorn (Ruby 기반 HTTP 서버)
  • uWSGI
  • Nginx, Apache HTTP Server (리버스 프록시 역할)
  • Docker (컨테이너 배포)

본 내용은 공개된 문서·프로젝트 저장소·공식 발표 등을 기반으로 작성되었으며, 확인되지 않은 세부 사항에 대해서는 “정확한 정보는 확인되지 않는다.”라고 표기하였다.

둘러보기

더 찾아볼 만한 주제