โป์ฌ์ฉํ์ง ์ข ๋ผ์ ๋ด์ฉ์ด ์ ํํ์ง ์์ ์ ์์ต๋๋ค.
Pythonanywhere๋ผ๋ ์ฌ์ดํธ๋ก ํธ์คํ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ณ ์ ํฉ๋๋ค.
์์ํ๊ธฐ ์ ์ฃผ์ํ ์ฌํญ์, ์ ์ฌ์ดํธ์์ ๋ค์ํ ์น์๋น์ค ํธ์คํ ์ ๋๊ณ ๊ฐ์ํ๊ฒฝ(์ฝ์)๊น์ง ๋ง๋ค์ด์ฃผ๋ ๋์
ํ์๋ฑ๊ธ์ ๊ฐ ์์ต๋๋ค.
๋ฌผ๋ก ๋ฌด๋ฃ๋ก ์ด์ฉ๊ฐ๋ฅํฉ๋๋ค. ํ์ง๋ง ๋ฌด๋ฃ์ด์ฉ์ ์น์ฑ์ ํ๊ฐ, ๊ทธ์ ๋ํ ์ฝ์ ๊ฐฏ์์ ํ(2๊ฐ๊น์ง)์ด ์๊ณ , ๋๋ฉ์ธ ๋ค์์ ๋ณธ์ธ ๊ณ์ ์์ด๋๋ก๋ง ์ง์ ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ํธ์คํ ๊ธฐ๊ฐ์ ์ ํ์ด ์์ต๋๋ค. ๋ฌด๋ฃ๋ก ์ฌ์ฉํ๋ค๋ฉด ๊ณต๋ถ์ฉ์ผ๋ก ์ฌ์ฉํด๋ณด์ค ๋ถ์๊ฒ ์ถ์ฒ๋๋ฆฝ๋๋ค. ๋ ์์ธํ๊ฑด ์ ๋ ์ ๋ชจ๋ฆ ๋๋ค.
1. Pythonanywhere ๊ฐ์
Host, run, and code Python in the cloud: PythonAnywhere
Batteries included With Python versions 2.7, 3.3, 3.4, 3.5 and 3.6, and all the goodies you normally find in a Python installation, PythonAnywhere is also preconfigured with loads of useful libraries, like NumPy, SciPy, Mechanize, BeautifulSoup, pycrypto,
www.pythonanywhere.com
ํน์๋ผ๋ ํน์ ์๋น์ค๋ฅผ ํธ์คํ ํ ์ฉ๋์ ๊ณ์ ์ด๊ณ ๋ฌด๋ฃ๋ก๋ง ์ด์ฉํ๊ณ ์ ํ๋ค๋ฉด ๊ฐ์ ์ ์์ด๋๋ฅผ ์ํ๋ ๋๋ฉ์ธ์ผ๋ก ํ๋ ๊ผผ์๋ฅผ ๋ถ๋ ค๋ ๋๊ฒ ์ฃ ?
์ฐธ๊ณ ๋ก ํธ์คํ ์ ์ฃผ์๋ [ ์์ด๋.pythonanywhere.com ] ๊ฐ ๋ฉ๋๋ค. ์ ๋ HTTP ๊ด๋ จํด์ ๋ญ ๊ฑด๋ค์ง ์๊ณ ํธ์คํ ํ๋๋ https๊ฐ ์๋ http๋ก ์ค์ ๋๋๋ผ๊ตฌ์.
2. ํ๋ก์ ํธ ์ค์
.git ํด๋๋ ๊ฐ์ํ๊ฒฝ์ Scripts ํด๋ ๋ด์ ์์นํด์ผ ํฉ๋๋ค. Scripts ๋๋ ํฐ๋ฆฌ๋ฅผ Github์ ์ ๋ก๋ํ๊ฑฐ๋, ๊ทธ๋์ผ ํฉ๋๋ค.
Scripts ํด๋๋ manage.py ํ์ผ์ ๋น๋กฏํ ํ๋ก์ ํธ, ์ฑ ๋ฑ ๋๋ถ๋ถ์ ์ฅ๊ณ ๋ฌธ์๊ฐ ๋ค์ด์๋ ๊ณณ์ ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ง๊ธ ๋๋ ํฐ๋ฆฌ์ ํ์ผ๋ค์ ๋ก์ปฌํธ์คํธ๋ก ๊ฐ๋ฐํ๋ ์ํ์ฌ์ผ ํฉ๋๋ค. ๊ทธ๋๋ก ์งํํ๊ฒ ์ต๋๋ค.
settings.py ํ์ผ ์์
1) ๊ธฐ์กด์ ๋ก์ปฌํธ์คํธ ์ฃผ์๋ง ํ์ฉ์ด ๋์ด์์ฃ . ํธ์คํ ํ๊ฒ ๋ ์ฃผ์๋ ์ถ๊ฐํด์ค๋๋ค.
ALLOWED_HOSTS = ['127.0.0.1', 'localhost', '[Pythonanywhere์์ด๋].pythonanywhere.com',]
2) ๋์ด์ ๋ก์ปฌ์ ๋๋ฒ๊น ์ฉ์ด ์๋๋๋ค. ๋ฐฉ๋ฌธ์์๊ฒ ๋ฒ๊ทธํ์ด์ง๊ฐ ๋ณด์ด๋ฉด ์๋๊ฒ ์ฃ ? POST๊ฐ๊ณผ ๊ฐ์ด ์๋ฒ๊ฐ ์ฌ์ฉํ๋ ์จ๊ฒจ์ง ์ ๋ณด๋ค์ด ๋ค ๋๋ฌ๋๊ธฐ ๋๋ฌธ์ ๋๋ค.
DEBUG = False
3) ์ด ๊ตฌ๋ฌธ๋ ์ ์๋์ง ํ๋ฒ ํ์ธํด์ฃผ์๊ตฌ์.
WSGI_APPLICATION = '[ํ๋ก์ ํธ๋ ํฐ๋ฆฌ๋ช
].wsgi.application'
ํ๋ก์ ํธ ๋๋ ํฐ๋ฆฌ๋ช ์ด ๋ญ์ง ๋ชจ๋ฅด์ ๋ค๋ฉด ๋์ฒด๋ก 'mysite'๋ผ๋ ์ด๋ฆ์ผ๋ก ์์ฑํฉ๋๋ค.
๋ด๋ถ ์์ค์ ๊ฒฝ๋ก ์ง์ ๋ฌธ์์ด ์์
๋ถ๋ช ๊ฐ๋ฐ์ ํ๋ฉด์ ์ฅ๊ณ ๊ฐ ๋ง๋ค์ด์ฃผ๋ ๊ณ ์ ํ์ผ ์ธ์ ์๋ฃจ์ ์ ์ํด ์ถ๊ฐํ ์์ค๋ค์ด ์ถ๊ฐ๋๊ธฐ ๋ง๋ จ์ ๋๋ค.
ํ๋ก์ ํธ ํด๋ ๋ด๋ถ์ ์ฌ๋ฌ ํ์ผ๋ค์ ๋ชจ๋๋ก ์ฌ์ฉํ๊ธฐ ์ํด์ ๋ฑ์ ์ด์ ๋ก ๋ถ๋ฌ์ฌ๊ฒ๋๋ค.
์ฅ๊ณ ๋ ๊ฐ์ํ๊ฒฝ์์๋ง ๋์ํ๊ณ , ์ ๋๊ฒฝ๋ก๋ง์ ์ฌ์ฉํฉ๋๋ค. ๊ทธ ์๊ธฐ๋ก , ๊ฐ์ํ๊ฒฝ ์์์ ์ ๋๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๊ฒ ๋์ฃ . ์ ํํ ๋งํ๋ฉด ๋ฃจํธ ํด๋๋ Scriptsํด๋๊ฐ ๋ฉ๋๋ค. ๋ค๋ฅธ ํ์ผ์ ๋ถ๋ฌ์ค๋ ํ์ผ์ด Scripts ํด๋ ๋ด ์ด๋์ ์์นํ๋ ๊ฒฝ๋ก๋ Scriptsํด๋๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋๊ฒฝ๋ก์ ๋๋ค.
๋๋ฌธ์ ๊ธฐ์กด ๊ฒฝ๋ก ์์ ์ด๋ ๊ฒ ์ถ๊ฐํด์ฃผ์ ์ผ ํฉ๋๋ค. ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ํ์ด์ฌ ์ ๋์จ์ด ๊ฐ์ํ๊ฒฝ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋์ด์ฌ๊ฒ๋๋ค. ๋์ด์ค๋ฉด ๋ก์ปฌ์์ Scripts๋ผ๋ ์ด๋ฆ์ด์๋ ํ๋ก์ ํธ ๋ฃจํธ ํด๋๊ฐ ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ช ์ด ๋ฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ํ์ด์ฌ์ ๋์จ์ด ์ฝ์ ๊ฐ์ํ๊ฒฝ์์ ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋์ด์ค๋ฉด ๊ฒฐ๊ตญ ๊ทธ ์์ ๋ฃจํธ๊ฐ ํ๋ ๋ ์กด์ฌํ๊ฒ๋๊ณ , ๋ฐ๋ผ์ 'home'์ด๋ผ๋ ๋ฃจํธ๋ฅผ ์ถ๊ฐ๋ก ๋ถ์ฌ์ผ ํฉ๋๋ค.
"/home/[Pythonanywhere์์ด๋]/[Scripts ํด๋๋ฅผ ์
๋ก๋ํ ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ๋ช
]/"
๊ธฐ์ตํ๊ธฐ๋ก ๋ ์์ ํ ๊ฑด ์์ต๋๋ค.
3. ๊นํ๋ธ์ ์ ๋ก๋
๊นํ๋ธ์ ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋ค์ด Scriptsํด๋๋ฅผ ์ ๋ก๋. ๋ฐ๋ก ์์์ ์ ๋ก๋ํ ๋ฆฌํฌ์งํ ๋ฆฌ๋ช ์ฌ์ฉํ๊ฒ๊ณผ ๋์ผํด์ผํฉ๋๋ค.
4. ๋์๋ณด๋ ์ฝ์ ์์
์ด์ ํ์ด์ฌ์ ๋์จ์ด ์ฌ์ดํธ์ ๋์๋ณด๋ ํ์ด์ง๋ก ์ด๋ํ๋ค. ๊ทธ๊ณณ์์ Consoles>Bash ๋ฒํผ์ ์ฐพ์ ์ ์๋ค.
๊ทธ๋ผ ๋ฆฌ๋ ์ค ๊ธฐ๋ฐ์ ์ฝ์์ด ๋๋ฑ ์์ฑ๋๋ค.
Github์์ ํ๋ก์ ํธ ๋์ด์ค๊ธฐ
์ด์ git clone ๋ช ๋ น์ ํด์ผํ๋ค. ์๊น ๋ง๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํด์จ๋ค=๋์ด์ด. ๋คํธ์ํฌ ์ฐ๊ฒฐ๋์ด์์ด์ผ ํ๋ค.
$ git clone [๋ฆฌํฌ์งํ ๋ฆฌ๊ฒฝ๋ก]
๊ทธ๋ผ ๋ก์ปฌ์ Scripts ํด๋์ ๊ฐ๊ฒ ๋๋ค. dir์ ํด๋ณด๋ฉด ๋ฆฌํฌ์งํ ๋ฆฌ ์ด๋ฆ์ ํ๋ก์ ํธ ํด๋๊ฐ ์๋ค. ๊ทธ๋ฆฌ๋ก ์ด๋(cd)ํ๋ค.
๊ฐ์ํ๊ฒฝ ์ธํ
$ virtualenv --python=python[์์ ์ด ๋ก์ปฌ์์ ์ฌ์ฉํ๋ ํ์ด์ฌ ๋ฒ์ ] myvenv
$ source myvenv/bin/activate
$ pip install django~=2.0
๋๋ ๋ก์ปฌ์์ 3.8 ๋ฒ์ ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ virtualenv --python=python3.8 myvenv.
์ด ๋ฆฌ๋ ์ค ๊ฐ์ํ๊ฒฝ ์๋ฒ์์๋ ๋ก์ปฌ์์ ์์ ํ๋ ๊ฒ์ฒ๋ผ ๋ช ๋ น์ด๋ฅผ ์์ฑํ๋ฉฐ ์ฌ์ฉํ ์ ์๋ค.
๋๋ฌธ์ ๋จ์ ์ ๋ก๋->ํธ์คํ ์ด ์๋๋ผ์ ํจ์ฌ ํธํ๋ค. ์ฌ๊ธฐ์ ์ง์ ๊ด๋ฆฌํ ์ ์๋ ๊ฒ์ด๋ค.
์์ค ์์ ํ๊ธฐ & ๋ณ๊ฒฝ์ฌํญ ๋ฐ์ํ๊ธฐ
๊ทธ๋ฐ๋ฐ ๊นํ๋ธ์์ ์์ค๋ฅผ ๋ฐ์์๋ค. ์์ ์ ์ด๋ป๊ฒ ํ๋๊ฐ?
ํด๋น ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ฐ๊ฒฐ๋ ๋ก์ปฌ์ ํ๋ก์ ํธ๋ฅผ ์์ ํ ๋ค์, ๊นํ๋ธ์ pushํ๊ณ , pythonanywhere์ ์ฝ์์์ git pull์ ๋ฐ๋๋ค. ๊ทธ๋ผ ์์ ์ฌํญ์ด ์ ์ฉ๋๋ค.
5. ํธ์คํ ์๋ฃ, ์คํํ๊ธฐ
์น ์ฑ์ ํด๋ฆญํ ํ ์๋ก๊ณ ์นจ(reload)๋ฅผ ํด์ค๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ๋งํฌ๋ก ์ ์ํ๋ฉด ๋ณ๊ฒฝ์ฌํญ์ด ๋ฐ์๋์ด ์คํ์ด ๋ฉ๋๋ค.