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

์ „์ฒด ๊ธ€

(112)
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค / JOIN JOINํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ๊ธฐ๋ฒ•-- ๊ธฐ๋ณธ ์ฟผ๋ฆฌ๋ฌธselect *from A____ join B on A.pk = B.fk INNER JOIN๋‘ ํ…Œ์ด๋ธ” ๊ณตํ†ต์˜ row๋ฅผ ์กฐ์ธ (๊ต์ง‘ํ•ฉ) SQL๋ฌธ์œผ๋กœ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.inner join์˜ ๊ฒฝ์šฐ inner๋ฅผ ์ƒ๋žตํ•ด๋„ ๋œ๋‹คselect * from book bjoin loan l on b.call_number = l.call_numberorder by b.call_number LEFT JOIN์™ผ์ชฝ ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ ๋กœ์šฐ๋ฅผ ์กฐ์ธ. left outer join์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.inner join์—์„œ๋Š” A์˜ pk์™€ B์˜ fk์˜ ๊ต์ง‘ํ•ฉ ๋ถ€๋ถ„์ด ์„ ํƒ๋๋‹ค๋ฉด,left join์—์„œ๋Š” A๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์กฐ์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— B์˜ fk์— ์—†๋”๋ผ๋„ A์˜ pk์— ์žˆ๋‹ค๋ฉด ํฌํ•จํ•ด..
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค / ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์ •๊ทœํ™”Normalization, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ •๋ฆฌํ•˜๋Š” ๊ณผ์ •๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๊ณ , ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ค€์ˆ˜ํ•˜๋ฉฐ ์ด์ƒ ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•œ๋‹ค. ์ •๊ทœํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ๊ฐœ๋…๊ฒฐ๊ณผ1NF (์ œ1์ •๊ทœํ˜•)์ปฌ๋Ÿผ์˜ ๊ฐ’์€ ์›์ž๊ฐ’(Atomic Value)๋งŒ ๊ฐ€์ ธ์•ผ ํ•จ๋ชจ๋“  ์ปฌ๋Ÿผ์ด *์›์ž๊ฐ’์„ ๊ฐ€์ง=> ์ค‘๋ณต๋œ ์ปฌ๋Ÿผ ์ œ๊ฑฐ=> ๋‹ค์ค‘๊ฐ’ ์ œ๊ฑฐ2NF(์ œ2์ •๊ทœํ˜•)๋ถ€๋ถ„ ํ•จ์ˆ˜ ์ข…์† ์ œ๊ฑฐ๊ธฐ๋ณธํ‚ค์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹Œ ์ „์ฒด์— ์ข…์†๋œ ๋น„๊ธฐ๋ณธ ์†์„ฑ๋งŒ ์กด์žฌ=> ๋ณตํ•ฉํ‚ค์ผ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์ข…์†์„ฑ ์ œ๊ฑฐ3NF(์ œ3์ •๊ทœํ˜•)์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์† ์ œ๊ฑฐ๋น„๊ธฐ๋ณธ ์†์„ฑ์ด ๋‹ค๋ฅธ ๋น„๊ธฐ๋ณธ ์†์„ฑ์— ์˜์กดํ•˜์ง€ ์•Š์Œ=> ์†์„ฑ ๊ฐ„ ์ข…์†์„ฑ ์ œ๊ฑฐ, ๊ฐฑ์‹  ์ด์ƒ ๋ฐฉ์ง€BCNF(๋ณด์ด์Šค-์ฝ”๋“œ ์ •๊ทœํ˜•)๊ฒฐ์ •์ž(Determinant)๊ฐ€ ํ›„๋ณดํ‚ค๋ชจ๋“  ๊ฒฐ์ •์ž๊ฐ€ ํ›„๋ณดํ‚ค=>ํ›„๋ณดํ‚ค๊ฐ€ ์•„๋‹Œ ์†์„ฑ์— ์˜ํ•ด ๊ฒฐ..
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค / SQL ๊ตฌ๋ฌธ ๋ฌธ๋ฒ• SQLStructured Query Language, ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ์–ธ์–ดSQL์€ ANSI์™€ ISO์—์„œ ํ‘œ์ค€ํ™”๋œ ์–ธ์–ด๋กœ, ๋Œ€๋ถ€๋ถ„์˜ RDBMS์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ œ๊ณตํ•จ DDL(Data Definition Language)๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ณ  ์œ„ํ•œ ์–ธ์–ด create : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ…Œ์ด๋ธ” ๋“ฑ ์ƒ์„ฑalter : ํ…Œ์ด๋ธ” ์ˆ˜์ •drop : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ํ…Œ์ด๋ธ” ์‚ญ์ œtruncate : ํ…Œ์ด๋ธ” ์ดˆ๊ธฐํ™”rename : ํ…Œ์ด๋ธ” ์ด๋ฆ„ ๋ณ€๊ฒฝ DML(Data Manipulation Language)๋ฐ์ดํ„ฐ ์กฐํšŒ, ์กฐ์ž‘์„ ์œ„ํ•œ ์–ธ์–ดselect : ๋ฐ์ดํ„ฐ ์กฐํšŒinsert : ๋ฐ์ดํ„ฐ ์‚ฝ์ž…update : ๋ฐ์ดํ„ฐ ์ˆ˜์ •delete : ๋ฐ์ดํ„ฐ ์‚ญ์ œ DCL(Data Contr..
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค / ๊ฐœ์š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์ŠคDBMS(Database Management System), ๋ฐ์ดํ„ฐ ๋ชจ์Œ์„ ๋ณด๋‹ค ํŽธ๋ฆฌํ•˜๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” SW ๋ฐ์ดํ„ฐ๋ฅผ ์—„๋ฐ€ํ•˜๊ฒŒ ๊ธฐ๋กํ•ด ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€ํ‚ด์šฉ๋„์— ๋งž๊ฒŒ ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‹ค ๋™์‹œ ์ ‘๊ทผ ์ด์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํŠธ๋žœ์žญ์…˜ ๊ฐœ๋… ๋„์ž… ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜1) ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)๊ด€๊ณ„ํ˜• ๋ชจ๋ธ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ตฌ์กฐํ™”๋œ ํ…Œ์ด๋ธ” ํ˜•์‹ : ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ €์žฅ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ : ์ •ํ˜•ํ™”๋œ ํ…Œ์ด๋ธ”๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ •ํ™•์„ฑ, ์ผ๊ด€์„ฑ, ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•จ๋ณต์žกํ•œ ์ฟผ๋ฆฌ์— ์œ ๋ฆฌ์ข…๋ฅ˜์˜ค๋ผํด์ „ ์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ƒ์šฉ RDBMS.๋Œ€๊ทœ๋ชจ ๊ธฐ์—… ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์ •๋ถ€์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฉฐ ๊ณ ์„ฑ๋Šฅ, ๊ณ ๊ฐ€์šฉ์„ฑ, ๊ฐ•๋ ฅํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จMSSQLMicrosoft์—์„œ ๊ฐœ๋ฐœํ•œ R..
Node.js / ํ† ํฐ(Token) JWT(JSON Web Token)์ธํ„ฐ๋„ท ํ‘œ์ค€ ์ธ์ฆ ๋ฐฉ์‹์œผ๋กœ, JSON ๊ฐ์ฒด์— ์ธ์ฆ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ํ† ํฐ์œผ๋กœ ์•”ํ˜ธํ™”ํ•œ ๊ฒƒ* ํ† ํฐ(Token) : ์ถœ์ž…์ฆ ์—ญํ• ์„ ํ•˜๋Š” ๋„๊ตฌ๋กœ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์†Œ์ง€ํ•˜๊ณ  ์žˆ์Œ ๊ตฌ์กฐ ๊ฒ€์ฆ ๋ฐฉ์‹Header์™€ Payload๋ฅผ ๊ฐ๊ฐ base64๋กœ ์ธ์ฝ”๋”ฉ์ธ์ฝ”๋”ฉํ•œ Header์™€ Payload๋ฅผ ํ•ฉ์ณ์„œ, Secret(์„œ๋ฒ„๋งŒ ์•Œ๊ณ  ์žˆ๋Š” ๋น„๋ฐ€ ํ‚ค)์œผ๋กœ ์„œ๋ช…(Signature ์ƒ์„ฑ)์„œ๋ฒ„๋Š” ์ „๋‹ฌ๋ฐ›์€ JWT์˜ Signature๊ฐ€ Secret์œผ๋กœ ๋‹ค์‹œ ๊ณ„์‚ฐํ•œ ๊ฒƒ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธ → ์ผ์น˜ํ•˜๋ฉด ์œ„์กฐ๋˜์ง€ ์•Š์€ ์œ ํšจํ•œ ํ† ํฐ์œผ๋กœ ํŒ๋‹จ* ์ด ๋•Œ base64 ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์€ ์–ผ๋งˆ๋“ ์ง€ ๋””์ฝ”๋”ฉ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, payload์— ๋ฏผ๊ฐํ•œ ์ •๋ณด๋ฅผ ๋„ฃ์ง€ ์•Š๋„๋ก ํ•ด์•ผํ•œ๋‹ค. ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ํ† ํฐ์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ..
Node.js / ์„ธ์…˜(Session) ์„ธ์…˜์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ์— ์„ฑ๊ณตํ•œ ์ƒํƒœ ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ(Session-based authentication)์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆ์— ์„ฑ๊ณตํ•œ ์ƒํƒœ๋ฅผ ์„œ๋ฒ„์— ์ €์žฅํ•ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹ ์‹ค์Šต์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ ํ๋ฆ„์„ ๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด ํ™•์ธํ•ด๋ณด๋Š” ์‹ค์Šต์ด๋‹ค.์ƒ์„ฑํ•  ํŒŒ์ผ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ƒ์„ฑํ•  ํŒŒ์ผ์€ index.html, style.css, login.js, server.js index.html๋”๋ณด๊ธฐ ๋กœ๊ทธ์ธ ์‹ค์Šต ์•„์ด๋”” ๋น„๋ฐ€๋ฒˆํ˜ธ ๋กœ๊ทธ์ธ ์œ ์ € ์ด๋ฆ„ : ์œ ์ € ์ •๋ณด : ๋กœ๊ทธ์•„์›ƒ style.css๋”๋ณด๊ธฐbody { padding: 0 20px;}label { display: inline..
Node.js / ์ฟ ํ‚ค(Cookie) ์ฟ ํ‚ค(Cookie)์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ์ „์†กํ•˜๋Š” ์ž‘์€ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ.๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ๊ทธ ๋ฐ์ดํ„ฐ ์กฐ๊ฐ๋“ค์„ ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ๋™์ผํ•œ ์„œ๋ฒ„์— ์žฌ ์š”์ฒญ ์‹œ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์‹์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.์ด๋ฅผ ์ด์šฉํ•ด HTTP์˜ ๋ฌด์ƒํƒœ์„ฑ์„ ๋ณด์™„ํ•ด์ค€๋‹ค. ์ฟ ํ‚ค์˜ ํ™œ์šฉ ์‚ฌ๋ก€์„ธ์…˜ ๊ด€๋ฆฌ(Session management) : ์„œ๋ฒ„์— ์ €์žฅํ•ด์•ผ ํ•  ๋กœ๊ทธ์ธ, ์žฅ๋ฐ”๊ตฌ๋‹ˆ, ๊ฒŒ์ž„ ์Šค์ฝ”์–ด ๋“ฑ์˜ ์ •๋ณด ๊ด€๋ฆฌ๊ฐœ์ธํ™”(Personalization) : ์‚ฌ์šฉ์ž ์„ ํ˜ธ, ํ…Œ๋งˆ ๋“ฑ์˜ ์„ธํŒ…ํŠธ๋ž˜ํ‚น(Tracking) : ์‚ฌ์šฉ์ž ํ–‰๋™์„ ๊ธฐ๋กํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ์šฉ๋„ ์‹ค์Šต* express๋กœ ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ , axios๋กœ ์„œ๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ•ด ์ฟ ํ‚ค๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ์‹ค์Šต์ด๋‹ค. ์ƒ์„ฑํ•  ํŒŒ์ผ์€ index.html, cookie.js, server.js index.html ์ฟ ํ‚ค ์ถ”๊ฐ€ ์ฟ ..
Node.js / ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ๋„คํŠธ์›Œํฌ์˜ ์ข…๋ฅ˜ ๋„คํŠธ์›Œํฌ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฐ˜๊ฒฝ, ์†๋„์— ๋”ฐ๋ผ LAN, MAN, WAN์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. LAN(Local Area Network)MAN (Metropolitan Area Network)WAN(Wide Area Network)๋ฒ”์œ„์ข์Œ(์ฃผ๋กœ ์ง‘, ์‚ฌ๋ฌด์‹ค, ๊ฑด๋ฌผ, ์บ ํผ์Šค ๋‚ด์˜ ์ œํ•œ๋œ ์˜์—ญ)๋„์‹œ๋‚˜ ๋Œ€๋„์‹œ์˜ ํ†ต์‹ ๋ง์„ ์˜๋ฏธ๋„“์Œ(๊ตญ๊ฐ€๋‚˜ ๋Œ€๋ฅ™ ๊ฐ„์˜ ๋ฒ”์œ„)๊ตฌ์„ฑ๋‹จ์ˆœ ๋ณต์žก์†๋„๋น ๋ฆ„ ๋А๋ฆผ * LAN : ์ •ํ™•ํžˆ๋Š” ๋™์ผํ•œ Subnet Mask๋ฅผ ์ด์šฉํ•œ๋‹ค๋ฉด ๊ทผ๊ฑฐ๋ฆฌ ํ†ต์‹ ๋ง์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— LAN์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.* MAN : ๋‘ ๊ฐœ ์ด์ƒ์˜ LAN์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ๊ตฌ์„ฑ๋˜๋ฉฐ, ๋ผ์šฐํ„ฐ / ๋ธŒ๋ฆฟ์ง€ ๋“ฑ์œผ๋กœ ์—ฐ๊ฒฐ๋œ๋‹ค. * WAN : ๋„“์€ ์ง€๋ฆฌ์  ์˜์—ญ์— ๊ฑธ์ณ ๋ถ„์‚ฐ๋œ ๋ชจ๋“  ๋Œ€๊ทœ๋ชจ ๋„คํŠธ์›Œํฌ๋ฅผ WAN์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ธํ„ฐ..