๊ฐœ๋ฐœ/โ›ต ํ•ญํ•ด99

[ํ•ญํ•ด99] Day02. TIL – DB๋กœ ๋ฐ์ดํ„ฐ ๋ณด๋‚ด๊ธฐ / ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ / ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๋ฐ(Ming) ๐Ÿˆ‍โฌ› 2022. 2. 18. 00:49
728x90
๋ฐ˜์‘ํ˜•

๋ณธ ํฌ์ŠคํŒ…์€ ์ง€๋‚œ 11์›”์— ์—…๋กœ๋“œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

 

 

์ •๋ณดDB ๋งŒ๋“ค๊ธฐ

์šฐ๋ฆฌ ํŒ€ ํ”„๋กœ์ ํŠธ์—๋Š” ์œ ์ €db, ๋ฆฌ๋ทฐdb, ์ •๋ณดdb ์ด 3๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ๋‚˜๋Š” ๊ทธ ์ค‘์— ์ •๋ณด db๊ฐ€ ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ๋งŒ๋“ค๊ฒŒ ๋˜์„œ ํ•˜๋ฃจ์˜ ๊ณ„ํš์„ DB ๋ฐ์ดํ„ฐ๋ฅผ ๊ธ์–ด์™€์„œ ๋ณด๋‚ด๋Š” ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ–ˆ๋‹ค. DB๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฑธ ๋จธ๋ฆฟ์†์œผ๋กœ ์ƒ๊ฐ๋งŒ ํ–ˆ์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๊ณ„ํš์„ ์งœ๋‹ค๋ณด๋‹ˆ ์šฐ์„  DB ๋จผ์ € ๋งŒ๋“ค์–ด ๋‘๋Š”๊ฒŒ ์—ฌ๋Ÿฌ๋ชจ๋กœ ํŽธํ•  ๊ฒƒ ๊ฐ™์•˜๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ ํŒ€ ํ”„๋กœ์ ํŠธ์˜ ๊ธฐํš์ด ์ œ๋Œ€๋กœ ๋ ์ง€ ํ™•์ธ์„ ํ•ด์•ผํ–ˆ๊ธฐ์— ๋ชฝ๊ณ DB๋กœ ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ ์›น ํฌ๋กค๋ง๋ถ€ํ„ฐ ํ–ˆ๋‹ค.

๋‚˜ ํฌํ•จ ๋‹ค๋ฅธ ํŒ€์› ํ•œ๋ช…๋„ ๊ฐ™์€ ํŽ˜์ด์ง€์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ๊ฐ์ž ๊ฐ™์€ ์‚ฌ์ดํŠธ์˜ ์›น ํฌ๋กค๋ง๋ถ€ํ„ฐ ํ•ด๋ณด๊ธฐ๋กœ ํ•˜๊ณ  2์‹œ๊ฐ„ ์ •๋„ ๋’ค์— ๋‹ค์‹œ ๋งŒ๋‚˜์„œ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๊ธฐ๋กœ ํ–ˆ๋Š”๋‹ค. ์šฐ๋ฆฌ ๋‘˜ ๋‹ค ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ db๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ์—ˆ๋‹ค. ๋ฌผ๋ก  ๋‘˜ ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ ๋‚ด๊ฐ€ ์ƒ๊ฐํ•ด๋ณด์ง€ ๋ชปํ–ˆ๋˜ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฑธ ๋ณด๊ณ  ๋†€๋žฌ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋Ÿฐ๊ฒŒ!! ๋ฐ”๋กœ ํŒ€ ํ”„๋กœ์ ํŠธ ๋ฌ˜๋ฏธ?! ๋ผ๋ฉฐ ใ…Ž ๋‚ด๊ฐ€ ์ƒ๊ฐ์ง€ ๋ชปํ•œ ๋ถ€๋ถ„๋„ ์ƒ๊ฐํ•ด๋ณด๊ฒŒ ๋งŒ๋“ค์–ด์คฌ๋‹ค. ๋‘˜ ๋‹ค ๊ดœ์ฐฎ์•˜์ง€๋งŒ ์ข€ ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •!

 

๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ (jinja2 ์‚ฌ์šฉ)

์–ด์ œ ์ž ๋“ค๊ธฐ ์ „์— ์ž ์‹œ ๊ณต๋ถ€ํ–ˆ๋˜ python ์›น ํ…œํ”Œ๋ฆฟ ์—”์ง„์ธ jinja2๋ฅผ ์ด์šฉํ•ด์•ผํ–ˆ๋‹ค.
๋ณต์Šต์ฐจ์›Œ์—์„œ ajax ๋กœ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ ๋ถ€ํ„ฐ ํ–ˆ๋Š”๋ฐ, ๋‚˜์ค‘์—๋Š” jinja2 ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ์ ์šฉํ•˜๋Š”๋ฐ ์• ๋ฅผ ๋จน์—ˆ๋‹ค.

 

๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„

๋ฉ”์ธ ํŽ˜์ด์ง€์— db์—์„œ ๋ถˆ๋Ÿฌ์˜จ ์ •๋ณด ์ธ๋„ค์ผ ์นด๋“œ์™€ ๊ฒ€์ƒ‰์„ ํ•ด์„œ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์•ผํ–ˆ๋‹ค.

์†”์งํžˆ ์‰ฝ๊ฒŒ ์ƒ๊ฐํ–ˆ๋‹ค. e.target.value ๋ฅผ ์จ์„œ ๋ฆฌ์•กํŠธ๋‚˜, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ช‡ ๋ฒˆ ํ•ด๋ด์„œ ์‰ฌ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ๋ฃฐ๋ฃจ๋ž„๋ผํ–ˆ๋Š”๋ฐ, ์—„์ฒญ ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค! ์˜คํ›„ ์‹œ๊ฐ„์€ ๊ทธ๋ƒฅ ํ˜ผ์ž์„œ ๋‹ค ๋‚ ๋ฆฐ ๊ฒฉ. ํ•˜ํ•˜

์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๋Š” ๋ฐ์—๋„ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ, ๊ฒ€์ƒ‰๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์•ผ์ง€๋งŒ ์ฐพ๊ฒŒ ๋˜๋Š” ๊ฒƒ, ์•„๋‹ˆ๋ฉด ๊ทธ๋ƒฅ ํ•œ ๊ธ€์ž๋ผ๋„ ์“ฐ๋ฉด ํ•ด๋‹น ์ •๋ณด๋ฅผ ์ฐพ์•„์ฃผ๋Š” ๊ฒƒ. ํ”„๋กœ์ ํŠธ๋ฅผ ๊ธฐํšํ•˜๋ฉด์„œ ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ๋””ํ…Œ์ผํ•˜๊ฒŒ ๋“ค์–ด๊ฐ”๋˜ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ์„œ ์ƒ๊ฐ์ง€ ๋ชปํ•œ ๋ถ€๋ถ„์ด์˜€๋‹ค. ์ „์‹œ ๋ฆฌ๋ทฐ ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ์šฐ๋ฆฌ๋กœ์จ ์˜์–ด์‚ฌ์ „์—์„œ ์˜๋‹จ์–ด ์ฐพ๋“ฏ์ด ์™„์„ฑ๋œ ๋‹จ์–ด๋ฅผ ๋งŒ๋“ค์–ด์„œ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ํ•˜๋‚˜ ๊ธ€์ž๋ผ๋„ ๊ฒน์น˜๋Š”๊ฒŒ ์žˆ๋‹ค๋ฉด ๋ณด์—ฌ์ฃผ๋Š” ์‹์˜ onkeyup์„ ์“ด ๊ฒ€์ƒ‰๋ฐฉ์‹์ด ๋” ๊ดœ์ฐฎ์„ ๊ฒƒ์ด๋ผ๊ณ  ํŒ๋‹จํ•ด์„œ ๊ตฌํ˜„ํ–ˆ๋‹ค.

 

 

์˜ค๋žœ๋งŒ์— ์“ฐ๋Š” jQeury ๋ฌธ๋ฒ•์ด ํ—ท๊ฐˆ๋ ค์„œ ์—„์ฒญ ๋‚œ ๋Ÿ‰์˜ error ๋ฉ”์„ธ์ง€๋“ค์„ ๋งŒ๋‚ฌ์—ˆ์ง€๋งŒ ๊ฒฐ๊ตญ์—” ๋‹ค ํ•ด๋ƒˆ๋‹ค!!

๊ทธ ์ค‘์—์„œ๋„ ์ œ์ผ ์‹œ๊ฐ„์„ ๋งŽ์ด ์žก์•„๋จน์—ˆ๋˜ ๊ฒƒ์ด ๋ฐ”๋กœ ์†์„ฑ ๊ฐ’์„ ์ฐพ์•„๋‚ด๋Š” attr() ์ด์˜€๋‹ค.

