React๋ฅผ ์ฌ์ฉํด์ ์๋ฒ์ ํต์ ์ ํ๊ธฐ ์ํด์๋ Axios ํน์ Fetch์ ๊ฐ์ HTTP ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค
Fetch API๋ ๋คํธ์ํฌ ์์ฒญ์ ์ํด fetch()๋ผ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋ด์ฅ๋์ด์์ด์ ๋ฐ๋ก ์ค์นํ ํ์ ์์ด ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด Axios์ ๊ฒฝ์ฐ์๋ npm์ด๋ yarn์ ์ด์ฉํด์ ์ค์น๋ฅผ ํด์ผํฉ๋๋ค.
๋ ๋ค promise ๊ธฐ๋ฐ์ด๋ผ์ ์ดํ ํน์ ๊ฑฐ๋ถํ ์ ์๋ promise๋ฅผ ๋ฐํํฉ๋๋ค.
Axios vs Fetch ๋ฌธ๋ฒ
//Axios
axios.get( url, { ์ต์
}, {} )
or
axios(url, {
method: 'get',
headers: {
"Content-Type: "application/json" },
data: {},
})
//fetch
fetch(url, {
method: "GET",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
Axios vs Fetch ์๋ต์ฒ๋ฆฌ
axios๋ฅผ jsonํ์ ์ผ๋ก response๋ฅผ ๋ฐ๋ ๋ฐ๋ฉด, fetch๋ jsonํ์ ์ด ์๋๊ธฐ ๋๋ฌธ์ response ๋ฐญ์ ๋. .json()์ ๋ถ์ฌ์ ๋ฐ์ดํฐ ํฌ๋งท์ ํ๋ฒ ํด์ค์ผํฉ๋๋ค. aixos๋ responseType ์ญ์ ์ง์ ํด์ ๋ฐ์ ์ ์์ต๋๋ค. (ex, 'document, blob ๋ฑ)
๊ธฐ๋ณธ์ ์ธ axios์ fetch์ ๋ํด์ ์์๋ดค์ต๋๋ค.
์ฃผ๋ก node.js ํ๊ฒฝ์์ ์์ ์ ํ๋ค๋ณด๋ ์์ฐ์ค๋ axios๋ฅผ ๋ง์ด ์ฐ๋ ํธ์ ๋๋ค. get, post ๋ฑ ์ด๋ค HTTP method๋ฅผ ์ฐ๋๋์ ์๊ด์์ด ๋ฐ์ดํฐ๋ฅผ ์ด๋ป๊ฒ ํ์์ ๋ณด๋ผ ๊ฑด๊ฐ์ ๋ํ ์ด์ผ๊ธฐ๋ฅผ ํ๊ณ ์ถ์ต๋๋ค. ์ ๋ ์ฟผ๋ฆฌ๋ก ๋ณด๋ธ๋ค๊ณ ํ๋ฉด ๋น์ฐํ๊ฒ url ๋ค์ ์ด์ด์ ๋ถ์ฌ์ ๋ณ์๋ฅผ ๋ฃ์ด์ ๋ณด๋ธ๋ค๊ณ ์๊ฐํ๋๋ฐ, ๊ทธ๊ฒ ์๋๋ผ get ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ params๋ก ๋ฐ๋์ ํ์ ๋ณด๋ด๋ ์์์ ์ฟผ๋ฆฌ๋ก ๋ณด๋ด์ง๋ค๋ ๊ฒ! ์๋ ๋ฐ๋์ ํ์๋ณด๋ด๋๊ฒ๋ง headers ์์ data๋ก ํ์ฐ๋๊ฑฐ ์๋๊ฐ์? ํ๋๋ ๊ทธ๊ฒ์ post๋ฅผ ์ธ ๋!!! get์ ์ฟผ๋ฆฌ๋ ๋ฐ๋์ด๋ ๋ค ๋ฐ์ดํฐ๋ก ๋ฃ์ด์ ๋ณด๋ด๋ฉด ๋๋ค๋ ์ฌ์ค์ ์๊ฒ๋์์ต๋๋ค! ์ด์ ๊น์ง ์ฟผ๋ฆฌ๋ก ๋ณด๋ด์ฃผ์ธ์~ ํ๋ฉด url์ ์ด์ด ๋ถ์ฌ์ ๋ณด๋ผ ํ๋ผ๋ฏธํฐ๋ง ๋ณ์๋ก ๋ฃ์ด์ ๋ณด๋๋ ๊ธฐ์ต๋ฟ์ธ๋ฐ, ๋ณด๋ด์ผํ ์ฟผ๋ฆฌ๊ฐ ์์ฒญ ๋ง์๋ฐ ์ด๊ฑธ ๋ค ์ค์ค์ด ์ ์ด์ ์ด๋ป๊ฒ ๋ณด๋ด์ง? ๋ผ๋ฉฐ ๋ญ๊ฐ ์ด์ํ๋ค๋ ๊ฑธ ๋๊ผ๋ค! ใ ใ ใ .... ์ญ์ ์ ๋ชป ๋ ๋ฐฉ๋ฒ.....
'๊ฐ๋ฐ > ๐ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2023 7์) ์ฃผ๋์ด ๊ฐ๋ฐ์์ ํ๊ณ ๋ก (0) | 2023.07.31 |
---|---|
[220711] javascript - sleep() ์ง์ฐ ํจ์ ์ฐ๊ธฐ! (0) | 2022.07.11 |
[220701] TIL - git! ๋๋ ๋ ์!! (์๊ฒฉ ์ ์ฅ์์ ์๋ชป pushํ ํ์ผ๋ค ์ง์ฐ๊ธฐ) (0) | 2022.07.03 |
[220627] TIL - AccessToken, RefreshToken ๋ฐ๊ธ / FormData ํ๋ผ๋ฏธํฐ ํ์ (0) | 2022.06.27 |
[220410] TIL (0) | 2022.04.10 |