React/2022-ไธ
Promise all ์ฐ์ MDN์ Promise.all์ ์ดํด๋ณด์ !! Promise.all์ด๋ ? Promise.all() ๋ฉ์๋๋ MDN์์ ์ด๋ ๊ฒ ์ค๋ช
๋์ด์๋ค. Promise.all() ๋ฉ์๋๋ ์ํ ๊ฐ๋ฅํ ๊ฐ์ฒด์ ์ฃผ์ด์ง ๋ชจ๋ ํ๋ก๋ฏธ์ค๊ฐ ์ดํํ ํ, ํน์ ํ๋ก๋ฏธ์ค๊ฐ ์ฃผ์ด์ง์ง ์์์ ๋ ์ดํํ๋ Promise๋ฅผ ๋ฐํํ๋ค. ์ฃผ์ด์ง ํ๋ก๋ฏธ์ค ์ค ํ๋๊ฐ ๊ฑฐ๋ถํ๋ ๊ฒฝ์ฐ, ์ฒซ ๋ฒ์งธ๋ก ๊ฑฐ์ ํ ํ๋ก๋ฏธ์ค์ ์ด์ ๋ฅผ ์ฌ์ฉํด ์์ ๋ ๊ฑฐ๋ถํ๋ค. ๋ ์์ธํ ์์๋ณด๊ธฐ !! Promise.all() - JavaScript | MDN Promise.all() ๋ฉ์๋๋ ์ํ ๊ฐ๋ฅํ ๊ฐ์ฒด์ ์ฃผ์ด์ง ๋ชจ๋ ํ๋ก๋ฏธ์ค๊ฐ ์ดํํ ํ, ํน์ ํ๋ก๋ฏธ์ค๊ฐ ์ฃผ์ด์ง์ง ์์์ ๋ ์ดํํ๋ Promise๋ฅผ ๋ฐํํฉ๋๋ค. ์ฃผ์ด์ง ํ๋ก๋ฏธ์ค ์ค ํ๋๊ฐ ๊ฑฐ๋ถํ..
React/2022-ไธ
Observable 1๏ธโฃ Observable Observable์ observer๊ฐ ๊ตฌ๋
(subscribe)ํ๋ ๋์์ด๋ค. Observable์ด ์์ดํ
์ ๋ฐฉ์ถํ๋ฉด observer๊ฐ ๋ฐ์(react)ํ๋ค. ์ด ํจํด์ ๋์์ฑ ์ฐ์ฐ(concurrent operation)์ ํธํ๊ฒ ํด์ค๋ค. โ ๋ธ๋ก ์ํ์์ Observable์ด ์์ดํ
์ ๋ฐฉ์ถํ๊ธธ ๊ธฐ๋ค๋ฆด ํ์๊ฐ ์๋ค. โ ๋์ , observer๊ฐ ๋ณด์ด์ฒ๋ผ ์์ ์ ์ ํ๊ฒ ๋ฐ์(react)ํ ์ค๋น๋ฅผ ํ๊ณ ์๋ค. 2๏ธโฃ ๋ฐฐ๊ฒฝ ReactiveX์์๋ Observer์ ์ํด ๋ช
๋ น์ด๋ค์ด ๋ณ๋ ฌ(parallel)๋ก ์คํ๋๊ณ , ๊ฒฐ๊ณผ๊ฐ์ด ์์ ์์๋ก ๋์ค์ ๋ฐํ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ๊ฐ์ ธ์ค๊ณ ๋ณํํ ์ง์ ๋ํ ๋งค์ปค๋์ฆ์ Observable ํํ๋ก ์ ์๋ฅผ ํ๋ค. ๊ทธ ๋ค์, ์ด Ob..
React/2022-ไธ
token, XSS, CSRF KWT์๋ ๋๊ฐ์ง ์ข
๋ฅ์ ํ ํฐ์ด ์๋ค. โ Access Token โ Refresh Token Access Token Access Token์ ํตํด์ ๋ฏผ๊ฐํ ์ ๋ณด์ ์ ๊ทผํ ์ ์์ผ๋ฉฐ ๋ ๊ฐ์ง ํ ํฐ์ค์์ ์ค์ ๊ถํ์ ์ ๊ทผํ๋ ํ ํฐ์ด๋ค. ์งง์ ์ ํจ๊ธฐ๊ฐ์ ๊ฐ์ง๋ค. Refresh Token Refresh Token์ ํตํด์ ๋ง๋ฃ๋ Access Token์ ๋ฐ๊ธ๋ฐ์ ์ ์๋ค. Access Token๋ณด๋ค ๊ธด ์ ํจ๊ธฐ๊ฐ์ ๊ฐ์ง๋ค. ์ด ๋, ์ ์ ๋ ๋ค์ ๋ก๊ทธ์ธํ์ง ์์๋ ๋๋ค. Refresh Token์ด ํ์ทจ๋นํ๋ฉด, ์ํํ๊ธฐ์ ์ ๋ณด์ ๋ฏผ๊ฐํ ์ฌ์ดํธ๋ Refresh Token์ ์ฌ์ฉํ์ง ์์ ์ ์๋ค. JWT์ ๊ตฌ์กฐ JWT์ ๊ตฌ์กฐ๋ Header / Payload / Signature๋ก ์ด๋ฃจ์ด..
React/2022-ไธ
Callback (์ฝ๋ฐฑ ํจ์) Callback (์ฝ๋ฐฑ ํจ์)๋ ? JS์์ ์ฝ๋ฐฑํจ์๋ ๋งค์ฐ ์ค์ํ ๊ฐ๋
์ด๋ค. Node.js ํ๊ฒฝ์์ ํ๋ก๊ทธ๋๋ฐ ์ ๋ฐ๋์ ํ์ํ ๊ฐ๋
์ด๊ธฐ๋ ํ๋ค. ์ฝ๋ฐฑ ํจ์๋ ์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ํ, ์ํ๋ ํจ์๋ฅผ ์๋ฏธํ๋ค. JS์์ ํจ์๋ 1๊ธ๊ฐ์ฒด์ด๋ฏ๋ก, ์ธ์ ์ ๋ฌ ์ ํจ์๋ฅผ ์ ๋ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฝ๋ฐฑํจ์๊ฐ ๊ฐ๋ฅํ๋ค. โ ์์ ์ฝ๋๋ submitBtn ํด๋์ค๋ฅผ ๊ฐ์ง ์์๋ฅผ ํด๋ฆญํ์ ๋, ์ฝ๋ฐฑ ํจ์๊ฐ ์คํ๋๋ jQuery ์ฝ๋์ด๋ค. โ ์ฆ, ๋น๋๊ธฐ ์ด๋ฒคํธ์ธ click์ ๋ํ ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ก ์ฝ๋ฐฑ ํจ์๊ฐ ์์ฑ๋ ๊ฒ์ด๋ฉฐ, ๊ทธ ๋ด์ฉ์ alert()๋ฅผ ํธ์ถํ๋ค. โ click์ ์ฝ๋ฐฑ ํจ์๋ ๋ค์ด๋ฐ์ ํ ํ์๊ฐ ์๋ ์ต๋ช
ํจ์์ด๊ณ , ๋๋ถ๋ถ์ ์ฝ๋ฐฑ ํจ์๋ ์ด๋ ๊ฒ ์ต๋ช
ํจ์๋ก ์์ฑ๋๋ค. Callbac..
React/2022-ไธ
flatten, unflatten ์๋ฐ์คํฌ๋ฆฝํธ์์๋ flatten์ ์ค์ฒฉ๋ ๋ฐฐ์ด๊ตฌ์กฐ๋ฅผ ํ๋์ ๋ฐฐ์ด๋ก ๋ง๋๋ ๊ฒ์ ์๋ฏธํ๋ค. unflatten unflatten์ ์ค์ฒฉ๋ ๋ฐฐ์ด ๊ตฌ์กฐ๋ฅผ ์๋ฏธํ๋ค. โ ์์ ๊ฐ์ ๋ฐฐ์ด์์ ๋ฐฐ์ด์ด ์ค์ฒฉ๋์ด ์๋ ๊ตฌ์กฐ๋ฅผ unflatten์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. flatten flatten์ ์ค์ฒฉ ๋ฐฐ์ด์ ํํํ ํ๋ ๊ฒ์ ์๋ฏธํ๋ค. โป ํํํ ? → ์ค์ฒฉ ๋ฐฐ์ด์ ํ๋์ ๋ฐฐ์ด๋ก ๋ง๋๋ ๊ฒ์ ์๋ฏธํ๋ค. flatten์ ๋ฐฉ๋ฒ Array.prototype.flat() ์๋ฐ์คํฌ๋ฆฝํธ์๋ flat์ด๋ผ๋ ๋ฉ์๋๊ฐ ์กด์ฌํ๋ค. flat ๋ฉ์๋๋ ๋ชจ๋ ํ์ ๋ฐฐ์ด ์์๋ฅผ ์ง์ ํ ๊น์ด๊น์ง ์ฌ๊ท์ ์ผ๋ก ์ด์ด๋ถ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ค. โ ์ฌ์ฉํ ๋ ํํํ ํ ๊น์ด๋ฅผ ์ง์ ํด ์ฃผ์ด์ผ ํ๋ค. (default ๊ฐ์ ..
React/2022-ไธ
Recursive Functions (์ฌ๊ท ํจ์) ์ด๋ค ํจ์ ๋ด๋ถ์์ ๋ค์ ์๊ธฐ ์์ ์ ๋ถ๋ฅด๋ ํจ์๋ฅผ ์๋ฏธํ๋ค. ๋ง์น ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๋ฏ ์๊ธฐ ์์ ์ ๋์์์ด ๋ถ๋ฅด๋ค๊ฐ ํน์ ์กฐ๊ฑด์ด ๋๋ฉด ๋น ์ ธ๋์ค๋ ํจ์๋ฅผ ์ฌ๊ท ํจ์๋ผ๊ณ ํ๋ค. Recursive Function (์ฌ๊ท ํจ์)์ ์์ฑ๊ณผ ์ฌ์ฉ๋ฒ ์ฌ๊ทํจ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ง๋ค ์ ์๋ค. ๋์ ๊ฐ์ ์ด๋ฆ์ ํจ์๋ฅผ ๋ด๋ถ์์ ์คํํด ์ค๋ค. ๋ด๊ฐ ๋ง๋ ํจ์ ๋ด๋ถ์์ ๋ค์ ๋๋ฅผ ๋ถ๋ฅด๋ ํํ์ด๊ธฐ ๋๋ฌธ์ ๋ฌดํํ ๊ณ์ ๋ฐ๋ณต๋๋ ํจ์๊ฐ ๋๋ค. ๋ฐ๋ผ์, ์ฌ๊ทํจ์๋ฅผ ๋ง๋ค ๋์๋ ๋ฐ๋์ ํจ์๋ฅผ ์ข
๋ฃํ๋ ์กฐ๊ฑด์ ๋ง๋ค์ด ์ฃผ์ด์ผ ํ๋ค. ์ด ๋ถ๋ถ์ ํนํ ์ฌ๊ท ํจ์๋ฅผ ๋ง๋ค ๋ ๊ฐ์ฅ ์ฃผ์ํด์ผ ํ ๋ถ๋ถ์ด๋ค. Recursive Function (์ฌ๊ท ํจ์)์ ์ โ ๊ฒฐ๊ณผ๋ก 5! = 120์ด ๋์จ๋ค. ์..
Web Basic/JavaScript
ES6์ ํน์ง let๊ณผ const ์ ํต์ ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝํธ๋ ํจ์์ค์ฝํ์ ์ ์ญ์ค์ฝํ๋ง์ ์ง์ํ์ฌ ๋ณ์์ ์๋ช
์ฃผ๊ธฐ ๋ฐ ์ ๊ทผ์ ์ ์ดํ๋ค. ํ์ง๋ง ES6์์๋ถํฐ๋ ๋ธ๋ก์ค์ฝํ๋ ์ง์ํ๊ฒ ๋๋ค. ์ด๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ๋ ๊ฒ์ด let๊ณผ const โ ์์ ์ฝ๋๋ ๋ธ๋ก ์ค์ฝํ๋ฅผ ๋ฐ๋ฅด๋ ๋ค๋ฅธ ์ธ์ด๋ค์์๋ ์๋ฌ๋ฅผ ๋ฐ์์์ผฐ์ง๋ง, โ ํจ์์ค์ฝํ์ ์ ์ญ์ค์ฝํ๋ฅผ ๋ฐ๋ฅด๋ ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ฌธ์ ์์ด ์๋ํ๋ค. โ ๊ทธ๋ฌ๋, ์ด๋ ๋ง์ ์๋ฌ์ ๋ฒ๊ทธ์ ์์ธ์ด์์ผ๋ฉฐ, let๊ณผ const๊ฐ ๋์
๋ ์ด์ ์๋ค. โ let์ ์ฌ์ฉํ๋ฉด ์ ์ธํ ๋ณ์๋ ๋ธ๋ก์์์๋ง ์ ํจํ๊ฒ ๋๋ค. โ ๋ฐ๋ผ์, ๋ธ๋ก ๋ฐ์์ ์ ๊ทผํ๋๋ ReferenceError๋ฅผ ๋ฐ์์ํจ๋ค. โ const ์ญ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ธ๋ก์ค์ฝํ๋ฅผ ๋ฐ๋ฅธ๋ค. โ const์ let์ ์ฐจ์ด์ ์ const๋ ..
Web Basic/JavaScript
==, === ์๋ฐ์คํฌ๋ฆฝํธ๋ ์๊ฒฉํ ๋น๊ต์ ์ ํ๋ณํ ๋น๊ต๋ฅผ ๋ชจ๋ ์ง์ํจ ๋ฐ๋ผ์, ์ด๋ค ์ฐ์ฐ์๊ฐ ์ด๋ค ๋น๊ต์กฐ๊ฑด์ ์ฌ์ฉ๋๋์ง๊ฐ ์ค์ํจ ===๋ ๋ณ์ ์ ํ์ ๊ณ ๋ คํจ โ ์๊ฒฉํ ๋น๊ต๋ฅผ ํจ ([๊ฐ & ์๋ฃํ] -> true) ==๋ ๋ณ์ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ์ ํ์ ์์ ํจ โ ์๋ก ๋ค๋ฅธ ์ ํ์ ๋ ๋ณ์์ [๊ฐ] ๋น๊ต ์์ โ 0๊ฐ์ false์ ๋์ผํ๋ฏ๋ก true ์ถ๋ ฅ โ ๋ ํผ์ฐ์ฐ์์ ์ ํ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ false ์ถ๋ ฅ โ ์๋ ์ ํ๋ณํ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ true ์ถ๋ ฅ โ ๋ ํผ์ฐ์ฐ์์ ์ ํ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ false ์ถ๋ ฅ โ ์๋ ์ ํ๋ณํ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ true ์ถ๋ ฅ โ ๋ ํผ์ฐ์ฐ์์ ์ ํ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ false ์ถ๋ ฅ !=์ !== ๋น๊ต์ฐ์ฐ์์ ์ฐจ์ด๋ ? โ ๊ฐ์ด ๋ค๋ฅด์ง ์์ผ๋ฏ๋ก(์๋ฃํ ๋น๊ต ์ํ๋ฏ๋ก) fals..