fetch์™€ Axios ๋น„๊ต
728x90

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๋ฅผ ์“ฐ๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค๊ณ  ํ•œ๋‹ค.

์“ฐ๋Š” ์ฝ”๋“œ๋„ ๋น„์Šทํ•œ ํŽธ์ด๋‹ˆ ๊ฒฝ์šฐ์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•ด๋ณด๋„๋ก ํ•˜์ž! ๐Ÿ™Œ

 

 

 

728x90