자바스크립트/끄적끄적

[Javascript] AJAX란?

포포015 2021. 3. 4. 10:43

JavaScript의 라이브러리중 하나이며 Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자이다.

 

여기서, 비동기 방식이 무엇인지 궁금할것인데

 

우리가 웹 페이지에서 어떤 요청을 하면 화면 전체가 깜빡할것이다. 이럴경우

 

F12(개발자모드) 에서 네트워크 탭에서, 데이터를 확인해보면

 

전체 데이터를 리로드 하는경우가 있다. 이런경우 (동기 방식) 전체 데이터를 리로드 하는방식이다.

 

동기 - 정해진 순서대로만 진행 가능하다. (어떠한 처리를 할경우 그처리를 처리후 다른걸로 넘어간다)

비동기 - 여러개의 요청사항을 한꺼번에 진행할수 있다. ( 대표적으로 백그라운드랑 똑같은 개념이라 생각하면됨)

 

비동기식의 장점

페이지리로드를 할경우 전체 리소스를 다시 불러와야 하는데, 일부분만 불러오기때문에 

리소스 낭비 없이 사용할수 있다. (리소스낭비 X) 

 

AJAX의 방식

AJAX라는 네트워크 기술을 이용하여 클라이언트에서 서버로 데이터를 요청하고 그에 대한 결과를 돌려받을 수 있다.

 

AJAX의 장단점

1. AJAX의 장점

  • 웹페이지의 속도향상
  • 서버의 처리가 완료될 때까지 기다리지 않고 처리가 가능하다.
  • 서버에서 Data만 전송하면 되므로 전체적인 코딩의 양이 줄어든다.
  • 기존 웹에서는 불가능했던 다양한 UI를 가능하게 해준다. ( Flickr의 경우, 사진의 제목이나 태그를 페이지의 리로드 없이 수정할 수 있다.)

2. AJAX의 단점

  • 히스토리 관리가 되지 않는다.
  • 페이지 이동없는 통신으로 인한 보안상의 문제가 있다.
  • 연속으로 데이터를 요청하면 서버 부하가 증가할 수 있다.
  • XMLHttpRequest를 통해 통신하는 경우, 사용자에게 아무런 진행 정보가 주어지지 않는다. (요청이 완료되지 않았는데 사용자가 페이지를 떠나거나 오작동할 우려가 발생하게 된다.)
  • AJAX를 쓸 수 없는 브라우저에 대한 문제 이슈가 있다.
  • HTTP 클라이언트의 기능이 한정되어 있다.
  • 지원하는 Charset이 한정되어 있다.
  • Script로 작성되므로 디버깅이 용이하지 않다.
  • 동일-출처 정책으로 인하여 다른 도메인과는 통신이 불가능하다. (Cross-Domain문제)