[LG 유레카] Ajax
AJAX(Asychronous JavaScript and XML)Permalink
웹 페이지에서 데이터를 주고 받는 방법 중 하나이다. AJAX는 웹페이지를 새로 고침하지 않아도 서버와 데이터를 주고받을 수 있게 해준다.
AJAX의 기본 개념Permalink
-
비동기 서버 통신이다.
웹 페이지가 서버에 요청을 보내고 응답을 받을 때까지 기다리지 않고, 다른 작업을 계속할 수 있다는 것
➡️ 순차적이지 않은 병렬적인 방식으로 실행을 하는 것이다.
-
전체 페이지를 다시 로드하지 않고도 필요한 부분만 업데이트 할 수 있다.
예를 들면 댓글을 작성할 때, 전체 페이지를 새로고침하지 않고 댓글 부분만 업데이트 할 수 있다.
-
서버와 데이터를 주고 받을 때 XML, JSON, HTML 등을 사용할 수 있다.
예전엔 XML이 많이 사용되었지만, JSON이 요즘엔 많이 사용된다.
AJAX의 동작 원리Permalink
자바스크립트를 사용해 서버에 요청을 보내고, 서버에서 응답을 받아 그 데이터를 웹 페이지의 특정 부분에 표시하는 방식으로 동작한다.
-
사용자가 페이지에서 어떠한 동작을함
사용자가 댓글을 작성하고 확인 버튼을 누름
-
브라우저가 자바스크립트를 사용해 서버에 요청을 보냄
자바스크립트가 사용자가 입력한 댓글을 서버로 전송
-
서버가 요청을 처리하고 데이터를 응답함
서버가 댓글을 데이터베이스에 저장하고, 성공적으로 저장되었다는 응답을 보냄
-
자바스크립트가 서버의 응답을 받아 웹 페이지의 특정 부분을 업데이트한다.
새로운 댓글을 웹 페이지 댓글 목록에 추가함
AJAX의 장점Permalink
-
빠른 응답
서버에서 필요한 데이터만 주고 받기 때문에 전체 페이지를 새로고침하는 것보다 훨씬 빠르게 응답 가능
-
사용자 경험 향상
페이지의 일부분만 업데이트하기 때문에 사용자는 웹 애플리케이션을 더 부드럽고 빠르게 느낄 수 있다.
-
대역폭 절약
필요한 데이터만 주고받기 때문에 네트워크 자원을 절약할 수 있다.
AJAX의 단점Permalink
-
복잡성 증가
전통적인 요청-응답 방식보다 더 많은 코드가 필요하고, 관리하기가 복잡하다.
-
브라우저 호환성
예전에는 모든 브라우저가 AJAX를 지원하지 않았지만 지금은 대부분 브라우저가 지원한다.
-
보안 이슈
서버와의 통신이 많아지면, 보안에 더 신경써야 한다.
AxiosPermalink
JavaScript로 작성된 HTTP 클라이언트 라이브러리이다. 웹 브라우저에서 서버와 데이터를 주고받을 수 있도록 도와주는 도구이다. Axios는 특히 Promise 기반으로 동작하며, 비동기적 요청을 간편하게 처리해준다.
Axios의 주요 기능Permalink
-
HTTP 요청을 쉽게 보낼 수 있다.
GET, POST, PUT, DELETE 등의 HTTP 요청을 쉽게 작성할 수 있다.
-
응답 데이터를 자동으로 JSON 형태로 파싱해준다.
서버에서 JSON으로 데이터를 받으면, 자동으로 JavaScript 객체로 변환해준다.
-
브라우저 호환성
Axios는 오래된 브라우저도 잘 지원한다.
-
Promise 기반
비동기 코드를 더 간결하게 작성할 수 있게 해준다.
async/await
와 함께 쓰면 더 편리하다. -
인터셉터
요청이나 응답 전에 작업을 가로채고 처리할 수 있는 기능을 제공한다.
Request Method 종류Permalink
- GET : axios.get(url[,config])
- POST: axios.post(url, data[, config])
- PUT: axios.put(url, data[, config])
- DELETE: axios.delete(url[,config])
기본 사용법Permalink
기본 예제
import axios from 'axios';
function fetchData(){
axios.get('https://jsonplaceholder.typicode.com/posts/1')
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('에러', error);
});
}
fetchData();
이 예제는 서버에 간단한 GET 요청을 보내서 데이터를 받아오고, 그 데이터를 화면에 출력하는 예제이다.
코드를 실행하면, https://jsonplaceholder.typicode.com/post/1
라는 주소로 GET 요청을 보내고, 그 결과를 콘솔에 출력하게된다.
Axios 이해하기 : 음식 배달 서비스Permalink
Axios를 음식 배달 서비스에 비유해보겠다.
-
Axios 라이브러리
배달앱이라고 생각하면된다. 이 앱을 통해 우리가 음식을 주문(요청)하고 음식(데이터)를 받아볼 수 있다.
-
HTTP 요청
배달 앱에서 음식을 주문하는 것과 같다. 우리는 음식점(서버)에게 특정 음식을 요청(GET)하거나 우리의 취향대로 주문(POST)할 수 있다.
-
Promise
음식점에서 배달 음식이 오기를 기다리는 것이다. 음식이 준비되면, 배달원이 음식을 가져다 주는데(Promise 이행) 만약 주문이 잘못 되었다면 배달원이 음식을 잘못 가져다주는 것 처럼 오류가 발생할 수 있다.(Promise 거부)
-
인터셉터
배달 도중에 앱에서 상태를 확인하는 것이다. 음식이 잘 오고 있는지, 문제가 없는지 확인하고 처리한다.
댓글남기기