๐Technical interview(Front)10 Promise Promise๊ฐ ๋ญ๊ฐ์? ํ๋ก๋ฏธ์ค๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์ฌ์ฉ๋๋ ๊ฐ์ฒด์ด๋ค. ์ฌ๊ธฐ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ‘ํน์ ์ฝ๋์ ์คํ์ด ์๋ฃ๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค์ ์ฝ๋๋ฅผ ๋จผ์ ์ํํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ฑ’์ ์๋ฏธํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌํํ ๋ ์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๊ณ ๋ฐ์์ค๊ธฐ ์ํด API๋ฅผ ์ฌ์ฉํ๋๋ฐ, API๊ฐ ์คํ๋๋ฉด ์๋ฒ์๋ค๊ฐ ๋ฐ์ดํฐ ๋ณด๋ด๋ฌ๋ผ๋ ์์ฒญ์ ๋ณด๋ด๊ณ , ๋ณด๋ด์จ ๋ฐ์ดํฐ์ ๋ฐํ๊ฐ์ด๋, ์๋ฌ์ํฉ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ํ๋ก๋ฏธ์ค๋ฅผ ์ฌ์ฉํ๋ค. promise๋ฅผ ์ฌ์ฉํ ๋น๋๊ธฐ ์ฒ๋ฆฌ function async() { return new Promise((resolve, reject) => { setTimeout(() => { // setTimeout { console.log(res); }).. 2022. 11. 16. [JavaScript] ์ค์ฝํ ์ฒด์ธ์ด๋? ์ค์ฝํ๋? ๋ณ์(์๋ณ์)์ ์ ํจ ๋ฒ์๋ฅผ ๋ปํ๋ค. ์ค์ฝํ(Scope)๋ ๋ณ์๊ฐ ์ด๋์, ์ด๋ป๊ฒ ์ ์ธ๋์๋์ง์ ๋ฐ๋ผ ๊ทธ ๋ณ์์ ์ ํจํ ๋ฒ์๊ฐ ๊ฒฐ์ ๋๋ ๊ท์น์ด๊ธฐ๋ ํ๋ฉฐ, ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ์ด ๊ท์น์ ๋ฐ๋ผ ์ฐธ์กฐ์ ๋์์ด ๋๋ ๋ณ์๋ฅผ ํ์ํด๋๊ฐ๋ค. (→ ๊ทธ๊ฒ์ Scope Chain) ๐์ค์ฝํ์ฒด์ธ? ์๋ฐ์ค ํฌ๋ฆฝํธ ES2015๊ธฐ์ค์ผ๋ก ํ๋ฐ๋ ์์ ์ ํจ์๊ฐ ๊ธฐ์ค์ด์๋๋ฐ ์์ฆ์ ๋ธ๋ก์ด ๊ธฐ์ค์ด๋ค( ํจ์๋ ๋คํํ ๋ธ๋ก์ ๊ฐ์ง๊ณ ์๋ค ) ์ค์ฝํ ์ฒด์ธ(Scope Chain)์ ์ผ์ข ์ ๋ฆฌ์คํธ๋ก์ ์ ์ญ ๊ฐ์ฒด์ ์ค์ฒฉ๋ ํจ์์ ์ค์ฝํ์ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐจ๋ก๋ก ์ ์ฅํ๊ณ , ์๋ฏธ ๊ทธ๋๋ก ๊ฐ๊ฐ์ ์ค์ฝํ๊ฐ ์ด๋ป๊ฒ ์ฐ๊ฒฐ(chain)๋๊ณ ์๋์ง ๋ณด์ฌ์ฃผ๋ ๊ฒ ์ ๋งํ๋ค. ์ ํจ ๋ฒ์๋ฅผ ๋ํ๋ด๋ ์ค์ฝํ๊ฐ scope ํ๋กํผํฐ๋ก ๊ฐ ํจ์ ๊ฐ์ฒด ๋ด์์ ์ฐ๊ฒฐ๋ฆฌ์คํธ.. 2022. 11. 9. [JavaScript] Scope๋? ๐๐จ์๋ฐ์คํฌ๋ฆฝํธ๋ ํจ์ ๋ ๋ฒจ ์ค์ฝํ(function-level scope)๋ฅผ ๋ฐ๋ฅธ๋ค. ํจ์ ๋ ๋ฒจ ์ค์ฝํ๋ ํจ์ ์ฝ๋ ๋ธ๋ก ๋ด์์ ์ ์ธ๋ ๋ณ์๋ ํจ์ ์ฝ๋ ๋ธ๋ก ๋ด์์๋ง ์ ํจํ๊ณ ํจ์ ์ธ๋ถ์์๋ ์ ํจํ์ง ์๋ค(์ฐธ์กฐํ ์ ์๋ค)๋ ๊ฒ์ด๋ค. ๐๐ป๋จ, ECMAScript 6์์ ๋์ ๋ let keyword๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ก ๋ ๋ฒจ ์ค์ฝํ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ๐จ๐ป๐ป Scope๋? Scope๋ ์ง์ญํ๋ฉด "๋ฒ์"๋ผ๋ ๋ป์ด๋ค. JavaScript ์์ Scope(์ค์ฝํ)๋ ๋ณ์์ ์ ๊ทผํ ์ ์๋ ๋ฒ์๋ฅผ ๋งํ๋ค. ์๋ณ์(๋ณ์)๋ฅผ ์ฐพ๊ธฐ์ํ ๊ท์น์ด๋ผ๊ณ ๋ ํ๋ค. ์๋ณ์์ ์ ํจ ๋ฒ์ ⇒ ๋ชจ๋ ์๋ณ์๋ ์์ ์ด ์ ์ธ๋ ์์น์ ์ํ์ฌ ๋ค๋ฅธ ์ฝ๋๊ฐ ์๋ณ์ ์์ ์ ์ฐธ์กฐํ ์ ์๋ ์ ํจ ๋ฒ์๊ฐ ๊ฒฐ์ ๋จ. var x = 'global'; f.. 2022. 11. 5. ์ฝ๋ฐฑ ํจ์(Callback) ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋น๋๊ธฐ๋ฅผ ์ฒ๋ฆฌํ ๋ callback๊ณผ promise๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ค. ๋จผ์ callback ํจ์์ ๋ํด์ ์์๋ณด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ? ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ ํน์ ์ฝ๋์ ์ฐ์ฐ์ด ๋๋ ๋๊น์ง ์ฝ๋์ ์คํ์ ๋ฉ์ถ์ง ์๊ณ ๋ค์ ์ฝ๋๋ฅผ ๋จผ์ ์คํํ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ํน์ฑ์ ์๋ฏธํฉ๋๋ค. ํ๋ก์ ํธ ์ํ์ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ณผ์ ์ด ํ์ํ๋ค. ์ด๋ฅผ ์ํด HTTP ํต์ ์ ์ฌ์ฉํ๊ฒ ๋๋๋ฐ ์ด๋ ๋น๋๊ธฐ์ฒ๋ฆฌ์ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๊ฒ ๋๋ค. ์๋์ ajax ํต์ ์ฌ๋ก๋ฅผ ํตํด ์์๋ณด์ function getData() { var tableData; $.get('https://domain.com/products/1', function(response) { tableData = response; }).. 2022. 11. 3. ์ด์ 1 2 3 ๋ค์