gunicorn은 무엇인가?

주영광·2025년 1월 29일
0

용어정리

목록 보기
6/7

gunicorn은 Python WSGI(웹 서버 게이트웨이 인터페이스) HTTP 서버로, Django나 Flask 같은 웹 프레임워크와 함께 사용하여 프로덕션 환경에서 안정적으로 애플리케이션을 실행하는 데 사용

이 gunicorn은 HTTP 요청을 받아서 Django 애플리케이션에 전달하고, 그 결과를 클라이언트에게 응답하는 역할을 한다.

장고를 예시로 들자면 장고를 실행할 수 있는 일반적인 방법은 3개이다.

하나는 로컬에서 테스트할때 많이 쓰는 runserver 다만 이건 단일스레드에 배포환경에서는 부적합하다.

두번째는 웹소켓을 사용할때 쓰는 uvicorn 이건 동기식 지원을 할때 쓴다.

그리고 세번째가 gunicorn이다.

uvicorn은 FastAPI, Starlette, Django ASGI에 많이 사용되고

Gunicorn은 Django, Flask에 많이 사용된다.

실행 방식WSGI/ASGI사용 목적언제 사용해야 할까?
runserverWSGI개발용로컬에서 테스트할 때
uvicornASGI비동기WebSocket, Django Channels 필요할 때
gunicornWSGI운영 환경실 서비스에서 배포할 때 (일반적)

물론 이렇게 보다보면 장고에서 웹소켓을 사용할때 쓰는 daphen이랑 uvicorn이 비슷해 보일 수 있는데,

Daphne는 Django Channels와 함께 사용되도록 설계있기 때문에 장고 채널스를 쓰는 곳에서는 uvicorn이아니라 dahpen을 사용해야한다.
uvicorn은 비동기 프레임워크에 사용하는 고성능 asgi서버이기 때문에 장고뿐아니라 다양한 곳에서 사용할 수 있고, FastAPI, Starlette에서 많이 사용한다.

도커를 사용하느라 구니콘은 그저 한,두줄만 사용해봐서 이런 기능이 있는지 몰랐는데

결론

guicorn은 동기식 방식의 멀티프로세스가 가능한 파이썬 htttp서버로, nginx와 같이 사용하면 더 효과적으로 사용할 수 있고,

이와 비슷한 개념으로 uvicorn, daphen, runserver가 있지만 각각 사용하는 프로젝트들이 다르다. 알맞게 사용해야한다.

profile
오직 실력만이 나를 증명한다.

0개의 댓글