- JS, C, PHP ๋ฑ์ ์ฑ๊ธ ์ค๋ ๋
- JS๋ ๋น๋๊ธฐ non-block I/O
- ํ๋ก์ธ์ค ํ๋์ ์ค๋ ๋ ํ๋
- ์ด๋ฒคํธ ๊ธฐ๋ฐ์ผ๋ก๋ ๋งค์ฐ ๋น ๋ฆ (ํ๋ฅผ ๋นจ๋ฆฌ ๋น์์ผ ํจ)
- Java, C#์ ๋ฉํฐ ์ค๋ ๋
- ํ๋ก์ธ์ค ํ๋์ ์ค๋ ๋ ์ฌ๋ฌ ๊ฐ
- ํ์ฌ ์คํ๋๊ณ ์๋ ์ค๋ ๋ => ์ค๋ ๋ ๋ก์ปฌ
- ๋ณ๋ ฌ๋ก ๋์์ ์คํ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด์ง๋ง 3๋ฒ ๋ฐ๋ณต ์คํ๊ณผ ๋น์ท
- ๋ด๋ถ์ ์ผ๋ก๋ ๋ค Promise
- Promise; ์์์ ์ดํฐ๋ ์ดํฐ
- ๋น๋๊ธฐ๋ ๋ค I/O์์ ์ผ์ด๋จ
- Input; write
- Output; read
- Stream๋ ๋น๋๊ธฐ
- Callback Hell
- ๋น๋๊ธฐ ํจ์ ๋ด ์ฝ๋ฐฑ ๋ด์๋
- ์ด๋ฒคํธ ๋ฃจํ๊ฐ ํ์คํฌ ํ ๊ด๋ฆฌ
- ์ฝ๋ฐฑ ํฌ ๋ฒ์ด๋๊ธฐ ์ํด Promise ์ฌ์ฉ
- ํ๋ก๋ฏธ์ค๋ ๋ง์ดํฌ๋กํ์คํฌ ํ์ ๋ด์
- ๋ง์ดํฌ๋กํ์คํฌ ํ๊ฐ ํ์คํฌ ํ๋ณด๋ค ์ฐ์ ์์ ๋์
- then ํ๋ก๋ฏธ์ค ํ์ ์ฒ๋ฆฌ ๋ฉ์๋
- reject
- err๊ฐ ์์ผ๋ฉด reject(err)
- catch๋ฅผ ๋ถ๋ฆ
- resolve
- ํต๊ณผํ๋ฉด resolve(ret)
- then ๋ถ๋ฆ
- Promise.all([f1, f2, f3]).then(console.log)
- 3๊ฐ ๋ค ์คํ ๋๋์ผ ํ (resolve ๋ ๊ฒ๋ง)
- ๋์์ ๋ณ๋ ฌ๋ก ์คํ
- Promise.race()
- ๋นจ๋ฆฌ ๋๋ ๋ ํ
- Promise.allSettled()
- resolve, reject ์๊ด์์ด ๋ค ์ค
- PHP๊ฐ ๋ ธ๋๋ณด๋ค ๋ ๋น ๋ฆ (PHP๋ C๊ธฐ๋ฐ)
- ์ต๊ทผ์๋ ๋ค async/await ์ฌ์ฉํจ
- graphQL ์๋ชปํ๋ฉด ์๋ฒ ๋ถ๋ด ํผ
- 1๋ฒ ์ฝ์ ๊ฒ์ ๊ณ์ ๋ฐ๋ณตํด์ ์ฌ๋ฌ ๋ฒ ์ฝ์ด์ ๋ถ๋ด ๋ง์์ง๋ฉด ์๋ฒ ์ฃฝ์ ์ ์์