์›น๊ฐœ๋ฐœ๊ธฐ์ดˆ#3 ์›นํ”„๋ ˆ์ž„์›Œํฌ ์ดํ•ดํ•˜๊ธฐ | Django ์•„ํ‚คํ…์ณ | ์ตœ์ดˆ ์‹คํ–‰๊นŒ์ง€

2020. 10. 4. 15:39ใ†Learning archive/Web development

CONTENTS 

0. Django๋ž€? 
1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ž€? 
2. ์›น ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•„์ˆ˜ 3์š”์†Œ 
3. ์žฅ๊ณ  ์•„ํ‚คํ…์ณ 

 

0. Django(์žฅ๊ณ )๋ž€? 

Django(/dส’æล‹ษกoสŠ/ jang-goh/์Ÿ๊ณ /์žฅ๊ณ )๋Š” ํŒŒ์ด์ฌ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ๋ฌด๋ฃŒ ์˜คํ”ˆ์†Œ์Šค ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ(web application framework)์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ๊ตฌ์„ฑ์š”์†Œ๋กœ ์ด๋ฃจ์–ด์ง„ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋ž๋‹ˆ๋‹ค. ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ, ๋น„์Šทํ•œ ์œ ํ˜•์˜ ์š”์†Œ๋“ค์ด ํ•ญ์ƒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ์›น์‚ฌ์ดํŠธ์˜ ๊ด€๋ฆฌ์ž ํŒจ๋„, ํผ, ํŒŒ์ผ ์—…๋กœ๋“œ์™€ ๊ฐ™์€ ๊ฒƒ๋“ค ๋ง์ด์ง€์š”.

์ถœ์ฒ˜ | ์žฅ๊ณ ๊ฑธ์Šค https://tutorial.djangogirls.org/ko/django/ 

 

1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ(Web application framework)๋ž€? 

์›น ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ œ๊ณตํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋œปํ•œ๋‹ค.

 

 

2. ์›น ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํ•„์ˆ˜ 3์š”์†Œ๋Š” MVC(Model, View, Controller) 

 

- ๋ฐ์ดํ„ฐ์™€ ๊ด€๋ จ๋œ ๋ชจ๋“  ์ž‘์—…๋“ค์€ M(Model) ์— ๋งŒ๋“ค์ž

- ๋ณด์—ฌ์ง€๋Š” ์‹ค์ œ ํ™”๋ฉด๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์€ V(View) ์— ๋งŒ๋“ค์ž 

- ์œ ์ €๊ฐ€ ํ™”๋ฉด์„ ๋ณด๋ฉฐ ์š”์ฒญํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉด์„œ ์†Œํ†ต์„ ํ•œ๋‹ค๋ฉด C(Controller)์— ๋งŒ๋“ค์ž 

 

์žฅ๊ณ ์—์„œ MVC๋Š” ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๊ทธ ๋ช…์นญ์ด ๋‹ค๋ฅด๋‹ค. ์‹ค์งˆ์ ์œผ๋กœ ์žฅ๊ณ ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํด๋” ์šฉ์–ด๋Š” ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค. 

model, template, view์˜ ์šฉ์–ด๋ฅผ ์“ฐ๋ฉฐ, ๋”ฐ๋ผ์„œ MVTํŒจํ„ด์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. 

 

๐Ÿ“model

๐Ÿ“template //MVC๋ชจ๋ธ์—์„œ view์— ํ•ด๋‹นํ•˜๋Š” ํŒŒํŠธ

๐Ÿ“view //MVC๋ชจ๋ธ controller์— ํ•ด๋‹นํ•˜๋Š” ํŒŒํŠธ 

 

โœ”๏ธTip : ์œ„ 3์š”์†Œ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ์ƒ์„ฑํ•ด์•ผ ํ•จ (ํ‘œ์ค€) 

 

 

3. ์žฅ๊ณ  ์•„ํ‚คํ…์ณ(Django Architecture) 

 

(1) ๊ธฐ๋ณธ์ ์ธ ์•„ํ‚คํ…์ฒ˜ 

 

์‚ฌ์šฉ์ž์˜ ์š”์ฒญ Basic request / response process ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ๋ณด์—ฌ์ค˜์•ผํ•˜๋Š” ๊ฒฐ๊ณผ๋“ค (๋ฐ์ดํ„ฐ, ํ™”๋ฉด ๋“ฑ) 

์œ ์ €๊ฐ€ ์›น ํŽ˜์ด์ง€์— ์ ‘์†ํ•˜๋ฉด โ–ถ๏ธŽ์›น ํ”„๋ ˆ์ž„์›Œํฌ์ธ ์žฅ๊ณ ๊ฐ€ ์š”์ฒญ(request)์„ ๋ฐ›๋Š”๋‹ค (์ž…๋ ฅํ•œ URL์— ํ•ด๋‹นํ•˜๋Š” ํŽ˜์ด์ง€ ์—ด์–ด์ค˜!) โ–ถ๏ธŽ์žฅ๊ณ ๋Š” ์–ด๋–ค URL์ธ์ง€ ๋ถ„์„ํ•˜๊ณ  ๊ทธ์— ํ•„์š”ํ•œ ํ™”๋ฉด์„ ์ฐพ๋Š”๋‹ค โ–ถ๏ธŽํ…œํ”Œ๋ฆฟ์„ ๊ฐ€์ ธ์˜จ๋‹ค. (ํ™”๋ฉด์˜ ์Šคํƒ€์ผ) โ–ถ๏ธŽ ํ™”๋ฉด์— ๋ณด์—ฌ์ค˜์•ผ ํ•˜๋Š” ๋‚ด์šฉ๋“ค(data)์€ model์—์„œ ๊ฐ€์ ธ์˜จ๋‹ค. 

 

 

(2) ์žฅ๊ณ  ์•„ํ‚คํ…์ณ ์ƒ์„ธ 

 

 

 

Note •Web์„œ๋ฒ„, WAS(Web Application Server)์„œ๋ฒ„๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์ง€๋ฉด ์ฃผ๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.

์†Œ๊ทœ๋ชจ, ๊ฐœ์ธ์šฉ ํ”„๋กœ์ ํŠธ์ธ ๊ฒฝ์šฐ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ ์ž‘์—…ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. 

 

Web์„œ๋ฒ„์™€ WAS ์„œ๋ฒ„ ์ฐธ๊ณ  ์ž๋ฃŒ : gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html 

 

[Web] Web Server์™€ WAS์˜ ์ฐจ์ด์™€ ์›น ์„œ๋น„์Šค ๊ตฌ์กฐ - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

4. Pycharm ์„ค์น˜์™€ ์„ธํŒ… 

 

PyCharm: the Python IDE for Professional Developers by JetBrains

The Python & Django IDE with intelligent code completion, on-the-fly error checking, quick-fixes, and much more...

www.jetbrains.com

 

5. ์žฅ๊ณ  ์„ค์น˜ 

 

(1) ๊ฒฝ๋กœ env ์„ธํŒ…

 

 

(2) ์žฅ๊ณ  ์„ค์น˜ 

 

(3) ์žฅ๊ณ  ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ | django-admin startproject

 

 

 

(4) ์–ด๋“œ๋ฏผ ๊ด€๋ จ DB๋ฅผ ์„ธํŒ…ํ•˜๊ธฐ | python manage.py migrate

 

 

 

(5) python manage.py runserver

URL์„ ํด๋ฆญํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œฌ๋‹ค. 
์žฅ๊ณ  ๋””ํดํŠธ ํ™”๋ฉด : It worked! 

 

์žฅ๊ณ  ๊ธฐ๋ณธ ์ œ๊ณต admin