프로젝트 마무리 발표 준비 단계에서, 내가 개발한 부분을 영어로 작성하다가, 게시글(우리는 내내 post라고 불렀다) 생성, 수정, 삭제를 통틀어 뭐라고 해야할지 몰라 구글링을 열심히 해보았다.
처음에는 그냥 CRUD(Create, Read, Update, Delete)라고 하면 되지 않나, 했지만, CRUD는 백엔드 영역이라 적합하지 않아보인다고 팀원이 말해주었다. 그래서 계속 구글링을 하다가 AJAX가 무엇인가에 대해서 본의아니게 다시 공부하게 되었다.
우선, 우리 프로젝트에서는 axios를 사용하므로 AJAX를 쓰지 않는다.
AJAX는 예를 들어 우리가 배운 것 중엔 fetch를 사용한다는 것이다.
Asynchronous JavaScript And XMLHttpRequest
자바스크립트를 이용해서 비동기적(Asynchronous)으로 서버와 브라우저가 데이터를 교환할 수 있는 통신 방식
기존에 웹에서 비동기 요청을 할 때는 XHR(XML HTTP Request)객체를 사용했어야 했었는데, XHR은 잘 디자인되어 있는 API가 아니다.
이를 보완하기 위해 HTTP 요청에 최적화 되어있는 API가 생겨났는데, 그게 axios 와 fetch !
AJAX를 구성하는 핵심 기술은 JavaScript, DOM, fetch 이다.
전통적인 웹 애플리케이션에서는 <form> 태그를 이용해 서버에 데이터를 전송해야 했다.
그리고 클라이언트에서 요청을 보내면 매번 새로운 페이지로 이동해야 했다.
그러나 fetch를 사용하면, 페이지를 이동하지 않아도 서버로부터 필요한 데이터를 받아올 수 있다.
Fetch는 사용자가 현재 페이지에서 작업을 하는 동안 서버와 통신할 수 있도록 한다.
즉, 브라우저는 Fetch가 서버에 요청을 보내고 응답을 받을 때까지 모든 동작을 멈추는 것이 아니라,
계속해서 페이지를 사용할 수 있게 하는 비동기적인 방식을 사용한다.
또한 자바스크립트에서 DOM을 사용해 조작할 수 있기 때문에,
fetch를 통해 전체 페이지가 아닌 필요한 데이터만 가져와 DOM에 적용시켜
새로운 페이지로 이동하지 않고 기존 페이지에서 필요한 부분만 변경할 수 있다.
장점
단점
Node.js와 브라우저를 위한 HTTP 통신 라이브러리
장점
단점
import axios from 'axios'
상단에 항상 필요)" 일단 웹 프론트 프레임워크(react js,vue js 등)을 다룰때에는 Axios를 사용하는 것이 더 좋다고 생각합니다.
Axios는 크로스 브라우징에 신경을 많이 쓴 모듈인게 눈에 보이며, 기능또한 우수하기 때문이죠.
전체적으로 제가 봤을 때 fetch의 상위 호환이라고 생각을 합니다.
✋ 다만, react-native에서는 fetch를 사용하는 것이 아주 조금 더 좋다고 생각합니다. react-native의 경우 아직 안정화 된 프레임워크가 아니기에 지속적인 version update가 진행되고 있고, axios에서 이를 반영하지 못할 경우 생각지 못한 에러가 발생할 수 있다는 우려 때문입니다. "
출처 : [개발상식] Ajax와 Axios 그리고 fetch
References
https://velog.io/@kysung95/%EA%B0%9C%EB%B0%9C%EC%83%81%EC%8B%9D-Ajax%EC%99%80-Axios-%EA%B7%B8%EB%A6%AC%EA%B3%A0-fetch
https://lily-im.tistory.com/15
https://cocoon1787.tistory.com/756