๐ŸŒš Back ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ

ํ•ด๋‹น ๊ธ€ 33๊ฑด

์›นํŒฉ(module bundler) ์“ฐ๋Š” ์ด์œ  2000๋…„๋Œ€ ์ดˆ๋ฐ˜์˜ ์›นํŽ˜์ด์ง€๋Š” ๊ฐ ํŽ˜์ด์ง€๋งˆ๋‹ค ์ƒˆ๋กœ์šด html์„ ์š”์ฒญํ•ด์„œ ํ™”๋ฉด์„ ๋‚˜ํƒ€๋ƒˆ๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” DOM์„ ์กฐ์ž‘ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์—ญํ• ๋งŒ ํ–ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— html์˜ scriptํƒœ๊ทธ์— ๋„ฃ๋Š” ๊ฒƒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ–ˆ๋‹ค. ajax๊ฐ€ ์œ ํ–‰ํ–ˆ์„ ๋•Œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๋น„์ค‘์ด ์กฐ๊ธˆ ๋” ์ปค์กŒ์ง€๋งŒ ๊ทธ๋ž˜ ๋ด์•ผ ํŽ˜์ด์ง€๋‹น ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ๋ช‡ ๊ฐœ๋ฉด ์ถฉ๋ถ„ํ–ˆ๋‹ค SPA(single page app)๋Š” ํ•˜๋‚˜์˜ html์— ์ˆ˜์‹ญ, ์ˆ˜๋ฐฑ ๊ฐœ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋” ์ด์ƒ ๊ธฐ์กด ๋ฐฉ์‹์ด ํ†ตํ• ๋ฆฌ ์—†์—ˆ๋‹ค. ์œ„์˜ ๋ฐฉ์‹์œผ๋กœ๋Š” ๊ณ„์† ๋Š˜์–ด๋‚˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ํž˜๋“ค๋‹ค. ๋˜ํ•œ ์„ ์–ธ๋˜๋Š” ์ˆœ์„œ๋„ ์‹ ๊ฒฝ ์จ์•ผ ํ•˜๊ณ , ๊ธฐ์กด์— ์ƒ์„ฑ๋œ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๋ฎ์–ด์“ฐ๋Š” ์œ„ํ—˜๋„ ์กด์žฌํ•œ๋‹ค. ๋ชจ๋“ˆ ์‹œ์Šคํ…œ์ด ํ•„์š”ํ•˜๋‹ค ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ..

6.0 passport js ์‚ฌ์šฉ์ž ์ธ์ฆ ๊ตฌํ˜„์‹œ์ผœ์ฃผ๋Š” ๋ฏธ๋“ค์›จ์–ด ์ธ์ฆ์ด๋ž€ ๋ธŒ๋ผ์šฐ์ € ์ƒ์— ์ฟ ํ‚ค๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด, ๊ทธ ์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด์„œ ์‚ฌ์šฉ์ž ID๋“ฑ์„ ์•Œ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๊ณ , Passport๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž๋™์œผ๋กœ ์ฟ ํ‚ค๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ธ์ฆ์ด ์™„๋ฃŒ๋œ user object๋ฅผ controller์— ๋„˜๊ฒจ์ค€๋‹ค. ์ฟ ํ‚ค์—๋Š” ๋ชจ๋“  request์— ๋Œ€ํ•ด ๋ฐฑ์•ค๋“œ๋กœ ์ „์†ก๋  ์ •๋ณด๋“ค์ด ๋‹ด๊ฒจ ์žˆ๋‹ค. passport์—ญํ•  ์ฟ ํ‚ค ์ƒ์„ฑ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ ์œ ์ €์—๊ฒŒ ํ•ด๋‹น ์ฟ ํ‚ค๋ฅผ ์ „๋‹ฌ pssport integration passport.autheriface('strategy')์ž‘๋™ ํ›„ req.user๊ฐ€ ์ƒ๊ธฐ๋ฉฐ, ๊ทธ๊ฒƒ์€ ํ˜„์žฌ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋œ๋‹ค. passport local mongoose npm install passport-local-mongoose ์‚ฌ์šฉ์ž ..