์ธ๋„ค์ผ์„ ๋‹ด์€ ์นด๋“œ div์— id๊ฐ’์œผ๋กœ ์ธ๋„ค์ผ ํƒ€์ดํ‹€์„ ๋„ฃ์–ด์คฌ๊ณ , input value๋ฅผ ๋„ฃ์—ˆ์„ ๋•Œ, ์นด๋“œ์˜ id๊ฐ’๊ณผ ๋น„๊ตํ•ด์„œ css๋ถ€๋ถ„์˜ display ๋ถ€๋ถ„์„ ์„ค์ •ํ•ด์ฃผ๋ฉด ์†์‰ฝ๊ฒŒ ๋  ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๊ณ„์† ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๊ฐ€ ๋œจ๋Š” ๊ฒƒ์ด๋‹ค.

 

โœ”attr()์€ ์š”์†Œ(element)์˜ ์†์„ฑ(attribute)์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์ถ”๊ฐ€๋ฅผ ํ•ด ์ค„ ๋•Œ ์“ด๋‹ค.

โœ”attr() vs getAttribute()

 

jQuery -> console.log( $(‘#item’).attr(‘selected’) );
JavaScript -> console.log( document.getElementById(‘item’).getAttribute(‘selected’) );

attr() ๋„ getAttribute()๋„ ์ด์šฉ๋ฐฉ๋ฒ•๊ณผ ์†์„ฑ์€ ๋˜‘๊ฐ™์€๋ฐ, attr()์„ ์ผ์„ ๋•Œ๋Š” ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ ์–ป์ง€ ๋ชปํ–ˆ๋‹ค. ๊ณ„์†ํ•ด์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๊ณ , ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์•„๋‹ค๋‹ˆ๋‹ค๊ฐ€ getAttribute()๋กœ ์‹œ์ž‘ํ•ด๋ณด์•˜๊ณ  ๋‚ด๊ฐ€ ์ฒ˜์Œ์— ์ƒ๊ฐํ–ˆ๋˜๋Œ€๋กœ ๊ฐ’์„ ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ์—ˆ๋‹ค!!

์ œ์ด์ฟผ๋ฆฌ๋ฌธ๋ฒ•๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์—์„œ ์˜ค๋Š” ์ฐจ์ด๋กœ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋‚ฌ๋˜๊ฒƒ์ด๋‹ค!

 

 

 

 

โญํšŒ๊ณ 

db๋ฅผ ๋งŒ๋“ค๊ณ  ๋ถˆ๋Ÿฌ์˜ค๊ธฐ๊นŒ์ง€๋งŒ ํ–ˆ์„ ๋•Œ๋Š” ๋ญ”๊ฐ€ ์ˆœ์กฐ๋กญ๊ฒŒ ์ด๋ฃจ์–ด์ ธ ๊ฐ€๋Š” ๊ฒƒ ๊ฐ™์•„์„œ ํ‹ˆํ‹ˆ์ด ๊ฐ•์˜๋„ ๋ณด๋ฉด์„œ ํ•ด์•ผ์ง€๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ, ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๊ตฌํ˜„์—์„œ ์—„์ฒญ ๋ฒ„๋ฒ…์ด๋‹ค๋ณด๋‹ˆ ๊ณ„ํšํ–ˆ๋˜ ๊ฐ•์˜๋ฅผ ์˜ค๋Š˜ ์•ˆ์— ๋‹ค ๋ณด์ง€ ๋ชปํ–ˆ๋‹ค. ํ‘ํ‘

ํŒ€ ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰ํ•˜๋‹ค๋ณด๋‹ˆ ๋ชจ๋ฅด๊ฒ ์œผ๋ฉด ๊ตฌ๊ธ€๋ง๋„ ํ•˜์ง€๋งŒ ๋ฐ”๋กœ ํŒ€์›์—๊ฒŒ๋„ ์•„๋Š” ์‚ฌ๋žŒ์ด ์žˆ๋Š”์ง€ ๋ฌผ์–ด๋ณด๊ณ  ์‹œ์ž‘ํ•˜๋‹ˆ ์ด ์–ผ๋งˆ๋‚˜ ์ข‹์€๊ฐ€~ ใ…Žใ…Žใ…Ž ํ˜ผ์žํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ์„œ ์™ธ๋กญ์ง€๋„ ์•Š๊ณ  ์œผ์Œฐ์œผ์Œฐํ•˜๋Š” ๋ถ„์œ„๊ธฐ๊ฐ€ ๋™๊ธฐ๋ถ€์—ฌ๋„ ํ•ด์ค˜์„œ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. ํ•จ๊ป˜ํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ์–ด์จ‹๋“  ์ฃผ์–ด์ง„ ์ž„๋ฌด๊ฐ€ ์žˆ๋‹ค๋ณด๋‹ˆ ์ฑ…์ž„๊ฐ๋„ ๋”๋”๋”๋”๋”๋” ๋งŽ์ด ์ƒ๊ฒจ๋‚œ๋‹ค.

 

 

 

728x90