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

์ „์ฒด ๊ธ€50

[๋””์ž์ธํŒจํ„ด] ์ „๋žต ํŒจํ„ด ๊ฐ์ฒด์˜ ํ–‰์œ„๋ฅผ ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด ์บก์Šํ™”ํ•˜์—ฌ ๋™์ ์œผ๋กœ ํ–‰์œ„๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ํŒจํ„ด ์žฅ์ :์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ : ์„œ๋กœ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‰ฝ๊ฒŒ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ ๋†’์•„์ง์žฌ์‚ฌ์šฉ์„ฑ : ํŠน์ • ํ–‰๋™(์ „๋žต)์„ ๋ณ„๋„์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์—ฌ๋Ÿฌ ๊ฐ์ฒด์—์„œ ์žฌ์‚ฌ์šฉ๋Ÿฐํƒ€์ž„์—์„œ ์ „๋žต ์„ ํƒ : ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜(์ „๋žต)์„ ๊ตฌํ˜„ ๊ฐ€๋Šฅ, ์ด๋ฅผ ๋Ÿฐํƒ€์ž„์— ์„ ํƒํ•˜๊ฑฐ๋‚˜ ๊ต์ฒด๋‹จ์ :ํด๋ž˜์Šค ์ˆ˜ ์ฆ๊ฐ€ : ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ํด๋ž˜์Šค์˜ ์ˆ˜ ์ฆ๊ฐ€ํ•จ. ์ด๋กœ์ธํ•ด ์ฝ”๋“œ ๋ณต์žกํ•ด์งํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ : ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ๊ด€๋ฆฌ ๋กœ์ง ์ถ”๊ฐ€๋จ์˜์กด์„ฑ ์ฆ๊ฐ€ : ์ž˜๋ชป ์„ค๊ณ„ ์‹œ ์œ ์ง€๋ณด์ˆ˜ ์–ด๋ ค์›€์˜ˆ์‹œ ์ฝ”๋“œ# ์ „๋žตclass MusicStrategy: def recommend_song(self): pass# ๋ฐœ๋ผ๋“œclass Ballad(.. 2024. 9. 10.
[๋””์ž์ธํŒจํ„ด] MVVM ํŒจํ„ด MVVM ํŒจํ„ด์†Œํ”„ํŠธ์›จ์–ด ๋””์ž์ธ ํŒจ๋˜, UI ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ. ๋ทฐ(View)์™€ ๋ชจ๋ธ(Model) ์‚ฌ์ด์˜ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ๋„์ž…Model : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๊ด€๋ฆฌView : ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ์š”์†ŒViewModel : View์™€ Model ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ค‘๊ณ„ํ•˜๊ณ , ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์„ ํ†ตํ•ด View์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌMVC์™€ MVVM์˜ ์ฐจ์ด์ ์‚ฌ์šฉ์ž ์ž…๋ ฅ ์ฒ˜๋ฆฌ:MVC: ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ Controller๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌMVVM: ์‚ฌ์šฉ์ž ์ž…๋ ฅ์€ ViewModel์ด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ:MVC : ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์ด ์ž๋™ X, Controller๋ฅผ ํ†ตํ•ด ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌMVVM : ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์ด ์ž๋™, View์™€ ViewModel ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๊ฐ€ ํ”„๋ ˆ์ž„์›Œํฌ์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ์˜ˆ์‹œ ์ฝ”๋“œ# Mod.. 2024. 9. 9.
[JavaScript] ๊ฐ์ฒด ๐Ÿ“– ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ์ •์˜ ์ž๋ฐ”๋Š” ์ƒ์†์„ ์ œ์–ด์™€ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์˜ค๋กœ์ง€ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ(๊ณต์œ )์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ๐Ÿ“•๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹: ES3 var pobj ={ x: 100, y: 200, myShape: 'Player', display: function(){ document.write(""+this.x+", "+this.y+"="+this.myShape+"") } }; pobj.display(); ๐Ÿ“— ์ƒ์„ฑ์žํ•จ์ˆ˜ ํŒจํ„ด์˜ ๊ฐ์ฒด ์ƒ์„ฑ: ES5 // java: ClassType object = new ClassType(); function Person(){ // ์ƒ์„ฑ์žํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ์ƒ๊ฐ. // ์ธ์Šคํ„ด์Šค์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ์ดˆ๊ธฐํ™” this.x= 100; // ํ•จ์ˆ˜์˜ ์ƒ์„ฑ์žํ•จ์ˆ˜ .. 2024. 1. 17.
[DB] ์ธ๋ฑ์Šค( Index ) ๐Ÿ“‘ ์ธ๋ฑ์Šค( Index ) ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋‹ค. ๋น ๋ฅธ ํƒ์ƒ‰ ์†๋„๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ๐Ÿ“‘ ์ธ๋ฑ์Šค ์ƒ์„ฑ ๊ณ ๋ ค์‚ฌํ•ญ WHERE์ ˆ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ ์กฐ์ธ์ด ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ ๋‹จ์ผ ํ…Œ์ด๋ธ”์— ์ธ๋ฑ์Šค ๋งŽ์œผ๋ฉด ์†๋„๊ฐ€ ๋Š๋ ค์ง„๋‹ค. (3~4๊ฐœ ๊ถŒ์žฅ) ๐Ÿ“‘ ์ธ๋ฑ์Šค์˜ ์ข…๋ฅ˜ ์ž๋™์ธ๋ฑ์Šค: ๊ธฐ๋ณธํ‚ค(PK), UNIQUE ๊ทœ์น™์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ์ธ๋ฑ์Šค์ด๋‹ค. ์ˆ˜๋™์ธ๋ฑ์Šค: CREATE INDEX ๋ช…๋ น์œผ๋กœ ์ƒ์„ฑ๋œ ์ธ๋ฑ์Šค์ด๋‹ค. ๐Ÿ‘‰ ํ…Œ์ด๋ธ”์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘๊ฑฐ๋‚˜, ์ž์ฃผ ๊ฐฑ์‹ ๋  ๋•Œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€์•Š๋Š”๋‹ค. ๐Ÿ“‘ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด ํƒ์ƒ‰ ์œ„์˜ ๊ฒฐ๊ณผ๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „ ๊ฒฐ๊ณผ์ด๊ณ , ๋ฐ‘์˜ ๊ฒฐ๊ณผ๊ฐ€ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•œ ํƒ์ƒ‰ ๊ฒฐ๊ณผ์ด๋‹ค. COST๋ฅผ ๋ณด๋ฉด 2์”ฉ ๋‚ด๋ ค๊ฐ”๋‹ค. ๐Ÿ‘‰ ์ธ๋ฑ์Šค์˜ ์‚ฌ์šฉํ•  ์‹œ ํƒ์ƒ‰์˜ ํšจ์œจ์„ ๋น„๊ตํ•ด๋ณด์•˜์„.. 2024. 1. 3.
[DB] ๋ทฐ VIEW ๐Ÿ–ผ ๋ทฐ( View ) ํ…Œ์ด๋ธ”์„ ํ•ฉ์ณ์„œ ๋งŒ๋“  ๊ฐ€์ƒ์˜ ํ…Œ์ด๋ธ”์ด๋‹ค. ํŽธ๋ฆฌ์„ฑ, ์žฌ์‚ฌ์šฉ์„ฑ: ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ณต์žกํ•œ ์งˆ์˜๋ฅผ ๋ทฐ๋กœ ๋ฏธ๋ฆฌ ์ •์˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณด์•ˆ์„ฑ: ์ค‘์š”ํ•œ ์งˆ์˜(ex. ๊ฐœ์ธ์ •๋ณด)์˜ ๊ฒฝ์šฐ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ œ๊ณตํ•˜๊ฑฐ๋‚˜, ์‚ฌ์šฉ์ž๋ณ„๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์„ ๋ณ„ํ•ด ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค. ๋…๋ฆฝ์„ฑ: ์›๋ณธ ํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๊ฐ€ ๋ณ€ํ•ด๋„ ์‘์šฉํ•ด ์˜ํ–ฅ์ฃผ์ง€ ์•Š๋„๋กํ•˜๋Š” ๋…ผ๋ฆฌ์  ๋…๋ฆฝ์„ฑ์ด ์ œ๊ณต๋œ๋‹ค. ๐Ÿ–ผ ๋ทฐ์˜ ํŠน์ง• ์›๋ณธ ๋ฐ์ดํ„ฐ ๊ฐ’์— ๋”ฐ๋ผ ๊ฐ™์ด ๋ณ€ํ•œ๋‹ค.(์—ฐ๊ฒฐ) ๋…๋ฆฝ์ ์ธ ์ธ๋ฑ์Šค ์ƒ์„ฑ ์–ด๋ ต๋‹ค. ์‚ฝ์ž…, ์‚ญ์ œ, ๊ฐฑ์‹  ์—ฐ์‚ฐ์— ๋งŽ์€ ์ œ์•ฝ์ด ์กด์žฌํ•œ๋‹ค. SELECT * FROM BOOK WHERE BOOKNAME LIKE '%์ถ•๊ตฌ%'; -- ๋ทฐ ์ƒ์„ฑ CREATE VIEW VW_BOOK AS SELECT * FROM BOOK WHERE BOOKNAME LIKE '%.. 2024. 1. 3.
[DB] ์ •๊ทœํ™” ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ์œ„ํ•ด์„œ ์ •๊ทœํ™”๋ฅผ ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ€์žฅ ํฐ ๋ชฉ์ ์€ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์™œ? ์ค‘๋ณต์ด ์žˆ์œผ๋ฉด ์ด์ƒ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค. ๐ŸŽฒ ์ด์ƒ ํ˜„์ƒ ( Anomaly ) ์‚ญ์ œ์ด์ƒ: ์—ฐ์‡„์  ์‚ญ์ œ ๋ฌธ์ œ ๋ฐœ์ƒ ์‚ฝ์ž…์ด์ƒ: NULL ๊ฐ’ ๋ฌธ์ œ ๋ฐœ์ƒ ์ˆ˜์ •์ด์ƒ: ๋ถˆ์ผ์น˜ ๋ฌธ์ œ ๋ฐœ์ƒ ๐ŸŽฒ ํ•จ์ˆ˜ ์ข…์†์„ฑ( Functional Dependency ) ์–ด๋–ค ์†์„ฑ์˜ ๊ฐ’์„ ์•Œ๋ฉด ๋‹ค๋ฅธ ์†์„ฑ ๊ฐ’์ด ์œ ์ผํ•˜๊ฒŒ ์ •ํ•ด์ง€๋Š” ์˜์กด ๊ด€๊ณ„๋ฅผ ์ข…์†ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ex. ํ•™์ƒ ๋ฒˆํ˜ธ๋ฅผ ์•Œ๋ฉด ํ•™์ƒ์ด๋ฆ„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•™์ƒ๋ฒˆํ˜ธ๋กœ ํ•™์ƒ์ด ์ˆ˜๊ฐ•ํ•˜๋Š” ๊ฐ•์ขŒ์ด๋ฆ„์„ ์œ ์ผํ•˜๊ฒŒ ์•Œ ์ˆ˜๋Š” ์—†๋‹ค. (์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์ˆ˜๊ฐ•ํ•  ์ˆ˜ ๋„ ์žˆ๊ธฐ๋•Œ๋ฌธ์—) X ๊ฐ๊ฐ์˜ ๊ฐ’์ด Y์˜ ๊ฐ’ ํ•œ ๊ฐœ์™€ ๋Œ€์‘์ด ๋˜๋ฉด ‘X๋Š” Y๋ฅผ ํ•จ์ˆ˜์ ์œผ๋กœ ๊ฒฐ์ •ํ•œ๋‹ค’, X→Y๋กœ ํ‘œ๊ธฐํ•œ๋‹ค. X๊ฐ€ ๊ฒฐ์ •์ž์ด๋‹ค. * ํ•จ์ˆ˜ .. 2024. 1. 2.
728x90