์Šคํ‚ค๋งˆ(๊ตฌ์กฐ์  ๊ฐœ๋…, ๋ฐ์ดํ„ฐ ํ˜•ํƒœ ๋งŒ๋“ค๊ธฐ) : Mongoose์—๊ฒŒ ๋ฐ์ดํ„ฐ(=๋‹คํ๋จผํŠธ)๋ฅผ ์–ด๋–ค ๊ตฌ์กฐ๋กœ ์ €์žฅํ•ด์•ผํ• ์ง€ ์•Œ๋ ค์ฃผ๋Š” ๊ฐ์ฒด์ด๋‹ค. ๋ชจ๋ธ(= document name) : ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์Šคํ‚ค๋งˆ๋กœ ๊ตฌ์กฐ์  ์„ค๊ณ„๋ฅผ ํ•˜๊ณ  ๋ชจ๋ธ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ปฌ๋ ‰์…˜(์ถ”์ƒ์  ๊ฐœ๋…) : Document(๋ฐ์ดํ„ฐ)๊ฐ€ 1๊ฐœ์ด์ƒ ๋ชจ์—ฌ ์ด๋ฃจ์–ด์ง€๋Š” ๊ฒƒ์ด Collection์ด๋‹ค. ์ปฌ๋ ‰์…˜์€ ๋ณ„๋„์˜ ์Šคํ‚ค๋งˆ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋ชจ๋“  ํ•„๋“œ๊ฐ€ required=true๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ์ปฌ๋ ‰์…˜ ์•ˆ์— ์žˆ๋Š” Document๋Š” ๋ชจ๋‘ ๋‹ค๋ฅธ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. Collection์€ ์—ฌ๋Ÿฌ๊ฐœ ๋งŒ๋“ค์–ด์„œ ์„ฑ๊ฒฉ์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ๋ฌธ์„œ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ํšจ์œจ์ ์ด๋‹ค. modelsํด๋” models ํด๋”์— ์Šคํ‚ค๋งˆ ๋ณ„๋กœ js ํŒŒ์ผ๋“ค๋กœ ๋งŒ๋“ ๋‹ค. //Video.js..

1. Middleware๋ž€? 1) HTPP ์š”์ฒญ์—์„œ ์‹œ์ž‘ํ•ด, ์ตœ์ข… ์‘๋‹ต์œผ๋กœ ๋ผ์šฐํŒ…ํ•˜๊ธฐ ์ „์˜ ์ค‘๊ฐ„ ๋‹จ๊ณ„๋ฅผ ๋งํ•œ๋‹ค 2) HTTP ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ˆœ๊ฐ„ ์‹œ์ž‘๋œ๋‹ค. 3) HTTP ์š”์ฒญ๊ณผ ์‘๋‹ต ์‚ฌ์ด์— ๋‹จ๊ณ„๋ณ„ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜๋‹ค. 4) HTTP ์š”์ฒญ ๊ฐ์ฒด๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜, ์‘๋‹ต ๊ฐ์ฒด๋ฅผ ์ฒ˜๋ฆฌ, ๋‹ค์Œ ๋ฏธ๋“ค์›จ์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. 5) HTTP ์‘๋‹ต์ด ์ตœ์ข…์ ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ๋  ๋•Œ๊นŒ์ง€, ๋ฏธ๋“ค์›จ์–ด ๋™์ž‘ ์‚ฌ์ดํด์ด ์‹คํ–‰๋œ๋‹ค. 6) ์ตœ์ข… ์‘๋‹ต์œผ๋กœ ๊ฐ€์ง€ ๋ชปํ•˜๊ฒŒ ์—ฐ๊ฒฐ์„ ๋Š์„ ์ˆ˜๋„ ์žˆ๋‹ค. ๋ฏธ๋“ค์›จ์–ด ์„ ์–ธํ•˜๊ธฐ const middleware = (req, res, next) => { next(); } req, res, next๋ฅผ ๊ฐ€์ง„ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ํ•ด๋‹น ํ•จ์ˆ˜๋Š” ๋ฏธ๋“ค์›จ์–ด๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. - req: HTTP ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด, HTTP ..

