Today, What I learned?
Axios ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์๊ฒ ๋์๋ค. ์ด์ ์๋ ๋์ง์ ๋ค์ด๋ ๋ดค์ง๋ง ์ด๋ฒ ๊ธฐํ๋ก ์ ๋๋ก ์ ํ๊ฒ ๋์๋ค๋ ๋ง์ด ๋ ๋ง๊ฒ ๋ค.
Axios๋ฅผ ์๊ณ ๋๋ fetch์ ์ด๋ค ์ฐจ์ด๊ฐ ์๊ธธ๋? Axios๊ฐ ์ฑ๋ฅ์ด ๋ ์ข์๊ฐ?? ๊ฐ์ ๊ฒ๋ค์ด ๊ถ๊ธํด์ ธ์ ํ๋ฒ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค.
Axios
๊ณต์๋ฌธ์์์๋ 'Axios๋ node.js์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ Promise
๊ธฐ๋ฐ HTTP ํด๋ผ์ด์ธํธ ์
๋๋ค.' ๋ผ๊ณ ์๊ฐ๋ฅผ ํ๊ณ ์๋ค.
์ฆ Promise
๋ฅผ ๊ธฐ๋ฐ์ผ๋ก HTTP๋ฅผ ์ด์ฉํด์ ์๋ฒ์ ๋น๋๊ธฐ๋ก ํต์ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค.
์๋์ ๊ฐ์ ํค์๋๋ก ์ค์นํ ์ ์๋ค.
npm์์ ์ฌ์ฉํ ๊ฒฝ์ฐ
$ npm install axios
yarn์์ ์ฌ์ฉํ ๊ฒฝ์ฐ
$ yarn add axios
๊ณต์ ๋ฌธ์๋ ์ด์ชฝ์์ ํ์ธํ ์ ์๋ค.
https://axios-http.com/kr/docs/intro
์์ํ๊ธฐ | Axios Docs
์์ํ๊ธฐ ๋ธ๋ผ์ฐ์ ์ node.js์์ ์ฌ์ฉํ ์ ์๋ Promise ๊ธฐ๋ฐ HTTP ํด๋ผ์ด์ธํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Axios๋? Axios๋ node.js์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํ Promise ๊ธฐ๋ฐ HTTP ํด๋ผ์ด์ธํธ ์ ๋๋ค. ๊ทธ๊ฒ์ ๋ํ ์ ๋๋ค(๋์ผํ ์ฝ
axios-http.com
Axios์ fetch ๋น๊ต
๊ฐ์ธ์ ์ผ๋ก ํ ์ด ํ๋ก์ ํธ๋ฅผ ์งํํ ๋๋ fetch๋ฅผ ์ฌ์ฉํ๋์ง๋ผ, ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด๊ฐ ๊ถ๊ธํ๋ค.
๊ณตํต์ ์ผ๋ก Promise ๊ธฐ๋ฐ์ด๋ผ๋ ํน์ง์ด ์์๋ค.
Axios๋ fetch์ ๋นํด ๋ณด์์ชฝ์ด๋ ์ฌ๋ฌ ๊ธฐ๋ฅ๋ค์ ์ถ๊ฐ์ ์ผ๋ก ์ ๊ณตํ๋ค๋ ์ ์ด ๊ฐ์ฅ ๋๋๋ฌ์ง๋ ์ฐจ์ด ๊ฐ์๋ฐ, ํ๋ก ๋น๊ตํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
Axios | fetch | |
์ค์น | ํจํค์ง ์ค์น ํ์ | ES6๋ถํฐ ๋ด์ฅ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ์ง์์ค |
ํธํ์ฑ | ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋ชจ๋ ์ง์ (IE 11๊น์ง๋!) | ๋๋ถ๋ถ ์ง์. IE์ ๊ฒฝ์ฐ ์ง์ํ์ง ์๋ ๋ฒ์ ๋ ์กด์ฌ |
์ฌ์ดํธ ๊ฐ ์์ฒญ ์์กฐ(XSRF) ๋ณดํธ ๊ธฐ๋ฅ | ์ง์ | ๋ฏธ์ง์ |
JSON ๋ฐ์ดํฐ ์๋ ๋ณํ | ์ง์ | ์ถ๊ฐ ๋ก์ง ํ์ (stringify ๊ฐ์) |
์์ฒญ ์ทจ์, ํ์์์ ๋ฑ ๊ธฐ๋ฅ | ์ง์ | ์์ |
์์ฒญ ์ธํฐ์ ํธ | ๊ฐ๋ฅ | ์์ |
๋ฌผ๋ก ์ด ์ธ์๋ ๋ ๋ง๊ฒ ์ง๋ง Axios ๊ณต์ ๋ฌธ์์ ๋์ด๋ ์ผ๋ถ ๊ธฐ๋ฅ๋ค๋ง ๋ด๋ ์ด๋ ๋ค.
fetch์ ๋นํด์ ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ด ์ข๊ณ , ์ถ๊ฐ์ ์ธ ๋ก์ง ๊ตฌํ ์์ด๋ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ๋ค์ด ๋ง์ Axios๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ๊ฒ ๊ฐ๋ค.
์ฝ๋๋ก ๋น๊ต
fetch๋ก GET ํธ์ถ
const getUser = async () => {
try{
const response = await fetch('/user?ID=12345')
} catch (error){
console.error(error);
}
}
Axios๋ก GET ํธ์ถ
const getUser = async() => {
try {
const response = await axios.get('/user?ID=12345');
} catch (error) {
console.error(error);
}
}
GET ํธ์ถ๋ง ๋ด๋ ๋ API๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๊ฑฐ์ ๋น์ทํ๋ค๊ณ ๋ณผ ์ ์๊ฒ ๋ค. ๐ค
๊ทธ๋ผ ๋ฌด์กฐ๊ฑด fetch๋ณด๋ค Axios๋ฅผ ์จ์ผ ํ๋๋? ๐ค ๊ทธ๊ฑด ๋ ์๋๋ค.
React-Native ์์ ์ ๋ฐ์ดํธ๊ฐ ๋น ๋ฅธ ํธ์ธ์ง๋ผ Axios๊ฐ ์ด๋ฅผ ๋ค ๋ฐ์ํ์ง ๋ชปํ ์ ์์ด ์ข ๋ ์์ ์ ์ธ fetch๋ฅผ ์ฐ๋ ๊ฒ์ ์ ํธํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค๊ณ ํ๋ค.
์ฐ๋ ์ฝ๋๋ ๋น์ทํ ํธ์ด๋ ๊ฒฝ์ฐ์ ๋ง๊ฒ ์ฌ์ฉํด๋ณด๋๋ก ํ์! ๐
'๐ Studying > ๐ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
React redux์ ํจ๊ป axios๋ฅผ ์ด์ฉํด์ deleteํ๊ธฐ (2) | 2022.12.22 |
---|---|
[React] Material UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉํด๋ณด๊ธฐ (0) | 2022.12.21 |
ํฌ๋ ๋ฆฌ์คํธ ๋ฆฌํฉํ ๋ง (2) | 2022.12.16 |
React์ Redux๋ฅผ ์ด์ฉํ ํฌ๋๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด๋ณด๋ฉฐ (0) | 2022.12.15 |
React onClick์ ํจ์ ๋๊ธธ ๋์ ๋งค๊ฐ๋ณ์ ์ฒ๋ฆฌ (1) | 2022.12.13 |
Comment