“Connecting the dots”

JAVAStuDY AJAX 본문

JAVA

JAVAStuDY AJAX

kims1997 2023. 6. 19. 11:24
반응형

Ajax

AJAX란 ,JAVAScript의 라이브러리중 하나이며 Asynchronous javascript And Xml(비동기식 자바스크립트와 xml)의 약자

브라우저가  가지고있는 XMLHttpRequest객체를 이용해서 전체 페이지를 새로 고치지 않고도 페이지의 일부만을 위한 데이터를 로드 하는 기법이다 JavaScript 를 사용한 비동기 통신,클라이언트와 서버간에 XML데이터를 주고 받는 기술 

즉 쉽게 말하자면 자바스크립트에서 서버에 데이터를 요청하는 것

 


AJAX를 사용 가능하게 만드는 것들 

AJAX 라는 기술은 여러가지 기술이 혼합적으로 사용되어 이루어진다 대표적인 예로는 

  • HTML
  • DOM
  • JAVAScript
  • XMLHttpRequset 
  • Etc

AJAX로 할수 있는것 

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

간단하게 말하면 서버와 클라이언트(나)와 통신이다

 


클라이언트란?

서버에서 정보를 가져와서 사용자에게 보여줄 수 있고 사용자와 상호작용할 수 있는 소프트웨어 이다 


서버란?

네트워크 상에서 잡근할 수 있는 프로그램으로서 언떤 자료들에 대한 권리나 접근을 제어헤주는 프로그램이다 서브는 일반적으로 사용자가 직접적으로 사용하지 않는다


AJAX 를 사용하는 이유 

단순하게 WEB화면에서 무언가 부르거나 데이터를 조회하고 싶을 경우 ,페이지 전테를 새로고침하지 않기 위해 사용한다고 볼수 잇따 

기본적으로 HTTP 프로토콜은 클라이언트쪽에서 Request 를 보내고 Request 를 받으면 이어졌던 연결이 끊기게 되어있다.그래서 화면의 내용을 갱신하기 위해서는 다시 request를하고 response를 하며 페이지 전체를 갱신하게된다 하지만 이렇게 할경우 엄청난 자원낭비와 시간낭비를 초래하고 말 것이다 

AjAX 는 HTML 페이제 전체가 아닌 일부분만 갱신할 수 잇도록 XMLHttpRequest객체를 통해 서버에 request 한다 이경우 JSON이나 XML형태로 필요한 데이터만 받아 갱신하기 떄문에 그만큼의 자원과 시간을 아낄 수 있다


AJAX의 장점

  • 웹페이지의 속도 향상
  • 서버의 처리가 완료될 떄까지 가디리지 않고 처리가 가능하다 
  • 서버에서 DATA만 전송하면 되므로 전체적인 코딩의 양이 줄어든다
  • 기존웹에서는 불가능했던 다양한 UI를 가능하게 해준다 

AJAX의 단점

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

AJAX의 진행과정

  1. XMLHttpRequest Object를 만든다.
    • request를 보낼 준비를 브라우저에게 시키는 과정
    • 이것을 위해서 필요한 method를 갖춘 object가 필요함
  2. callback 함수를 만든다.
    • 서버에서 response가 왔을 때 실행시키는 함수
    • HTML 페이지를 업데이트 함
  3. Open a request
    • 서버에서 response가 왔을 때 실행시키는 함수
    • HTML 페이지를 업데이트 함
  4. send the request

 axios

  • 구형 브라우저를 지원한다.
  • 응답 시간 초과를 설정하는 방법이 있다.
  • JSON 데이터 자동변환이 가능하다.
  • node.js에서의 사용이 가능하다.
  • request aborting(요청 취소)가 가능하다.
  • catch에 걸렸을 때, .then을 실행하지 않고, console창에 해당 에러 로그를 보여준다.
  • return값은 Promise 객체 형태이다.

fetch

  • JavaScript의 내장 라이브러리이기 때문에 import 하지 않고 사용할 수 있다.
  • 라이브러리의 업데이트에 따른 에러 방지가 가능하다.
    (React Native의 경우 업데이트가 잦아서 라이브러리가 쫓아오지 못하는 경우가 많은데, fetch의 경우 이를 방지할 수 있다.)
  • 네트워크 에러가 발생했을 때 기다려야한다. (response timeout API 제공X)
  • 지원하지 않는 브라우저가 있다.
  • return값은 Promise 객체 형태이다.

정리

Ajax - 서버와 클라이언트 통신

                       axios는 ajax등의 웹 통신 기능을 제공하는 라이브러리

 

반응형

'JAVA' 카테고리의 다른 글

MyBatis 마이바티스 개념과 적용!  (0) 2023.07.03
자바 이미지업로드  (0) 2023.06.29
javaStudy XML  (0) 2023.06.16
자바 Study JSP  (0) 2023.06.12
자바 study  (0) 2023.06.08