1. Express๋ž€? Node.js๋กœ ์„œ๋ฒ„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ ๋ผ์šฐํŒ…๊ณผ ๋ฏธ๋“ค์›จ์–ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉฐ, ์—„์ฒญ๋‚˜๊ฒŒ ์•ˆ์ •์ ์ด๋‹ค.โ€‹ ์›น ํ”„๋ ˆ์ž„ ์›Œํฌ: ์›น ์„œ๋น„์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด, HTTP ์š”์ฒญ, ์‘๋‹ต, ๋ผ์šฐํŒ…, HTML Templating ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ํˆด์ด๋‹ค. ๋ผ์šฐํŒ…: HTTP ์š”์ฒญ URL์— ํ•ด๋‹นํ•˜๋Š” ์•Œ๋งž์€ ์‘๋‹ต์„ ๋ณด๋‚ด์ฃผ๋Š” ๊ฒฝ๋กœ๋ฅผ ๋ฏธ๋ฆฌ ์„ค์ •ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ 2. Express ์„ค์น˜ $ npm install express $ npx express-generator my-web express-generator - ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ๋ณธ๊ตฌ์กฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. - ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์ดํ›„์—” ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— npx๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ๋œ๋‹ค. ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ app.js: Express.j..

1. Node.js๋ž€? JavaScript๋Š” ๋ธŒ๋ผ์šฐ์ €์— ๋‚ด์žฅ๋˜์–ด ์‚ฌ์šฉ๋˜๋Š” ์–ธ์–ด์˜€๋‹ค. Node.js๋Š” JavaScript๋ฅผ ๋ธŒ๋ผ์šฐ์ € ๋ฐ–์œผ๋กœ ๊ฐ€์ง€๊ณ  ๋‚˜์™”๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๊ณ , ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์›น ์Šคํฌ๋ ˆํผ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ •๋ณด๋“ค์„ ์ˆ˜์ง‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋๋‹ค. ๋‚˜์•„๊ฐ€ Electron์„ ํ†ตํ•ด HTML, CSS, JS๋กœ ๋ฐ์Šคํฌํƒ‘์šฉ APP์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ฒŒ๋๋‹ค. 2. ๋ˆ„๊ฐ€ ์“ธ๊นŒ? ๋Œ€ํ‘œ์ ์ธ ๊ธฐ์—…์œผ๋กœ paypal, uber, netflix๋“ฑ์ด ์žˆ๋‹ค. ๋ฐฑ์•ค๋“œ ๊ฐœ๋ฐœ์€ ํ•œ ๊ฐ€์ง€ ์–ธ์–ด๊ฐ€ ๋ฉ”์ธ์ด ๋˜๊ธด ํ•˜์ง€๋งŒ, ๊ทœ๋ชจ๊ฐ€ ํฐ ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๋‹ค. 3. ํŠน์žฅ์  1. ์ต์ˆ™ํ•œ ์–ธ์–ด ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์€ ๋ชจ์กฐ๊ฑด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•˜์ง€? ๊ทผ๋ฐ ๋ฐฑ์•ค๋“œ๋„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ํ•œ๋‹ค๋ฉด? ์ต์ˆ™ํ•œ ์–ธ์–ด๋กœ ๊ธˆ๋ฐฉ ํ•˜๊ฒ ์ง€? โ€‹ ..

mongoDB ์ด๋ž€? ๋Œ€ํ‘œ์ ์ธ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค. mongo(humongous, extremely large)๋Š” Humongous ์—์„œ ๋”ฐ์˜จ ๋ง๋กœ, ์—„์ฒญ๋‚˜๊ฒŒ ํฐ DB ๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ข‹๊ฒŒ ๋งŒ๋“ค์–ด์กŒ๋‹ค. vs SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค Relational Database ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž๋ฃŒ๋“ค์˜ ๊ด€๊ณ„๋ฅผ ์ฃผ์š”ํ•˜๊ฒŒ ๋‹ค๋ฃธ. SQL ์งˆ์˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•ด์•ผ ํ•จ Non SQL ๋˜๋Š” Not Only SQL ๊ตฌ์กฐํ™”๋œ ์งˆ์˜์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž๋ฃŒ ๊ฐ„์˜ ๊ด€๊ณ„์— ์ดˆ์ ์„ ๋‘์ง€ ์•Š์Œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์ง€ ์•Š๊ณ , ์œ ์—ฐํ•˜๊ฒŒ ์ €์žฅํ•จ SQL์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜๋Š” ๊ฒƒ์ด ํ•„์ˆ˜(DDL)๋ผ, ์Šคํ‚ค๋งˆ์— ์ •์˜๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹ˆ๋ฉด ์ €์žฅํ•  ์ˆ˜ ์—†๋Š” ์ œ์•ฝ์ด ๋”ฐ๋ฆ„ ํ•˜์ง€๋งŒ NoSQ..