๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐“ก๐“ธ๐“ธ๐“ถ4: ๐ต๐’ถ๐’ธ๐“€๐‘’๐“ƒ๐’น/๐“ก๐Ÿฆ๐Ÿข๐Ÿฃ:๐’Ÿ๐’ฟ๐’ถ๐“ƒ๐‘”๐‘œ

[Server] Django์˜ ๊ธฐ์ดˆ

๋‚ด๊ฐ€ ๊ณ ๋“ฑํ•™๊ต2ํ•™๋…„, (๋ฌธ์ œ์˜ ๊ทธ) ์Šคํƒ์—์„œ ์†Œ๋‚˜๊ธฐ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ django๋ผ๋Š” ์•„์ด๋ฅผ ์ฒ˜์Œ ๋งŒ๋‚ฌ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์–ด๋–ป๊ฒŒ ๋Œ์•„๊ฐ€๋Š”์ง€๋„ ๋ชฐ๋ž๋˜ ์ตœ์†Œ์ •์ด ์„œ๋ฒ„๊ฐœ๋ฐœ์ด๋ผ๋‹ˆ. ๋ฌดํŠผ ์ด๋ฒˆ ์ฐฝ์—… ํ”„๋กœ์ ํŠธ์—์„œ ๋˜๋‹ค์‹œ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ๋งก๊ฒŒ ๋˜์–ด ๊ฐ„๋งŒ์— ์žฅ๊ณ  ๋ณต์Šต๋„ ํ•˜๊ณ  ์ œ๋Œ€๋กœ ๊ณต๋ถ€ ์ข€ ํ•ด๋ณด๋ ค ํ•œ๋‹ค. (((๊ทธ๊ทธ๋Ÿฐ๋ฐ ์ง€๊ธˆ ํšŒ๊ฐœํŠน์œ„ ์ผํ•˜๋Ÿฌ ๊ฐ€๋Š” ์ค‘์ด๋ผ ... ๊ณผ์—ฐ ์ œ์‹œ๊ฐ„์•ˆ์— ๋‚ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ธ๊ฐ€...)))

1. Django๋ž€?

ํŒŒ์ด์ฌ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ! ์ด๊ฒƒ์„ ์ด์šฉํ•ด์„œ ์›น์ด๋‚˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.
์›๋ž˜๋Š” ๋””์žฅ๊ณ ๋ผ๊ณ  ์ฝ๋Š”๊ฒŒ ๋งž๋Š” ๊ฒƒ ๊ฐ™์€๋ฐ ๋‚˜๋Š” ๊ทธ๋ƒฅ ์žฅ๊ณ (์Ÿ๊ณ )๋ผ๊ณ  ์ฝ๋Š”๋‹ค..ใ…‹ใ…‹
๋‚˜๋Š” ์žฅ๊ณ ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ•˜๋‚˜์˜ ์›น์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋„๋ก ๋งŒ๋“ค ์˜ˆ์ •์ด๋‹ค.


์žฅ๊ณ ์—๋Š” ํฌ๊ฒŒ models, views, urls ๊ทธ๋ฆฌ๊ณ  admin์ด ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋œ๋‹ค.


models์—์„œ ์„œ๋ฒ„์—์„œ ์‚ฌ์šฉ๋  ๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ๋‚ด๊ฐ€ ๋กœ๊ทธ์ธ ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž. user๋ผ๋Š” ๋ชจ๋ธ์„ ์„ ์–ธํ•˜๊ณ  ๊ทธ user์˜ ์•„์ดํ…œ?์œผ๋กœ id์™€ pw๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ๋“ค์„ ์„ ์–ธํ•˜๋Š”๊ฒŒ ๋ฐ”๋กœ models์ด๋‹ค.

views์—์„œ๋Š” ๋‚ด๊ฐ€ ์‹ค์ œ๋กœ ๋™์ž‘ํ•˜๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•œ๋‹ค. ๊ฐ ๊ธฐ๋Šฅ๋ณ„๋กœ ํŒŒ์ด์ฌ์œผ๋กœ ํ•จ์ˆ˜ ์„ ์–ธํ•˜๋“ฏ ๊ตฌํ˜„ํ•˜๋ฉด ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค๊ณ  ํ•ด๋ณด์ž.
def login(request)
๋กœ ํ•จ์ˆ˜๋ฅผ ์—ด์–ด์ค€ ํ›„ ๊ธฐ๋Šฅ๋“ค์„ ๊ตฌํ˜„ํ•ด์ค€๋‹ค.
์šฐ์„  ๋กœ๊ทธ์ธ์„ ํ•˜๋ ค๋ฉด id์™€ pw๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์•ผ๊ฒ ์ง€?
email = request.POST.get('Email')
์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ post๋กœ Email์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ๋‚ ์•„์˜จ ๋ฐ์ดํ„ฐ๋ฅผ email์ด๋ผ๋Š” ๋ณ€์ˆ˜์— ์ €์žฅํ•ด์ค€๋‹ค. pw๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋‹ค. ๊ทธ๋ฆฌ๊ณ  email๊ณผ DB์— ์ €์žฅ๋œ User์˜ pw์™€ ์ž…๋ ฅ๋ฐ›์€ pw๊ฐ€ ์ผ์น˜ํ•˜๋ฉด ํŠน์ • ๋ฐ˜์‘์„ ๋ฆฌํ„ดํ•ด์ค€๋‹ค. ๋‚˜์˜ ๊ฒฝ์šฐ๋Š” Httpresponse๋กœ ์ˆซ์ž๋ฅผ ๋ณด๋‚ด ์•ฑ์—์„œ ๋กœ๊ทธ์ธ์ด ์„ฑ๊ณตํ–ˆ๋Š”์ง€ ์•„๋‹Œ์ง€ ํ™•์ธํ•ด์ค€๋‹ค.

 

