Heroku ๐์ Django ํ๋ก์ ํธ ๋ฐฐํฌํ๊ธฐ
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
๋จผ์ ๋ช ๊ฐ์ง ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ๋ ๊ฒ์ผ๋ก ์์ํ๊ฒ ์ต๋๋ค.
1. django_heroku ์ค์น
์๋ ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌdjango_heroku๋ฅผ ์ค์นํฉ๋๋ค. ์ํํ ๋ฐฐํฌ ๋ฐ ๊ฐ๋ฐ ๊ฒฝํ์ ๋ณด์ฅํ๋ Heroku ์ ํ๋ฆฌ์ผ์ด์ ์ฉ Django ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
pip3 install django-heroku
django_heroku๋ Heroku์ ๊ธฐ๋ณธ PostgresDB๋ฅผ ์ฌ์ฉํ๋ฏ๋ก Postgres๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ
settings.py
DATABASES ๋ณ์์์ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝํ ํ์๊ฐ ์์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ์์ฒด DB๋ฅผ ๊ตฌ์ฑํ๊ณ DATABASES ๋ณ์์ ์๊ฒฉ ์ฆ๋ช
์ ์ ๊ณตํด์ผ ํฉ๋๋ค.2. gunicorn ์ค์น
UNIX์ฉ Python WSGI HTTP ์๋ฒ๋ฅผ ์ค์นํฉ๋๋คGunicorn.
pip3 install gunicorn
ํ์ ํ์ผ
๊ทธ๋ฐ ๋ค์ ๋ฐฐํฌํ๊ธฐ ์ ์ ํ์ํ ํ์ผ์ ์ค๋นํฉ์๋ค.
1. ์๊ตฌ ์ฌํญ.txt
๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ํ๋ก์ ํธ์์ ์ค์นํ๊ณ ์ฌ์ฉํ ๋ชจ๋ ํจํค์ง๋ฅผ
requirements.txt
ํ์ผ์ ์ ์ฅํด์ผ ํฉ๋๋ค.pip3 freeze > requirements.txt
2. ํ๋กํ
ํ์ฅ์๊ฐ ์๋
Procfile
๋ฅผ ์์ฑํ๊ณ ์์์ ์ธ๊ธํ ํ์ผ ์ด๋ฆ์ ์
๋ ฅํ๊ณ ์ฌ๊ธฐ์ ๋ช ์ค์ ์ถ๊ฐํ์ญ์์ค.release: export DEVELOPMENT=True
release: python manage.py makemigrations --no-input
release: python manage.py migrate --no-input
web: gunicorn [YOUR_PROJECT_NAME].wsgi
์ด ํ์ผ์ ์๋ฒ๋ฅผ ์์ํ๊ธฐ ์ ์ ์คํํ๋ ค๋ ๋ชจ๋ ํ์ ๋ช ๋ น์ ์คํํ๋ ์ญํ ์ ํฉ๋๋ค. ํ์ผ์ ์์ ๋กญ๊ฒ ํธ์งํ ์ ์์ง๋ง ์๋ฒ ์์์ ๋ด๋นํ๋ ๋ง์ง๋ง ์ค์ ์ ๊ฑฐํ์ง ๋ง์ญ์์ค.
3. ๋ฐํ์.txt
์ด ํ์ผ์ ์ถ๊ฐํ๊ณ ํ๋ก์ ํธ์์ ํ์ฌ ์ฌ์ฉ ์ค์ธ Python ๋ฒ์ ์ ํฌํจํฉ๋๋ค.
python-3.8.0
4. settings.py ์์
๋ง์ง๋ง์ผ๋ก
settings.py
ํ์ผ์ ๋ช ์ค์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.๋จผ์ django_heroku ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
import django_heroku
๊ทธ๋ฐ ๋ค์ ์ด ์ค์
settings.py
ํ์ผ ๋์ ์ถ๊ฐํ์ญ์์ค.django_heroku.settings(locals())
GitHub์ ๊ฒ์
GitHub์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ํ๋ก์ ํธ๋ฅผ ํธ์ํฉ๋๋ค.
Like you haven't done that already ๐๐
Heroku ์ฑ ๋ง๋ค๊ธฐ
๊ณ์ ์ด ์๋ค๋ฉด Heroku์์ ๊ณ์ ์ ๋ง๋ค๊ณ ์ ์ฑ์ ๋ง๋์ญ์์ค. ์ฑ ์ด๋ฆ๊ณผ ์ํ๋ ์ง์ญ์ ์ ๋ ฅํฉ๋๋ค.
Heroku ํ๋ก์ ํธ๋ฅผ Github Repo์ ์ฐ๊ฒฐ
์ฑ ๋์๋ณด๋ ๋ด ๋ฐฐํฌ ํญ์ผ๋ก ์ด๋ํ์ฌ ๋ฐฐํฌ ๋ฐฉ๋ฒ์ผ๋ก GitHub๋ฅผ ์ ํํฉ๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ ์ด๋ฆ์ ๊ฒ์ํ๊ณ ์ฐ๊ฒฐ์ ํด๋ฆญํฉ๋๋ค.
์๋ ๋ฐฐํฌ ํ์ฑํ
์๋ ๋ฐฐํฌ ์๋์์ ๋ฐฐํฌํ๋ ค๋ ๋ถ๊ธฐ๋ฅผ ์ ํํ์ญ์์ค. ๐ ์ ์ปค๋ฐ์ด ํด๋น ๋ถ๊ธฐ์ ํธ์๋ ๋๋ง๋ค ์๋์ผ๋ก ๋ฐฐํฌ๋ฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ์ง ์์ผ๋ ค๋ฉด ์๋ ๋ฐฐํฌ์์ ๋ฐฐํฌํ๋ ค๋ ๋ถ๊ธฐ๋ฅผ ์ ํํ ๋ค์ ๋ฐฐํฌ๋ฅผ ์ ํํ๋ฉด ๋ฉ๋๋ค. ๋๋ญ๊ฐ์ง.
์ฑ ํ์ธ
๋ฐฐํฌ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ์ฑ์ ์ด๊ณ ํ์ธํ์ญ์์ค. ์ด์ ๊ฐ ์ค๋น๊ฐ ๋์์ต๋๋ค ๐๐ฅ.
๊ฒฐ๋ก
๊ทธ๊ฒ์ด Heroku์ Django ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํ๋ ๊ฒ์ ๊ดํ ๊ฒ์ ๋๋ค. ํ์ธํ๋ ค๋ ๊ฒฝ์ฐ ํ๋ก์ ํธsource code๊ฐ ์์ต๋๋ค. ์ง๋ฌธ๋ ๋ถ๋ด์์ด ํด์ฃผ์ธ์ ๐.
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(Heroku ๐์ Django ํ๋ก์ ํธ ๋ฐฐํฌํ๊ธฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/thepinger/deploying-a-django-project-on-heroku-1nebํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค