๋ชฉ์ฐจ
1. AJAX (Asynchronous JavaScript and XML)
2005๋ ํ์
๊ธฐ์กด: ์น ํ์ด์ง์์ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ํ์ด์ง ์ ์ฒด๋ฅผ ์๋ก ๊ณ ์น๋ ๋ฐฉ์ (๋นํจ์จ์ )
ํ์ฌ: ํ์ด์ง ์ผ๋ถ๋ง ๋์ ์ผ๋ก ๊ฐฑ์ (๋น๋๊ธฐ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋จ)
*๋น๋๊ธฐ: ์์ ์ ์์ฒญํ๊ณ ๊ทธ ์์ ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ค๋ฅธ ์ผ์ ํ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐฉ์
๐๋จ์
- ๋ณต์กํ ์ฝ๋: AJAX๋ฅผ ์ฌ์ฉํ ๋๋ XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ง์ ๋ค๋ค์ผ ํด์ ์ฝ๋๊ฐ ๊ธธ์ด์ง๊ณ ๋ณต์ก
- ๋ธ๋ผ์ฐ์ ๊ฐ ์ฐจ์ด: ์ด๊ธฐ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ํธํ์ฑ ๋ฌธ์
- ์ง์ ๋ถ์กฑ: ์ผ๋ถ ๊ธฐ๋ฅ์ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์ ์ ๋๋ก ์ง์๋์ง ์์
2. Fetch API
2015๋ W3C ์น ํ์ค ์ฑํ๋จ (2014๋ ์ฏค ๋ฑ์ฅ)
๊ธฐ์กด: AJAX์ XMLHttpRequest ๊ฐ์ฒด ์ฌ์ฉ ๋ณต์ก, ์ง๊ด์ ์ด์ง ์์
ํ์ฌ: ์ง๊ด์ ์ด๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์ด Promise ๊ธฐ๋ฐ ์ค๊ณ
= ๊ฐ๋ฒผ์ด ๋๋์ด ๊ฐํ๊ณ ์ค์นํ ํ์ ์์ด์ ํธํจ
๐์ฅ์
- Promise ๊ธฐ๋ฐ: ๋น๋๊ธฐ ์ฒ๋ฆฌ์์ then()๊ณผ catch()๋ฅผ ์ด์ฉํ ์ฒด์ด๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๊ฐ ๊น๋ํ๊ณ ์ฝ๊ธฐ ์ฌ์
- ๊ธฐ๋ณธ ๋ด์ฅ API: Fetch๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ API๋ผ์ ์ถ๊ฐ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํ ํ์๊ฐ ์์
- ์๋ต ์ฒ๋ฆฌ: ์๋ต์ ๋ฐ๋ก JSON์ผ๋ก ์ฒ๋ฆฌํ ์ ์์ด ์ง๊ด์ ์ด๊ณ ๊ฐ๋จ
๐๋จ์
- ๋ธ๋ผ์ฐ์ ํธํ์ฑ: ์ด๊ธฐ์๋ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์ ์ง์๋์ง ์์์ ํด๋ฆฌํ์ด ํ์, ํ์ฌ๋ ๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ์์ ์ง์ํ์ง๋ง, ์ฌ์ ํ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์๋ ๋ฌธ์
- ์๋ฌ ์ฒ๋ฆฌ: Fetch๋ HTTP ์ค๋ฅ ์ํ๋ฅผ ์๋์ผ๋ก ์ฒ๋ฆฌํ์ง ์๊ธฐ ๋๋ฌธ์, ์ํ ์ฝ๋๊ฐ 400 ์ด์์ผ ๊ฒฝ์ฐ ์ง์ throw๋ก ์ฒ๋ฆฌํด์ผ ํจ
- ์ํ ๊ด๋ฆฌ ํ์: ์๋ต์ด ์ฑ๊ณต์ ์ธ์ง ์๋์ง๋ฅผ ๊ฐ๋ฐ์๊ฐ ๋ช ์์ ์ผ๋ก ํ์ธํด์ผ ํ๋ฏ๋ก, ์ฝ๋๊ฐ ์ข ๋ ๋ฒ๊ฑฐ๋ก์
3. Axios
2014๋ ์ ๋ง๋ค์ด์ง
์๋ฐ์คํฌ๋ฆฝํธ์์ ๋น๋๊ธฐ HTTP ์์ฒญ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ์ฌ: XMLHttpRequest์ Fetch์ ์ฅ์ ์ ๊ฒฐํฉ, ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ , ์ง๊ด์ ๋ฑ๋ฑ
= ๋ฌด๊ฑฐ์ด ๋๋์ ์ค์นํด์ผํ์ง๋ง ์๋ฌ์ฒ๋ฆฌ๋ ๋ค์ํ ๋ฐฉ๋ฉด์์ ํธ๋ฆฌ
๐์ฅ์
- ์๋ JSON ๋ณํ: ์๋ฒ ์๋ต์ ์๋์ผ๋ก JSON ๊ฐ์ฒด๋ก ๋ณํํด์ค์, ๋ณ๋์ ๋ณํ ์์ ์ด ํ์ ์์
- ์๋ต ์ธํฐ์ ํฐ: ์๋ต์ ๋ฐ๊ธฐ ์ ์ ํน์ ์์ ์ ์ฒ๋ฆฌํ๊ฑฐ๋, ์๋ต์ ๋ฐ์ ํ์ ์กฐ์ํ ์ ์์
- ์์ฒญ ์ทจ์ ๊ธฐ๋ฅ: ์์ฒญ์ ์ทจ์ํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํจ
- ๋ธ๋ผ์ฐ์ ํธํ์ฑ: Axios๋ ๊ตฌํ ๋ธ๋ผ์ฐ์ ๋ถํฐ ์ต์ ๋ธ๋ผ์ฐ์ ๊น์ง ํญ๋๊ฒ ํธํ๋จ
- ํธ๋ฆฌํ ๊ธฐ๋ฅ๋ค: axios.all๋ก ์ฌ๋ฌ ์์ฒญ์ ๋ณ๋ ฌ ์ฒ๋ฆฌํ ์ ์๊ณ , Promise ๊ธฐ๋ฐ์ด๋ผ ์ค๋ฅ ์ฒ๋ฆฌ๋ ์ฌ์
๐๋จ์
- ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ: Axios๋ ๊ธฐ๋ณธ ๋ด์ฅ API๊ฐ ์๋๋ผ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ค์นํด์ผ ํ๊ธฐ ๋๋ฌธ์, ์ถ๊ฐ์ ์ธ ์ค์น์ ์ค์ ์ด ํ์ํจ
- ์๋์ ์ผ๋ก ํฐ ์ฉ๋: Axios๋ Fetch๋ XMLHttpRequest์ ๋นํด ์กฐ๊ธ ๋ ํฐ ์ฉ๋์ ์ฐจ์งํ ์ ์์