WSGI : 서버나 게이트웨이를 어플리케이션이나 프레임워크에 이어주게됨. 중간 다리와 같은 역할
예를 들어 Flask와 같은 마이크로 프레임워크를 서버로 연결해 외부에서 접속할 수 있도록 도와주는 역할
green unicorn을 줄인 gunicorn은 파이썬의 WSGI HTTP Server
HTTP 요청에 대한 처리를 할 수 있는 gunicorn은 UNIX체계에서 작동하게 되어있다.
pip install gunicorn
gunicorn [옵션] [WSGI 어플리케이션]
#ex
gunicorn --workers=1 'flask_app:create_app()'
클라우드 플랫폼을 제공하는 서비스
Heroku를 사용하기 위해서는 먼저 Heroku CLI설치를 해야함
heroku login
heroku apps
heroku create my_app
git push heroku master
heroku addons:create heroku-postgresql:hobby_dev --name main-db
heroku addons --app 어플리케이션 이름
heroku config --app 어플리케이션 이름
터미널에서 env 라고 친다면 현재 사용되고 있는 환경변수들의 목록이 나타남.
export ENV_PRAC="hello world"
import os
print(os.environ["ENV_PRAC"])
환경변수를 더 수월하게 관리가능
pip install python-dotenv
# .env 파일
export env_1 = 'hello world'
export env_2 = 'bye bye'
export env_3 = 42
# env_prac.py
import os
from dotenv import load_dotenv
load_dotenv()
print(os.getenv('env_1'))
print(os.getenv('env_2'))
print(os.getenv('env_3'))
헤로쿠 add-on 으로 데이터베이스를 새로 추가하게 되면 연결된 앱에 자동으로 DATABASE_URL 이라는 환경변수가 생김
앱에 설정된 환경변수들은 heroku config로 관리가능
heroku config:set 변수_이름=변수값
동일한 앱이 로컬에서는 로컬 환경변수를, 배포 단계에서는 배포 환경변수를 사용하게 만드는게 좋다. 환경변수를 이렇게 분리해야 개발할 때의 에러나 버그 등이 실제 배포 단계에 영향을 미치지 않고 독립적으로 관리할 수 있다.