์ ์ฒด ๊ธ (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์ด๋ผ๊ณ ํ๋ฉฐ, ์ธํฐ.. ์ด์ 1 2 3 4 5 6 ยทยทยท 14 ๋ค์