๐ก JS
Promise์ Callback ์ฐจ์ด๋ฅผ ์ค๋ช
ํด์ฃผ์ธ์
๋๊ธฐ์ ์ฝ๋์ ๋น๋๊ธฐ์ ์ฝ๋๋ฅผ ๊ฐ์ด ์ฌ์ฉํ๋ฉด ์คํ ์์๋ฅผ ๋ณด์ฅํ ์ ์๊ฒ ๋๊ณ , ๊ฒฐ๊ตญ ์ํ๋ ๊ฒฐ๊ณผ์ ๋ค๋ฅธ ๋์์ ํ๊ฒ ๋ฉ๋๋ค. ์ด๋ด ๋ ์ฝ๋ฐฑ๊ณผ ํ๋ก๋ฏธ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์คํ ์์๋ฅผ ๋ณด์ฅํด์ค ์ ์์ต๋๋ค.
์ฝ๋ฐฑ ํจ์๋ ๋ค๋ฅธ ํจ์์ ์ธ์๋ก ์ฌ์ฉ๋๋ ํจ์๋ก, ๋น๋๊ธฐ ์ฒ๋ฆฌ๊ฐ ๋๋ ํ ๋ฐ์ดํฐ๊ฐ ๋์ด์ค๋ฉด callback ํจ์์๊ฒ ๋ฐ์ดํฐ๋ฅผ ๋๊ฒจ ์ด์ ์์ ์ด ์๋ฃ๋์์ ์๋ฆฌ๊ณ , ๊ทธ๋ ์์ ์ ์์ํ๋ ๋ฐฉ์์ผ๋ก ์์๋ฅผ ๋ณด์ฅํฉ๋๋ค. ํ์ง๋ง ์์๋๋ก ์ฒ๋ฆฌํด์ผ ํ ์์ ์ด ๋ง์์ง์๋ก ์ฝ๋ฐฑ์ง์ฅ์ผ๋ก ๋ถ๋ฆฌ๋ ์ํฉ์ด ์ผ์ด๋๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ์ฝ๋ฐฑ์ง์ฅ์ ๊ฐ๋ ์ฑ์ ๋จ์ด๋จ๋ฆฌ๊ณ ์ ์ง๋ณด์๋ฅผ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
๋ํ ๋น๋๊ธฐ ๋ก์ง์ ๊ฒฐ๊ณผ๊ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ callback ์์์๋ง ์ฒ๋ฆฌํด์ผํ๊ณ callback ๋ฐ์์ ๋น๋๊ธฐ ๊ฒฐ๊ณผ๊ฐ์ ์์ง ๋ชปํฉ๋๋ค.
๋ฐ๋ฉด ํ๋ก๋ฏธ์ค๋ ๊ฐ์ฒด๋ก ๊ตฌํ๋๊ธฐ ๋๋ฌธ์ ์ข ๋ ์ ์ฐํ ๋น๋๊ธฐ์ฒ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํด์ค๋๋ค. ํ๋ก๋ฏธ์ค ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ฉด ์ฝ๋ฐฑ์ผ๋ก resolve์ reject๋ฅผ ์ธ์๋ก ๋ฐ๋๋ฐ ์ด ํจ์๋ฅผ ํตํด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ์ฑ๊ณต๊ณผ ์คํจ์ ์ํ์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์ ์ ์์ต๋๋ค. ๋๋ฌธ์ ํ๋ก๋ฏธ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋น๋๊ธฐ ์์ ์ ์ํ์ ๊ฒฐ๊ณผ๋ฅผ ๋ ๋ช ํํ๊ฒ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
+) ์ฝ๋ฐฑ๊ณผ ํ๋ก๋ฏธ์ค์ ๋ ์์๋ณด๊ธฐ!!
๐กReact
React๋ฅผ ์ฌ์ฉํ๋ ์ด์ ์ ๋ํด ๋ง์ํด์ฃผ์ธ์
๋ฆฌ์กํธ๋ฅผ ์ ํํ๋ ์ฃผ์ ์ด์ ์ค ํ๋๋ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ์ ๋๋ค. ๋ฆฌ์กํธ๋ UI๋ฅผ ์์ ์ปดํฌ๋ํธ๋ก ๋ถํ ํ์ฌ ๊ฐ๋ฐ ๋ฐ ์ ์ง ๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํฉ๋๋ค.
๋ํ, ๋ฆฌ์กํธ๋ ๊ฐ์ DOM(Virtual DOM)์ ํ์ฉํ์ฌ ์น ํ์ด์ง์ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค. ๊ฐ์ DOM์ ์ค์ DOM ์์๋ฅผ ์ง์ ์กฐ์ํ์ง ์๊ณ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์์ DOM์ ์์ฑํ์ฌ ๋ณ๊ฒฝ ์ฌํญ์ ๋น๊ตํ๊ณ ์ต์ํ์ DOM ์กฐ์๋ง ์ํํฉ๋๋ค. ๋๋ฌธ์ ๋ ๋๋ง์ ํ์ํ ์์์ ์ค์ผ ์ ์์ต๋๋ค.
๋ํ, ๋ฆฌ์กํธ๋ ์ปค๋ฎค๋ํฐ์ ์ํ๊ณ๊ฐ ํ๋ถํ๋ฉฐ, ๋ค์ํ ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋๊ตฌ ๋ฐ ํจํค์ง๋ฅผ ์ง์ํ๊ณ ์์ต๋๋ค. ์ด๋ ๊ฐ๋ฐ์๋ค์ด ๋ค๋ฅธ ๊ฐ๋ฐ์์ ์ง์๊ณผ ๋ฆฌ์์ค์ ์ฝ๊ฒ ์ก์ธ์คํ๊ณ ๋ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐ์ ์งํํ ์ ์๋๋ก ๋์์ค๋๋ค.
๐ก Frontend
Webpack, Babel, Polyfill์ ๋ํด ์ค๋ช ํด์ฃผ์ธ์
- Webpack: ์ฌ๋ฌ๊ฐ์ ํ์ผ์ ํ๋์ ํ์ผ๋ก ๋ฒ๋ค๋งํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- Babel: ์ต์ JS ๋ฌธ๋ฒ์ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์๋ ์๋ํ ์ ์๋๋ก ์ด์ JS๋ฌธ๋ฒ์ผ๋ก ๋ณํํ๋ ์ญํ ์ ํฉ๋๋ค.
- Polyfill: ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ง์ํ์ง ์๋ ์ต์ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ฐ ํ์ํ ์ฝ๋๋ฅผ ์ง์ํ๋ ์ญํ ์ ํฉ๋๋ค.
Babel๊ณผ Polyfill์ ์ฐจ์ด์ ์ ๋ฐ๋ฒจ์ ES6 ๋ฌธ๋ฒ์ ES5๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์ด๊ณ , Polyfill์ ๋ธ๋ผ์ฐ์ ๊ฐ ์ดํดํ ์ ์๋ ์ฝ๋๋ฅผ ์ดํด ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค.