[week_06] Node.js ๊ธฐ์ดˆ | Node.js์˜ ์ดํ•ด, ํŠน์ง•, ES6, ๋น„๋™๊ธฐ ์ฝ”๋”ฉ, ์ด๋ฒคํŠธ ๋ฃจํ”„

    1. Node.js๋ž€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์–ด๋А ํ™˜๊ฒฝ์—์„œ๋‚˜ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์‹คํ–‰๊ธฐ Browser์˜ JavaScript ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ ์›น ๋‚ด๋ถ€์˜ ์ œํ•œ๋œ ๋™์ž‘ ์›น ํ”„๋ก ํŠธ ๊ฐœ๋ฐœ์ž์˜ ์–ธ์–ด Node.js ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์‹คํ–‰ (์–ด๋А ํ™˜๊ฒฝ์—์„œ๋“  ์‹คํ–‰ ๊ฐ€๋Šฅ) ์ œํ•œ ์—†๋Š” ๋™์ž‘ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ 2. Node.js์˜ ํŠน์ง• ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ - ๋น„๋™๊ธฐ - ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜ 2-1. ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ ์“ฐ๋ ˆ๋“œ(Thread): ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๋‹จ์œ„, ํ•œ ๊ฐœ์˜ ์“ฐ๋ ˆ๋“œ๋Š” ํ•œ ๋ฒˆ์— ํ•œ ๊ฐ€์ง€ ๋™์ž‘๋งŒ ์‹คํ–‰ ๊ฐ€๋Šฅ ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ: ํ•œ ๋ฒˆ์— ํ•œ ๊ฐ€์ง€ ๋™์ž‘๋งŒ ์ˆ˜ํ–‰ํ•จ ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ: ๋™์‹œ์— ์—ฌ๋Ÿฌ ๋™์ž‘ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅ ์žฅ์  ์“ฐ๋ ˆ๋“œ ์ƒ์„ฑ ๋น„์šฉ์ด ์—†๋‹ค ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋Š˜์–ด๋‚˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— CPU ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ์— ํšจ์œจ์  ๋‹จ์  ์“ฐ๋ ˆ๋“œ ๊ธฐ๋ฐ˜์˜ ์ž‘์—…๋“ค์˜ ํšจ์œจ์ด ๋–จ์–ด์ง ex) CPU..

    [CS] local storage vs session storage vs cookie

    local storage, session storage ๊ทธ๋ฆฌ๊ณ  cookie๋Š” ๋ชจ๋‘ ํด๋ผ์ด์–ธํŠธ ์ƒ์—์„œ key/value ์Œ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ, value๋Š” ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•œ๋‹ค. ๋˜ํ•œ, ๋ชจ๋‘ ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…(SOP)์„ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋‹ค. ๋™์ผ ์ถœ์ฒ˜ ์ •์ฑ…(Same-Origin Policy) ์–ด๋– ํ•œ ๋ฌธ์„œ๋‚˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‹ค๋ฅธ ํ”„๋กœํ† ์ฝœ/ํฌํŠธ/ํ˜ธ์ŠคํŠธ์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ œํ•œํ•˜๋Š” ์ •์ฑ… ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์‚ฌ์ดํŠธ์—์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์š”์ฒญํ•œ๋‹ค๊ณ  ํ•˜์ž. http://website.com/ex/ex.html ๊ทธ๋Ÿฌ๋ฉด ๋ฆฌ์†Œ์Šค ์š”์ฒญ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1๏ธโƒฃ http://website.com/ex/ ๐Ÿ‘‰ ์„ฑ๊ณต 2๏ธโƒฃ http://website.com/ex1/ ๐Ÿ‘‰ ์„ฑ..

    [CS] data- ์†์„ฑ

    DOM์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๋ฐ์ดํ„ฐ ์†์„ฑ data- ๋‹ค์Œ์— ์˜ค๋Š” ๊ฐ’์ด ๋ฐ์ดํ„ฐ๊ฐ€ ๋œ๋‹ค. ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์šฉ๋„์— ์ ํ•ฉํ•œ ์†Œ์„ฑ์ด๋‚˜ ์š”์†Œ๊ฐ€ ์—†์„ ๋•Œ ์‚ฌ์šฉ ํ•ด๋‹น ์›นํŽ˜์ด์ง€๊ฐ€ ๋…์ž์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ’ ์ฆ‰, ์›นํŽ˜์ด์ง€์™€ ๋…๋ฆฝ์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ด ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์Œ์•… ์‚ฌ์ดํŠธ์—์„œ ์•จ๋ฒ” ํŠธ๋ž™์˜ ์Œ์•…์„ ๋ฆฌ์ŠคํŠธ ํ˜•์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ๊ทธ๊ฑธ ์‹œ๊ฐ„ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ data- ์†์„ฑ์œผ๋กœ ์Œ์•… ์‹œ๊ฐ„์„ ์‚ฝ์ž…ํ•œ๋‹ค๊ณ  ํ•˜์ž. ๋นจ๊ฐ„๋ง› ... ๋งŒ์•ฝ ์ด ์Œ์•…์‚ฌ์ดํŠธ์™€ ์ „ํ˜€ ์ƒ๊ด€์ด ์—†๋Š” ์™ธ๋ถ€์—์„œ ์Œ์•… ์‹œ๊ฐ„์„ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ชฉ์ ์— ๋ถ€ํ•ฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ, data- ์†์„ฑ์€ ํ•ด๋‹น ์‚ฌ์ดํŠธ๋งŒ์˜ ์ž์ฒด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์œ„ํ•œ ์†์„ฑ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ข€ ๋” ์ž์„ธํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ ์—ฌ๊ธฐ์— ์ •๋ฆฌํ•ด๋‘์—ˆ๋‹ค. ์ฐธ๊ณ  http..

    [week_05] async/await๊ณผ API

    1. async/await Promise๋ฅผ ํ™œ์šฉํ•œ ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋Š” ๋ฌธ๋ฒ• async/await ๋ฌธ๋ฒ•์œผ๋กœ ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ๋™๊ธฐ ์ฝ”๋“œ์ฒ˜๋Ÿผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑ ๊ฐ€๋Šฅ await ํ‚ค์›Œ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ async ํ•จ์ˆ˜ ์•ˆ์—์„œ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•จ async๋กœ ์„ ์–ธ๋œ ํ•จ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ Promise๋ฅผ ๋ฆฌํ„ด async function asyncFunc() { let data = await fetchData(); let user = await; fetchUser(data); return user; } async ํ•จ์ˆ˜๋Š” function ํ‚ค์›Œ๋“œ ์•ž์— async๋ฅผ ๋ถ™์—ฌ ๋งŒ๋“ ๋‹ค. fetchData, fetchUser๋Š” Promise๋ฅผ ๋ฆฌํ„ด! await ํ‚ค์›Œ๋“œ๋Š” then ๋ฉ”์„œ๋“œ ์ฒด์ธ์„ ์—ฐ๊ฒฐํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์ˆœ์„œ๋Œ€๋กœ ๋™์ž‘ async functio..

    [week_05] ๋น„๋™๊ธฐ ํ†ต์‹ ๊ณผ Promise

    1. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ œ์–ด ํ๋ฆ„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‹ค๋ฅธ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ๋น„๋™๊ธฐ ๋™์ž‘์„ ์ฒ˜๋ฆฌํ•œ๋‹ค. ํŠน์ • ์ฝ”๋“œ์˜ ์—ฐ์‚ฐ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ์˜ ์‹คํ–‰์„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์‹คํ–‰ console.log('1'); setTimeout(() => {console.log('2');}, 1000); console.log('3'); ๋‹ค๋ฅธ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ์–ธ์–ด์—์„œ์˜ ๊ฒฐ๊ณผ: '1'์ถœ๋ ฅ → 1์ดˆ ํ›„ '2' ์ถœ๋ ฅ → '3'์ถœ๋ ฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ์˜ ๊ฒฐ๊ณผ: '1'์ถœ๋ ฅ → '3'์ถœ๋ ฅ → 1์ดˆ ํ›„ '2' ์ถœ๋ ฅ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—”์ง„ ํ•˜๋‚˜์˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ (์ฆ‰, ๋‹จ ํ•˜๋‚˜์˜ Call stack์„ ์‚ฌ์šฉ) ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋Š” ์ฝ”๋“œ๋ฅผ ์ฝ์–ด ํ•œ ์ค„์”ฉ ์‹คํ–‰ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์—์„œ๋Š” ์œ ์ € ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ™”๋ฉด์„ ๊ทธ๋ฆฐ๋‹ค 1-1. ๋™๊ธฐ์  ์ œ์–ด..

    [DB] HTTP Method | GET, POST

    0. HTTP Method ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์ด๋ฃจ์–ด์ง€๋Š” ์š”์ฒญ(Request)๊ณผ ์‘๋‹ต(Response) ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ๋ฐฉ์‹ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์„œ๋ฒ„์—๊ฒŒ ์‚ฌ์šฉ์ž ์š”์ฒญ์˜ ๋ชฉ์ ์ด๋‚˜ ์ข…๋ฅ˜๋ฅผ ์•Œ๋ฆฌ๋Š” ์ˆ˜๋‹จ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ด๋Š” ๋ฐฉ๋ฒ• GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, CONNECT 1. GET ํด๋ผ์ด์–ธํŠธ โžก ์„œ๋ฒ„ ์–ด๋– ํ•œ ๋ฆฌ์†Œ์Šค๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๋ฉ”์„œ๋“œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ฑฐ๋‚˜(Read), ๊ฒ€์ƒ‰(Retrieve)ํ•  ๋•Œ ์‚ฌ์šฉ URL Parameter๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ๋„˜๊ธฐ๋Š” ๋ฐฉ์‹ ์š”์ฒญ ์ „์†กํ•  ๋•Œ, URL ์ฃผ์†Œ ๋’ค์— ์ด๋ฆ„๊ณผ ๊ฐ’์ด ๊ฒฐํ•ฉ๋œ ์ฟผ๋ฆฌ ์ŠคํŠธ๋ง(query string)์„ ํฌํ•จ www.example-url.com/resources?name1=value1&name..

    [DB] ์›น ์„œ๋ฒ„(Web Server)์™€ WAS(Web Application Server)

    1. Static Pages์™€ Dynamic Pages Static Pages ์„œ๋ฒ„์— ๋ฏธ๋ฆฌ ์ €์žฅ๋œ ํŒŒ์ผ(HTML, CSS, JS, ์ด๋ฏธ์ง€ ๋“ฑ)์ด ๊ทธ๋Œ€๋กœ ์ „๋‹ฌ๋˜๋Š” ์›น ํŽ˜์ด์ง€ ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ํ•ด๋‹นํ•˜๋Š” ์ €์žฅ๋œ ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค. ์–ด๋–ค ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์ด๋“  ํ•ญ์ƒ ๋™์ผํ•œ ์ปจํ…์ธ  ๋ฐ˜ํ™˜ Dynamic Pages ์„œ๋ฒ„์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์„ ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ๊ฐ€๊ณต์ฒ˜๋ฆฌํ•œ ํ›„ ์ƒ์„ฑ๋˜์–ด ์ „๋‹ฌ๋˜๋Š” ์›น ํŽ˜์ด์ง€ ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ํ•ด์„ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•œ ํ›„ ์ƒ์„ฑ๋˜๋Š” ์›น ํŽ˜์ด์ง€๋ฅผ ๋ณด๋‚ธ๋‹ค. ์š”์ฒญ ์ธ์ž์— ๋”ฐ๋ผ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋Š” ์ปจํ…์ธ  2. ์›น ์„œ๋ฒ„(Web Server) HTTP ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์„œ๋น„์Šค ์›น ๋ธŒ๋ผ์šฐ์ € ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ(request)์„ ๋ฐ›์•„ ์ •์ ์ธ ์ปจํ…์ธ (.html .jpeg .css ..

    [JavaScript30] 7. Array Cardio Practice (2) | .some(), .every(), .find() and [...SPREADS]

    ๐Ÿ“ƒ ์š”๊ตฌ์‚ฌํ•ญ ์ฃผ์–ด์ง„ data๋“ค์„ ๊ฐ€์ง€๊ณ , ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒฐ๊ด๊ฐ’์„ console ์ฐฝ์— ๋„์šด๋‹ค. ๐Ÿ’ป ์†Œ์Šค์ฝ”๋“œ ๋จผ์ €, ์ฃผ์–ด์ง„ data๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. const people = [ { name: 'Wes', year: 1988 }, { name: 'Kait', year: 1986 }, { name: 'Irv', year: 1970 }, { name: 'Lux', year: 2015 } ] const comments = [ { text: 'Love this!', id: 523423 }, { text: 'Super good', id: 823423 }, { text: 'You are the best', id: 2039842 }, { text: 'Ramen is my fav food ever', id: 123523 }..