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. ์ด์ 1 2 3 4 5 6 ๋ค์