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

JS32

[JS] : Switch ํŠน์ง• switch ๋ฌธ์—๋Š” [ case + default + break ] ์ด 3๊ฐ€์ง€๊ฐ€ ํ•จ๊ป˜ ์กด์žฌํ•œ๋‹ค. ํ•ด๋‹น ๋ณ€์ˆ˜๋ฅผ ์ƒํ™ฉ์— ๋งž๋Š” ๋กœ์ง์„ ์‹คํ–‰์‹œํ‚ค๊ธฐ ์œ„ํ•œ case์™€, ๋งž๋Š” case๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„๋•Œ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๋‚˜ํƒ€๋‚ผ default์™€, ์•Œ๋งž์€ case์˜ ๋กœ์ง์ด ์‹คํ–‰๋˜๊ณ  switch๋ฌธ์„ ๋๋‚ด์ค„ break๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์˜ˆ์‹œ 1 let fruit = 'ํ‚ค์œ„'; switch (fruit) { case '์‚ฌ๊ณผ': console.log('์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค.'); break; case '๋ฐ”๋‚˜๋‚˜': console.log('๋ฐ”๋‚˜๋‚˜์ž…๋‹ˆ๋‹ค.'); break; case 'ํ‚ค์œ„': console.log('ํ‚ค์œ„์ž…๋‹ˆ๋‹ค.'); break; default: console.log('์•„๋ฌด๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค.'); break; } ์˜ˆ์‹œ 1 ์ถœ๋ ฅ ๊ฐ’ ํ‚ค์œ„์ž…๋‹ˆ.. 2023. 7. 26.
[JS] : Null / Undefined undefined ์ฝ”๋”ฉ์„ ํ•˜๋‹ค๋ณด๋ฉด ์ฐธ ๋งŽ์ด ๋ณด๋Š” ๋…€์„์ด๋‹ค. JS์—์„œ ๊ฐ’์ด ์—†์„ ๋•Œ ๋งŽ์ด ๋‚˜ํƒ€๋‚ด์ค€๋‹ค. undefined ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ์ƒํ™ฉ์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋ณ€์ˆ˜์— ๊ฐ’์ด ์ง€์ •๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ ์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ์ฃผ์†Œ๋ฅผ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์€ ์‹๋ณ„์ž์— ์ ‘๊ทผํ•  ๋•Œ ๋ฐœ์ƒ ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด์— . ๋˜๋Š” [] ์œผ๋กœ ์ ‘๊ทผํ•˜๊ณ ์ž ํ•  ๋•Œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ return ๋ฌธ์ด ์—†๋Š” ํ•จ์ˆ˜ ๋˜๋Š” ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•  ๊ฒฝ์šฐ ์˜ˆ์‹œ ์ฝ”๋“œ var a; console.log(a); // ๊ฐ’์„ ํ• ๋‹น๋˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ๋•Œ var obj = { a: 1 }; console.log(obj.a); // 1 console.log(obj.b); // ์กด์žฌํ•˜์ง€ ์•Š๋Š” property์— ์ ‘๊ทผํ•  ๋•Œ // console.log(b); .. 2023. 7. 24.
[JS] : Iterator ( for ... of ) Iterator ? JS์—์„œ ๋ฐ˜๋ณต์ž(Iterator)๋Š” ์‹œํ€€์Šค๋ฅผ ์ •์˜ํ•˜๊ณ  ์ข…๋ฃŒ์‹œ์˜ ๋ฐ˜ํ™˜๊ฐ’์„ ์ž ์žฌ์ ์œผ๋กœ ์ •์˜ํ•˜๋Š” ํ•˜๋‚˜์˜ "๊ฐ์ฒด" ๋ผ๊ณ  ํ•œ๋‹ค. ๋‚ด๊ฐ€ iterator๋ฅผ ๋งˆ์ฃผ์น˜๊ฒŒ ๋œ ๊ฒƒ์€ map ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ key๋ฅผ ํ™•์ธํ•˜๊ณ ์ž keys ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ ์˜€๋‹ค. set ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง„ value๋ฅผ ํ™•์ธํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์˜€๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ iterator์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค๊ธฐ ๋ณด๋‹ค๋Š” ์ด iterator ๋ผ๋Š” ๊ฐ์ฒด๋ฅผ for ... of ๋ฌธ์„ ํ†ตํ•ด์„œ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค๋ณผ ์˜ˆ์ •์ด๋‹ค. Iterator ๋ฅผ ํ™•์ธํ•œ ๋ถ€๋ถ„ map ๋ถ€๋ถ„. // map // map ๊ฐ์ฒด ์ƒ์„ฑ const myMap = new Map(); // ๋ฐ์ดํ„ฐ ์ €์žฅ myMap.set('one', 1); myMap.set('two', 2); myMap.set('three.. 2023. 7. 23.
[JS] : Set ์ €๋ฒˆ์—” ์ƒˆ๋กœ์šด ์ž๋ฃŒ๊ตฌ์กฐ์ธ Map ์˜ค๋Š˜์€ Set ์ด๋‹ค !! Set ? map ๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ "๊ฐ’"๋งŒ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ๊ฐ’์ด ์ค‘๋ณต๋  ์ˆ˜ ์—†๊ธฐ์—, ๊ณ ์œ ๊ฐ’๋งŒ ์ €์žฅ์ด ๋œ๋‹ค. Set ์ƒ์„ฑ const mySet = new Set(); ์ƒ์„ฑ ํ™•์ธ console.log(mySet); // ์ถœ๋ ฅ ๊ฐ’ : Set(0) {} set ์ด๋ผ๋Š” ๊ฐ์ฒด์— ํ˜„์žฌ๋Š” 0๊ฐœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ด๊ฒจ์ ธ ์žˆ๋‹ค. add(value) set ๊ฐ์ฒด์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ์‹œ mySet.add('value1'); mySet.add('value2'); ์ถœ๋ ฅ ๊ฐ’ Set(2) { 'value1', 'value2' } size() set ๊ฐ์ฒด์˜ ํฌ๊ธฐ=๊ธธ์ด ๋ฅผ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์˜ˆ์‹œ console.log(mySet.size); ์ถœ๋ ฅ ๊ฐ’ 2 ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ ์ธ์‹.. 2023. 7. 22.
[JS] : Map Map? ๋ฐฐ์—ด์—์„œ ์‚ฌ์šฉํ•˜๋Š” map๋ฉ”์„œ๋“œ๊ฐ€ ์•„๋‹Œ JS์˜ "์ž๋ฃŒ๊ตฌ์กฐ" ์ค‘ ํ•˜๋‚˜์ธ map์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์•˜๋‹ค. ๋งต์„ ์•Œ๊ธฐ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜์ž๋ฉด "๊ฐ์ฒด"๋ผ๋Š” ํ‚ค์›Œ๋“œ๋กœ ์„ค๋ช…์ด ๊ฐ€๋Šฅํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค๋งŒ,๊ธฐ์กด์˜ ๊ฐ์ฒด๋ณด๋‹ค ๋ฒ•์šฉ์„ฑ์ด ๋„“์€ ๋…€์„์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  ์žˆ๋‹ค. ๋ฒ”์šฉ์„ฑ์˜ ์ฐจ์ด๋ฅผ ์˜ˆ๋กœ ๋“ค์ž๋ฉด, ๊ฐ์ฒด๊ฐ€ ๊ฐ€์ง€๋Š” "key" ๊ฐ’์—๋Š” ๋ฌธ์ž์—ด ๋˜๋Š” ์‹ฌ๋ณผํƒ€์ž…์ด ์ž๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, Map์ด ๊ฐ€์ง€๋Š” "key" ๊ฐ’์—๋Š” ํ˜•์‹์— ์ œํ•œ์ด ์—†์„ ์ •๋„๋กœ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์ž๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค. ๋˜ํ•œ, ์ˆœ์„œ๊ฐ€ ๋ณด์žฅ๋œ๋‹ค. Map ์˜ ์‚ฌ์šฉ ๋ชฉ์  ๊ณ„์†ํ•ด์„œ ์ƒˆ๋กœ์šด ์ž๋ฃŒ๊ตฌ์กฐ ํ˜•ํƒœ๊ฐ€ ๋‚˜์˜ค๋Š” ์ด์œ ๋Š” ๊ธฐ์กด์˜ ๊ฒƒ์œผ๋กœ ํ‘œํ˜„ํ•˜๋Š”๋ฐ ์ œํ•œ์ด ์ƒ๊ธด๋‹ค๊ฑฐ๋‚˜ ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅด๊ฒŒ ์ผ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•จ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋งค์ผ ์ƒˆ๋กœ์šด ์ฝ”๋“œ๋ฅผ ์ปค๋ฐ‹ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด.. 2023. 7. 21.
[Node.js] : ํšŒ์›๊ฐ€์ž…์‹œ ์ด๋ฉ”์ผ ์ธ์ฆ ๋กœ์ง ๊ตฌํ˜„ํ•˜๊ธฐ. ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ ํšŒ์›๊ฐ€์ž…์‹œ์— ์ž‘์„ฑํ•œ ์ด๋ฉ”์ผ์„ ํ†ตํ•ด์„œ ํšŒ์›๊ฐ€์ž… ์ธ์ฆ์„ ๊ฑฐ์น˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์Œ. (ํ˜„์žฌ Nodemailer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„์ค‘์— ์žˆ์œผ๋ฉฐ, ์—ฌ๋Ÿฌ ์˜ค๋ฅ˜๋“ค์„ ๋งŒ๋‚˜์„œ, ์ฝ”๋“œ ํ•˜๋‚˜ํ•˜๋‚˜์˜ ์—ญํ• ์„ ํŒŒ์•…์ค‘์— ์žˆ๋‹ค.) ์šฐ์„  ์ง€๊ธˆ๊นŒ์ง€์˜ ๊ณผ์ •์„ ๋‚˜์—ดํ•˜๊ณ  ๋งŒ๋‚œ ์˜ค๋ฅ˜๋“ค์„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ // package.json "dependencies": { "cookie-parser": "^1.4.6", "dotenv": "^16.3.1", "express": "^4.18.2", "jsonwebtoken": "^9.0.1", "mysql2": "^3.5.1", "nodemailer": "^6.9.3", "sequelize": "^6.32.1" }, "devDependencies": { "nodem.. 2023. 7. 19.