javascript/๐ study39 [11์ฃผ์ฐจ ์คํฐ๋]49์ฅ-Babel๊ณผ Webpack ์ด์ํ ES6+/ES.NEXT ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ Babel๊ณผ WebPack์ ์ด์ฉํ ES6+/ES.NEXT ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ ๋งค๋ ์๋กญ๊ฒ ๋์ ๋๋ ES6์ด์์ ๋ฒ์ (ES6+)๊ณผ ์ ์ ๋จ๊ณ์ ์๋ ES ์ ์ ์ฌ์(ES.NEXT)์ ๋ธ๋ผ์ฐ์ ์ ๋ฐ๋ผ ์ง์์จ์ด ์ ๊ฐ๊ฐ ๋ฐ๋ผ์ ์ต์ ์ฌ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ค๋ฉด ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์ ๋ฌธ์ ์์ด ๋์ ์ํค๊ธฐ ์ํ ๊ฐ๋ฐํ๊ฒฝ์ ๊ตฌ์ถํ๋ ๊ฒ์ด ํ์ํ๋ค. ๋๋ถ๋ถ์ ํ๋ก์ ํธ๊ฐ ๋ชจ๋์ ์ฌ์ฉํ๋ฏ๋ก ๋ชจ๋ ๋ก๋๋ ํ์ํ๋ค. ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ESM ๋ณด๋ค ๋ณ๋์ ๋ชจ๋ ๋ก๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ผ๋ฐ์ IE๋ฅผ ํฌํจํ ๊ตฌํ ๋ธ๋ผ์ฐ์ ๋ ESM์ ์ง์ํ์ง ์๋๋ค. ESM์ ์ฌ์ฉํ๋๋ผ๋ ํธ๋์ค ํ์ผ๋ง์ด๋ ๋ฒ๋ค๋ง์ด ํ์ํ ๊ฒ์ ๋ณํจ ์์ ESM์ด ์์ง ์ง์ํ์ง ์๋ ๊ธฐ๋ฅ(bare import ๋ฑ..)์ด ์กด์ฌ Babel Babel์ ํธ๋์ค ํ์ผ๋ง ๋๊ตฌ.. 2022. 4. 8. [11์ฃผ์ฐจ ์คํฐ๋]48์ฅ-๋ชจ๋ ๋ชจ๋ ๋ชจ๋์ ์ผ๋ฐ์ ์๋ฏธ ๋ชจ๋(module)์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๊ฐ๋ณ์ ์์๋ก์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋ ์กฐ๊ฐ์ ๋งํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ชจ๋์ ๊ธฐ๋ฅ์ ๊ธฐ์ค์ผ๋ก ํ์ผ ๋จ์๋ก ๋ถ๋ฆฌ ์ด๋ ๋ชจ๋์ด ์ฑ๋ฝํ๋ ค๋ฉด ๋ชจ๋ ์์ ๋ง์ ํ์ผ ์ค์ฝํ(๋ชจ๋ ์ค์ฝํ)๋ฅผ ๊ฐ์ง ์ ์์ด์ผ ํจ ์์ ๋ง์ ํ์ผ ์ค์ฝํ๋ฅผ ๊ฐ๋ ๋ชจ๋์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋น๊ณต๊ฐ ์ํ ์ฆ, ๋ชจ๋๋ด๋ถ์ ๋ณ์, ํจ์ ๊ฐ์ฒด ๋ฑ ๋ชจ๋ ์บก์ํ ๋์ด ๋ค๋ฅธ ๋ชจ๋์์ ์ ๊ทผํ ์ ์๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๋ค๋ฅธ ๋ชจ๋์ ์ํด ์ฌ์ฌ์ฉ ๋์ด์ผ ์๋ฏธ๊ฐ ์์, ๋ฐ๋ผ์ ๊ณต๊ฐ๊ฐ ํ์ํ ์์ฐ์ ํ์ ํ์ฌ ๋ช ์์ ์ผ๋ก ์ ํ์ ๊ณต๊ฐ๊ฐ ๊ฐ๋ฅ ํ๋ค. ์ด๋ฅผ export๋ผ๊ณ ํ๋ค. export๋ ๋ชจ๋์ ๋ค๋ฅธ ๋ชจ๋์์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ๊ณ , ์ด๋ ๊ณต๊ฐ๋ ๋ชจ๋์ ์ฌ์ฉํ๋ ๋ชจ๋์ ๋ชจ๋ ์ฌ์ฉ์(module consu.. 2022. 4. 8. [11์ฃผ์ฐจ ์คํฐ๋]47์ฅ-์๋ฌ ์ฒ๋ฆฌ ์๋ฌ ์ฒ๋ฆฌ try ... catch ... finally ์๋ฌ ์ฒ๋ฆฌ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋๊ฐ์ง ์์ธ ์ ์ธ ์ํฉ์ด ๋ฐ์ ์ ๋ฐํ ํ๋ ๊ฐ์ if ๋ฌธ, ๋จ์ถ ํ๊ฐ, ์ต์ ๋ ์ฒด์ด๋ ๋ฑ์ผ๋ก ์ง์ ํ์ธํ๋ ๋ฐฉ๋ฒ ์๋ฌ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ๋ฏธ๋ฆฌ ๋ฑ๋กํด ๋๊ณ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ์๋ฌ ์ฒ๋ฆฌ ์ฝ๋๋ก ์ ํํ๋๋ก ํ๋ ๋ฐฉ๋ฒ try ... catch ... finally ๋ ๋๋ฒ ์งธ ๋ฐฉ๋ฒ 3๊ฐ์ ์ฝ๋ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ try { // ์คํ ํ ์ฝ๋(์๋ฌ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ฝ๋) } catch (err) { // err ๋ณ์๋ช ์ ๋ค๋ฅธ ๊ฑฐ ํด๋ ๋จ // try ์ฝ๋ ๋ธ๋ก์์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ์ด ์ฝ๋ ๋ธ๋ก์ ์ฝ๋๊ฐ ์คํ ๋๋ค. // err์๋ try ์ฝ๋ ๋ธ๋ก์์ ๋ฐ์ํ Error ๊ฐ์ฒด๊ฐ ์ ๋ฌ๋๋ค. } finally { // ์๋ฌ ๋ฐ์๊ณผ .. 2022. 4. 8. [11์ฃผ์ฐจ ์คํฐ๋]46์ฅ-์ ๋๋ ์ดํฐ์ async / await ์ ๋๋ ์ดํฐ์ async/await ์ ๋๋ ์ดํฐ๋? ES6์์ ๋์ ๋ ์ ๋๋ ์ดํฐ๋ ์ฝ๋ ๋ธ๋ก์ ์คํ์ ์ผ์ ์ค์ง ํ๋ค๊ฐ ํ์ํ ์์ ์ ์ฌ๊ฐํ ์ ์๋ ํน์ํ ํจ์ ์ ๋๋ค. ์ผ๋ฐ ํจ์์์ ์ฐจ์ด ์ ๋๋ ์ดํฐ ํจ์๋ ํจ์ ํธ์ถ์์๊ฒ ํจ์ ์คํ์ ์ ์ด๊ถ์ ์๋ํ ์ ์๋ค. ์ด๋ ํจ์์ ์ ์ด๊ถ์ ํธ์ถ์์๊ฒ ๋๊ธฐ๋ ๊ฒ์ ์๋(yield)๋ผ๊ณ ํจ ์ ๋๋ ์ดํฐ ํจ์๋ ํจ์ ํธ์ถ์์ ํจ์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค. ์ ๋๋ ์ดํฐ ํจ์๋ ํจ์ ํธ์ถ์์๊ฒ ์ํ๋ฅผ ์ ๋ฌํ ์ ์๊ณ ํจ์ ํธ์ถ์๋ก ๋ถํฐ ์ํ๋ฅผ ์ ๋ฌ ๋ฐ์ ์๋ ์๋ค. ์ ๋๋ ์ดํฐ ํจ์๋ฅผ ํธ์ถํ๋ฉด ์ ๋๋ ์ดํฐ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. ์ ๋๋ ์ดํฐ ํจ์๋ฅผ ํธ์ถํ๋ฉด ํจ์ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฒ์ด ์๋๋ผ ์ดํฐ๋ฌ๋ธ์ด๋ฉด์ ๋์์ ์ดํฐ๋ ์ดํฐ์ธ ์ ๋๋ ์ดํฐ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. ์ ๋๋ ์ดํฐ ํจ์์ ์ ์ ์ .. 2022. 4. 8. [10์ฃผ์ฐจ ์คํฐ๋]45์ฅ-ํ๋ก๋ฏธ์ค ํ๋ก๋ฏธ์ค ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ฝ๋ฐฑ ํจํด์ ๋จ์ ํจ์ ๋ด๋ถ์ ๋น๋๊ธฐ๋ก ๋์ํ๋ ์ฝ๋๋ฅผ ํฌํจํ๋ ํจ์๋ฅผ ๋น๋๊ธฐ ํจ์๋ผ๊ณ ํจ ๋น๋๊ธฐ ํจ์ ๋ด๋ถ์ ๋น๋๊ธฐ๋ก ๋์ํ๋ ์ฝ๋๊ฐ ์๋ ๊ฒฝ์ฐ? -> ๋น๋๊ธฐ ํจ์๊ฐ ์ข ๋ฃ๋ ์ดํ์ ์๋ฃ๋จ ์ฆ, ๋น๋๊ธฐ ํจ์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ธ๋ถ๋ก ๋ฐํํ๊ฑฐ๋ ์์ ์ค์ฝํ ๋ณ์์ ํ ๋นํ๋ฉด ๊ธฐ๋ํ ๋๋ก ๋์๋์ง ์์ // GET ์์ฒญ์ ์ํ ๋น๋๊ธฐ ํจ์ const get = url => { const xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.send(); xhr.onload = () => { if (xhr.status === 200) { // โ ์๋ฒ์ ์๋ต์ ๋ฐํํ๋ค. return JSON.parse(xhr.response); } console.. 2022. 4. 2. [10์ฃผ์ฐจ ์คํฐ๋]44์ฅ-REST API REST API REST(Representation State Transfer)๋ HTTP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๋ฐฉ์์ ๊ท์ ํ ์ํคํ ์ฒ REST API๋ REST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค API๋ฅผ ๊ตฌํํ๊ฒ์ ์๋ฏธ ์ฆ, http๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋คํธ์ํฌ ์์์ ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ REST๋ผ๊ณ ํ๋ค. REST์ ๊ธฐ๋ณธ์์น์ ์ฑ์คํ ์งํจ ์๋น์ค ๋์์ธ์ RESTful ์ด๋ผ๊ณ ํํ. REST API์ ๊ตฌ์ฑ REST API๋ 3๊ฐ์ง ์์๋ก ๊ตฌ์ฑ REST๋ ์์ฒด ํํ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ ๋์ด, REST API ๋ง์ผ๋ก HTTP ์์ฒญ์ ๋ด์ฉ์ ์ดํดํ ์ ์๋ค. ๊ตฌ์ฑ ์์ ๋ด์ฉ ํํ ๋ฐฉ๋ฒ ์์(resource) ์์ URL(์๋ํฌ์ธํธ) ํ์(verb) ์์์ ๋ํ ํ์ HTTP ์์ฒญ ๋ฉ์๋ ํํ(repre.. 2022. 4. 2. ์ด์ 1 2 3 4 ยทยทยท 7 ๋ค์