urls์—์„œ๋Š” ์›น์— ์กด์žฌํ•˜๋Š” url๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ์›น ํŽ˜์ด์ง€์— loginํŽ˜์ด์ง€์™€ registerํŽ˜์ด์ง€๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค๋ฉด, urls์— ๋“ค์–ด๊ฐ€์„œ ํ•ด๋‹น url์„ ๋“ฑ๋ก์‹œ์ผœ์ค˜์•ผ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค.

 

admin์€ ์žฅ๊ณ  ์ž์ฒด ๋‚ด์—์„œ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋ณด๊ฑฐ๋‚˜ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค! ์ด๋ฅผํ…Œ๋ฉด user์˜ ์•„์ด๋””-pw ๋ฐ์ดํ„ฐ๋ผ๋“ ์ง€,,

 

์ด๋Ÿฐ ์•„์ด๋“ค์„ ๊ฐ€์ง€๊ณ  ์›น์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•ด๋ณผ ๊ฒƒ์ด๋‹ค! ์ž ๊ทธ๋Ÿผ ์žฅ๊ณ  ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฐฌ์ฐฌํžˆ ๋‹ค์‹œ ์ฝ์œผ๋ฉฐ ์ฒ˜์Œ๋ถ€ํ„ฐ ํ•จ๊ป˜ ํ•ด๋ณด์ž

 

 

2. Django ์„ค์น˜ํ•˜๊ธฐ

 

์žฅ๊ณ ๋Š” ํŒŒ์ด์ฌ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋ฏ€๋กœ ๋‹น์—ฐํžˆ! ํŒŒ์ด์ฌ์ด ๊น”๋ ค์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋‚˜๋Š” ์›๋ž˜ ํŒŒ์ด์ฐธ์„ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ, ์ด๋ฒˆ์—” VS์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•ด๋ณผ๊นŒ ํ•œ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐฉ๊ธˆ ๊ฒ€์ƒ‰์„ ํ•ด๋ณธ ๊ฒฐ๊ณผ pycharm์ด django๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ vs๋ณด๋‹ค ๋” ์ ํ•ฉํ•˜๊ฒ ๋‹ค๋Š” ํŒ๋‹จ์ด ๋“ค์–ด! ๊ทธ๋ƒฅ ๋‹ค์‹œ ํŒŒ์ด์ฐธ์„ ๊น”์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ์ฐพ์•„๋ณด๋‹ˆ ๋น„์ฃผ์–ผ ์ŠคํŠœ๋””์˜ค๋Š” ๋น„๊ต์  ๊ฐ€๋ฒผ์šด ๋Œ€์‹  ํŒŒ์ด์ฐธ๋ณด๋‹ค ๊ธฐ๋Šฅ์ด ๋ณ„๋กœ(?)๊ณ  ๋ฌด์—‡๋ณด๋‹ค ๋‚ด ๊ธฐ์ค€์—์„œ ์–ด๋ ต๋‹ค... ์•„์ง ๋‚ฏ์„ค์–ด.. ํŒŒ์ด์ฐธ์€ ์žฅ๊ณ  ๊ฐœ๋ฐœ์—๋„ ๊ต‰์žฅํžˆ ์ ํ•ฉํ•˜๋‹ค๊ณ  ํ•˜๋‹ˆ ๋‹ค์‹œ ํŒŒ์ด์ฐธ์„ ๊น”์•„์•ผ ๊ฒ ๋‹ค. 

 

 

ํŒŒ์ด์ฐธ์€ ๊ตฌ๊ธ€์— pycharm์ด๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋ฐ”๋กœ ๋‹ค์šด๋กœ๋“œ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๊ณต์‹ ์‚ฌ์ดํŠธ๊ฐ€ ๋‚˜์˜จ๋‹ค! ์„ค์น˜ ์„ค๋ช… ์—ญ์‹œ ๋งŽ์€ ๋ธ”๋กœ๊ทธ์—์„œ ์นœ์ ˆํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ๊ณ  ์žˆ์œผ๋‹ˆ ์•Œ์•„์„œ ์ž˜ ๊น”์•„๋ณด๋„๋ก..(?)