axiso
Axios ๋ ๋ธ๋ผ์ฐ์ , Node.js ๋ฅผ ์ํ Promise API ๋ฅผ ํ์ฉํ๋ HTTP ๋น๋๊ธฐ ํต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(return ์ promise ๊ฐ์ฒด๋ก ํด์ฃผ๊ธฐ ๋๋ฌธ์, response ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ฌ์ด ์ฅ์ )
axios ํน์ง
- ์ด์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ์ XMLHttpRequest ๊ฐ์ฒด ๋๋ Node.js์ http api ์ฌ์ฉ
- Promise(ES6) API ์ฌ์ฉ
- ์์ฒญ๊ณผ ์๋ต ๋ฐ์ดํฐ์ ๋ณํ
- HTTP ์์ฒญ ์ทจ์
- HTTP ์์ฒญ๊ณผ ์๋ต์ JSON ํํ๋ก ์๋ ๋ณ๊ฒฝ
axios ๊ธฐ์ด๋ฌธ๋ฒ
axios ์์ฉ๋ฌธ๋ฒ
fetch
Javascript ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ผ๋ก, Promise ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ด axios ๊ฐ ๋ฑ์ฅํ๊ธฐ ์ , ๋น๋๊ธฐ ์ฒ๋ฆฌ ํ๋ก๊ทธ๋๋ฐ ๊ฐ๋ฐ ์, ํ์์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ด๋ค.
fetch ๋ ๋๊ฐ์ ์ฝ๋๊ฐ ๋ฐ๋ณต๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๊ธฐ ๋๋ฌธ์, ๋ชจ๋ํ๋ฅผ ํตํด ๋ฐ๋ก ์ ์ธํด๋๊ณ ๋ณ์๋ฅผ ํ ๋นํ๋ ๊ฒ์ด ํธ์์ฑ์ด ์ฉ์ดํ๋ค.
fetch ๊ธฐ์ด ๋ฌธ๋ฒ
fetch ์์ฉ ๋ฌธ๋ฒ
axios vs fetch ์ ์ฐจ์ด์
axios |
fetch |
3rd Party lib ๋ก ์ค์น๊ฐ ํ์ |
ํ๋ ๋ธ๋ผ์ฐ์ ์ ๋นํธ์ธ์ด๋ผ ์ค์น ํ์ ์์ |
XSRF ๋ณดํธ๋ฅผ ํด์ค๋ค. |
๋ณ๋ ๋ณดํธ ์์ |
data ์์ฑ์ ์ฌ์ฉ |
body ์์ฑ์ ์ฌ์ฉ |
data๋ object๋ฅผ ํฌํจํ๋ค |
body๋ ๋ฌธ์์ดํ |
status๊ฐ 200์ด๊ณ statusText๊ฐ โOKโ์ด๋ฉด ์ฑ๊ณต์ด๋ค |
์๋ต๊ฐ์ฒด๊ฐ ok ์์ฑ์ ํฌํจํ๋ฉด ์ฑ๊ณต์ด๋ค |
JSON๋ฐ์ดํฐ ํ์์ผ๋ก ์๋๋ณํ |
.json()๋ฉ์๋ ์ ์ธ ํ์ |
์์ฒญ์ ์ทจ์ํ ์ ์๊ณ ํ์์์์ด ๊ฐ๋ฅํ๋ค. |
ํด๋น ๊ธฐ๋ฅ ์กด์ฌ ํ์ง์์ |
HTTP ์์ฒญ์ ๊ฐ๋ก์ฑ์ ์์ |
๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ์ง ์์ |
Download ์งํ์ ๋ํด ๊ธฐ๋ณธ์ ์ธ ์ง์์ ํจ |
์ง์ํ์ง ์์ |
๋๋ถ๋ถ์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ง์ํจ |
Chrome 42+, Firefox 39+, Edge 14+, and Safari 10.1+์ด์์ ์ง์ |