๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
studies/Back-end

[Django] Github๋ฅผ ํ†ตํ•ด Pythonanywhere์— ํ”„๋กœ์ ํŠธ ๋ฐฐํฌํ•˜๊ธฐ

by Vada Kim 2020. 12. 7.
728x90
๋ฐ˜์‘ํ˜•

โ€ป์‚ฌ์šฉํ•œ์ง€ ์ข€ ๋ผ์„œ ๋‚ด์šฉ์ด ์ •ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 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)๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฐ”๋กœ ๋งํฌ๋กœ ์ ‘์†ํ•˜๋ฉด ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜์–ด ์‹คํ–‰์ด ๋ฉ๋‹ˆ๋‹ค.

 

728x90
๋ฐ˜์‘ํ˜•