Nerd
Nerd
Nerd
전체 방문자
오늘
어제
  • 분류 전체보기 (439)
    • Today I Learned (333)
    • 주간회고 (8)
    • FrontEnd (5)
    • ErrorNote (7)
    • 자바스크립트 (24)
    • 알고리즘 (13)
    • html과 css (21)
    • 토이프로젝트 (5)
    • React-Native (1)
    • React (13)
    • node (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 절차지향적 프로그래밍
  • 모던 자바스크립트
  • 주간회고
  • Today I Learned
  • 에러노트
  • 명령적 프로그래밍
  • 파이썬기초
  • 자바스크립트
  • TIL
  • ErrorNote
  • wil
  • 코드숨
  • 데이터 타입
  • pacakge.json
  • 파이썬 기초
  • Redux
  • package-lcok.json
  • npm i
  • 리액트 훅
  • 선언적 프로그래밍
  • npm ci
  • 3FS
  • 리덕스 툴킷
  • React
  • 메타인지
  • JSX
  • 리액트
  • 토이프로젝트
  • 값의 할당 및 재할당
  • 토이 프로젝트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Nerd

Nerd

FrontEnd

FrontEnd] Axios 와 Fetch의 차이점

2022. 1. 4. 00:47

들어가기 앞서 Axios에 대한 기본 정보를 알아보겠습니다.

Axios는 node.js와 브라우저를 위한 HTTP통신 라이브러리입니다.

비동기로 HTTP통신을 가능하게 해 주며 return을 promise 객체(Json 형식)로 해주기 때문에

데이터 다루기에도 용이합니다.

axios 와 fetch의 차이

axios fetch
요청 객체에 url이 있습니다. 요청 객체에 url이 없습니다.
라이브러리 설치가 필요합니다. 빌트인이라 설치가 필요없습니다.
XSRF 보호를 해줍니다. 별도의 보호가 없습니다.
data 속성을 사용합니다. body 속성을 사용합니다.
data 는 object를 포함합니다. body는 문자열화 되어있습니다.
status가 200이고 statusText가 ok면 성공입니다. 응답객체가 ok속성을 포함하면 성공입니다.
자동으로 JSON 데이터 형식으로 변환됩니다. .json()메소드를 사용해야합니다.
요청을 취소할 수 있으며 타임아웃을 걸 수 있습니다. 요청 취소 및 타임아웃을 거는 기능이 없습니다.
HTTP 요청을 가로챌 수 있습니다. 해당 기능을 제공하지 않습니다.
다운로드 진행에 대해 기본적인 지원을 합니다. 다운로드 진행에 대해 지원하지 않습니다.
많은 브라우저에 지원이 됩니다. 특정 브라우저 버전 이상에서 지원됩니다.

axios를 사용하면 구형 브라우저를 지원하는 것은 물론 JSON 데이터를 자동으로 변환해주기 때문에 편안하게 사용할 수 있습니다.

하지만 axios는 자바스크립트의 내장 라이브러리는 아니기 때문에 

ReactNative와 같이 업데이트가 잦은 경우 버전을 쫓아가지 못하는 경우가 발생할 수 있습니다.

이러한 부분에 있어서 fetch는 자바스크립트의 내장 라이브러리이기 때문에 버전을 쫓아오지 못하는 것을 방지할 수 있습니다.

axios와 fetch는 어떤게 좋고 나쁜 것이 아닌 상황에 따라 

구형 브라우저를 사용하는 유저가 많은 사이트일 경우 axios를 사용하고

ReactNative와 같이 업데이트가 잦은 프레임워크 및 라이브러리를 사용한다면

fetch를 사용하여

유동적으로 필요에 따라 선택하는게 가장 좋은 방법입니다!

'FrontEnd' 카테고리의 다른 글

선언적 프로그래밍과 명령적 프로그래밍  (0) 2023.08.20
Redux] 리덕스 툴킷 configureStore  (0) 2022.01.06
Redux] 불변성 유지  (0) 2021.12.30
Redux] 리덕스를 사용하는 이유는 무엇일까? (feat.전역상태관리)  (0) 2021.12.27
    'FrontEnd' 카테고리의 다른 글
    • 선언적 프로그래밍과 명령적 프로그래밍
    • Redux] 리덕스 툴킷 configureStore
    • Redux] 불변성 유지
    • Redux] 리덕스를 사용하는 이유는 무엇일까? (feat.전역상태관리)
    Nerd
    Nerd
    꾸준히 열심히 지속적으로 하겠습니다!

    티스토리툴바