-
[호기심과 글] Django와 uWSGI . uWSGI 는 왜 쓸까?기타 2022. 5. 28. 16:21
회사 동료 개발자 중 한명이 파이썬으로 개발을 시작했던 이력이 있는데,
최근 회사 프로젝트에서 몇 일 정도의 여유시간이 생겨 Django로 웹서버 여는 것을 시도해보았다는 얘기를 듣고
어떤 프로그램들을 사용했나 들어보니,
가장 많이 사용되는 Nginx - uWSGI - django 방식으로 서버를 열었다고 했다.
그래서 uWSGI 가 무엇일까 궁금해서 찾아보게 되었는데,
우선 위키백과에서 정의하기로는 '호스팅 서비스 빌드를 위한 풀 스택 개발에 초점을 둔 응용 소프트웨어'라고 한다.
출처 : https://ko.wikipedia.org/wiki/UWSGI
이 프로그램은 WSGI (Web Server Gateway Interface) 역할을 하는데,
django와 nginx 사이에서 동적인 웹서비스를 할 수 있도록 도와준다고 한다.
처음에는 django로 웹서버 실행이 안되는건가? (django로 직접 웹서버를 만들어보지 않았기 때문)
django가 웹 프레임워크라면 실행하는 방법이 있을텐데 하는 의문을 가지고 찾아보니 방법이 있었다.
$ python app.py runserver
그렇다면 왜 django와 nginx를 그냥 연결해서 사용하면 안될까? 라는 의문이 들었는데,
https://docs.djangoproject.com/en/3.2/ref/django-admin/#runserver
답은 이 공식문서에 나와 있었다.
DO NOT USE THIS SERVER IN A PRODUCTION SETTING. It has not gone through security audits or performance tests. (And that’s how it’s gonna stay. We’re in the business of making Web frameworks, not Web servers, so improving this server to be able to handle a production environment is outside the scope of Django.)
프로덕션 환경에서 이 서버를 사용하지 마십시오. 보안 감사나 성능 테스트를 거치지 않았습니다. 우리는 웹 서버가 아닌 웹 프레임워크를 만드는 사업을 하고 있기 때문에 이 서버를 개선하여 운영 환경을 처리할 수 있도록 하는 것은 Django의 범위를 벗어납니다.
자료들을 찾아보고 내린 결론
Django 웹서버를 프로덕션 환경으로 적합하게 돌리고 관리하기 위해서 uWSGI을 사용한다
참고 : uWSGI가 많이 사용되지만 Gunicorn 이라는 프로그램도 종종 사용된다
'기타' 카테고리의 다른 글
[ESLint] import/order로 import 순서 정렬하기 (Vite + Typescript) (0) 2025.03.20 [VSCode] ESLint codeActionsOnSave 가 정상적으로 동작하지 않음 (0) 2024.02.02 [ESLint] ReactJS(+TypeScript)에 맞게 설정하기 (0) 2022.11.01 [AWS] EC2 - 웹 콘솔 접속해서 사용하기 (0) 2022.09.01 [VSCode] VSCode 업데이트 된 후 생긴 괄호 색상 없애는 방법 (0) 2022.05.28