async & await ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ์ฒ๋ฆฌ ํจํด ์ค ES7์ ๋์จ ์ต๊ทผ ๋ฌธ๋ฒ ๊ธฐ์กด์ ๋น๋๊ธฐ ์ฒ๋ฆฌ๋ฐฉ์์ธ ์ฝ๋ฐฑํจ์์ ํ๋ก๋ฏธ์ค์ ๋จ์ ์ ๋ณด์ํ๊ณ ๊ฐ๋ฐ์๊ฐ ์ฝ๊ธฐ ์ข์(๋๊ธฐํจ์์ฒ๋ผ ์ฝ๊ณ ์ฐ๊ธฐ) ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ๋์์ค๋ค. > ๋๊ธฐํจ์์ฒ๋ผ ์๋๋ก ์ฐจ๋ก๋๋ก ์ฝํ๋ ๋ฐฉ์์ ์ฝ๋๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด async, await ๋ฌธ๋ฒ์ ๋ชฉ์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ ํจ์์ ์์ async๋ผ๋ ์์ฝ์ด๊ฐ ๋ถ์ 2 ํจ์์ ๋ด๋ถ ๋ก์ง์ค HTTP ํต์ ์ ํ๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ฝ๋ ์์ await์ ๋ถํ๋ค. > ์ฃผ์ํ ์ : ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฉ์๋๊ฐ ๊ผญ ํ๋ก๋ฏธ์ค ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ผ await๊ฐ ์๋ํ ๋๋ก ๋์๋จ ์ผ๋ฐ์ ์ผ๋ก await์ ๋์์ด ๋๋ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ฝ๋๋ Axios๋ฑ ํ๋ก๋ฏธ์ค๋ฅผ ๋ฐํํ๋ API ํธ์ถ์ด๋ค. ์์ async & await ๋ฌธ๋ฒ์ด ๊ฐ์ฅ ๋น์ ๋ฐํ๋ ์๊ฐ์ ์ฌ๋ฌ ๋น๋๊ธฐ ์ฒ๋ฆฌ ์ฝ๋๋ฅผ ์์ ํ ๋! ์์ธ์ฒ๋ฆฌ async & await ์์ ์์ธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ `try &
์ด๋ฒคํธ ์์(Event delegation) ํน์ ๋ ธ๋์ ์ผ์ผ์ด ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ถ๊ฐํ๋ ๋์ , ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ํน์ ๋ ธ๋๋ค์ ํฌํจํ๋ ์์ ๋ ธ๋์ ์ฐ๊ฒฐํ์ฌ ์ด๋ฒคํธ๋ฅผ ์ ํํ๋ ๊ฒ์ ์ด๋ฒคํธ ์์์ด๋ผ๊ณ ํ๋ค. ์์๋ ์ด๋ฒคํธ๋ ํฌํจ๋ ํ์ ๋ ธ๋์ ์ ํ๋๋ค. ์ด๋ฒคํธ๊ฐ ์ ํ๋๋ ๋ฐฉ์์ ๊ธฐ๋ณธ๊ฐ์ ๋ฒ๋ธ๋ง(์๋์์ ์๋ก) ์ด๋ฒคํธ ์์์ด ํ์ํ ์ด์ ํ์ ๋ ธ๋๋ค์ด ์ค์๊ฐ์ผ๋ก ์ถ๊ฐ ๋๋ ์ ๊ฑฐ ๋ ๋๋ง๋ค ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ๋งค๋ฒ ์ฐ๊ฒฐํ๊ฑฐ๋ ์ ๊ฑฐํด์ผํ๋ค. ๐ฉ ์ด๋ฒคํธ ์์์ ์ฌ์ฉํ ์ ์๊ธฐ์ ์๋ก์ด ๋ ธ๋๊ฐ ์ถ๊ฐ, ์ ๊ฑฐ ๋๋ ์ ๋ฐ์ดํธ ๋์ด๋ ๋ณ๋๋ก ์ด๋ฒคํธ ๋ฆฌ์ค๋๋ฅผ ์ฐ๊ฒฐํ๊ฑฐ๋ ์ ๊ฑฐํ์ง ์์๋ ๋๋ค.
Module์ด๋..? > ํ ํ์ผ์์ ์์ฑ๋์ด์ง ์ฝ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ๋ค์ ๋ถํ ํ ๋จ์ ์ฝ๋๋ฅผ ๊ทธ ํ์ผ ๋ด๋ถ๋ก ํ์ ํ์ฌ ์ ์ญ์ ์ผ๋ก ๋ฑ๋ก๋์ด์ง๋ ๊ฒ์ ๋ง๊ณ ์ถฉ๋์ ๋ฐฉ์ง ์๋ก ๋ค๋ฅธ ํ์ผ์์ ๊ฐ ํ์ผ์ ์ฝ๋์ ์ ๊ทผ์ด ๋ถ๊ฐํ๋ฏ๋ก ์ ๊ณตํ๊ณ ์ ํ๋ ๋ชจ๋์์ export, ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ชจ๋์์ import๋ฅผ ํ๋ฉด ๋๋ค. ํ์ผ๋ค๊ฐ์ ์ค๋ณต์ ์ผ๋ก ๋ฐ์ํ ์ ์๋ ์ด๋ฆ ์ถฉ๋์ ๋ฐฉ์ง ๋ชจ๋๊ฐ์ ์ฌ์ฌ์ฉ์ฑ๋ ๋์ฌ์ค๋ค. Export & Import export ํ์ผ ์์์ ์ ์๋ ์ด๋ฆ์ผ๋ก import ํด์ผ ํ๋ค. importํ ๋ {} ์์ ๋์ผํ ์ด๋ฆ์ผ๋ก ๊ฐ์ ธ์์ผ ํ๋ค. as๋ฅผ ์ด์ฉํ๋ฉด ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ณ๊ฒฝํด์ ํธ์ถ ๊ฐ๋ฅ export ๋๋ ๋ชจ๋ ๊ฒ๋ค์ ๋ฐ์์ค๊ณ ์ถ๋ค๋ฉด * ์ฌ์ฉ export default import์์ ์ฌ์ฉํ๊ณ ์ ํ๋ ์ด๋ฆ์ ์ ์ํด์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ํ ํ์ผ์์์ `export
This this๋ ํ์ฌ ์คํ๋๋ ์ฝ๋์ ์คํ ์ปจํ ์คํธ๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์คํ ์ปจํ ์คํธ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ์คํ๋๋ ํ๊ฒฝ ๋ชจ๋ javascript ์ฝ๋๋ ์คํ ์ปจํ ์คํธ ๋ด๋ถ์์ ์คํ๋๋ค. ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ํ์ํํ๊ณ ๊ตฌ๋ถํ๋ ์ถ์์ ์ธ ๊ฐ๋ ์ข ๋ฅ: ์ ์ญ ์คํ์ปจํ ์คํธ, ํจ์ ์คํ์ปจํ ์คํธ Javascript This ๋ค๋ฅธ ๊ฐ์ฒด์งํฅ ์ธ์ด์ this์ ์ฑ๊ฒฉ์ด ๋ค๋ฅด๋ค this๋ ํจ์ ์์ ์ด๋ ํจ์์ ๋ ์์ปฌ ์ค์ฝํ๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ ํผ๋ฐ์ค๊ฐ ์๋๋ผ๋ ์ ์ ๋ถ๋ช ํ ์ธ์ง ํธ์ถํ ๋ฌธ๋งฅ์ ๋ฐ๋ผ์ this๊ฐ ๋์ ์ผ๋ก ๋ณ๊ฒฝ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ this๋ ์๊ธฐ์์ ์ ๊ฐ๋ฆฌํค๋๊ฒ์ด ์๋ ํจ์ ํธ์ถ ์์ ์ ๋ฐ์ธ๋ฉ๋๋ฉฐ ๋ฌด์์ ๊ฐ๋ฆฌํฌ์ง๋ ์ ์ ์ผ๋ก ํจ์๋ฅผ ํธ์ถํ ์ฝ๋์ ๋ฌ๋ ค์๋ค. ๋ณ์๋ ๊ธ๋ก๋ฒ ๊ฐ์ฒด์์ ๋ฑ๋ก์ด ๋์ง ์๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ฅผ ์ ์ํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์๋ ํจ์๋ global(window)์ ๋ฑ๋ก๋ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. let๊ณผ c
ํ๋กํ ํ์ (Prototype)์ด๋..? > ํ๋กํ ํ์ ์ ์๋์ ํํ ๋๋ ์ ํ์ ์ธ ์, ๊ธฐ์ด ๋๋ ํ์ค์ด๋ค. ์์ ์ ๋ง๋ค์ด๋ธ ๊ฐ์ฒด์ ์ํ ์๋ฐ์คํฌ๋ฆฝํธ๋ ํ๋กํ ํ์ ๊ธฐ๋ฐ์ผ๋ก ์์์ ๊ตฌํํ์ฌ ๋ถํ์ํ ์ค๋ณต์ ์ ๊ฑฐ ์์ฑ์ ํจ์๊ฐ ์์ฑํ ๋ชจ๋ ์ธ์คํด์ค๊ฐ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ํ๋กํ ํ์ ์ ๋ฏธ๋ฆฌ ๊ตฌํํด ๋์์ผ๋ก์จ ๋ ๊ตฌํํ๋ ๊ฒ์ด ์๋ ์์ ๊ฐ์ฒด์ธ ํ๋กํ ํ์ ์ ์์ฐ์ ๊ณต์ ํ์ฌ ์ฌ์ฉํ๋ ๊ฒ Prototype Chain ๊ฐ์ฒด์ ํ๋กํผํฐ์ ์ ๊ทผํ๋ ค๊ณ ํ ๋ ๊ฐ์ฒด์ ์ ๊ทผํ๋ ค๋ ํ๋กํผํฐ๊ฐ ์์ผ๋ฉด ์ ๊ทผ์ ํ๋กํผํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๋งํฌ๋ฅผ ๋ฐ๋ผ ์์ ํ๋กํ ํ์ ์ ํ๋กํผํฐ๋ฅผ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํ๋ ๊ฒ Class (ํ๋กํ ํ์ ์ ์ฐ์์์ฉ) ์๋ฐ์คํฌ๋ฆฝํธ์์ class๋ ๋์์ธ ํจํด์ ์ผ์ข (๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ์๋ฏธ๊ฐ ๋ค๋ฆ) ์๋ฐ์คํฌ๋ฆฝํธ class๋ ๋ณต์ฌ๋ฅผ ์๋ฏธ (ํ๋กํ ํ์ ์ ์ฐ์์์ฉ) ์ธ์คํด์คํํ๋ฉด class -> instance๋ก ๋ณต์ฌ