본문 바로가기
Javascript

AJAX

by titlejjk 2023. 6. 8.

AJAX는 "Asysnchronous JavaScript and XML"의 약어로, 웹 개발에서 사용되는 중요한 기술이다. AJAX를 사용하면 웹 페이지에서 서버와 비도이적으로 데이터를 교환하고, 페이지를 다시 로드하지 않고도 동적으로 콘텐츠를 업데이트할 수 있다.

 

AJAX는 웹 애플리케이션의 사용자 경험을 향상시키기 위해 개발되었다. 기존의 웹 애플리 케이션은 사용자가 폼을 제출하면 전체 페이지를 다시 로드해야 했지만, AJAX를 사용하면 필요한 데이터만 서버로 보내고, 서버는 그에 대한 응답으로 필요한 데이터만 보내줄 수 있다. 이로 인해 웹 페이지의 응답 속도가 향상되고, 사용자는 페이지의 로딩 없이도 대화형으로 상호작용할 수 있다.

 

AJAX는 JavaScript, XML, HTML, CSS 등 다양한 기술을 사용하여 구현된다. 하지만 최근에는 XML 대신 JSON을 주로 사용한다. JSON은 JavaScript Object Notation의 약어로, 데이터 교환을 위한 경량화된 포맷이다.

 

AJAX는 다음과 같은 주요 구성요소로 구성되어있다.👉

  1. XMLHttpRequest 객체
    AJAX요청을 만들고 서버와의 통신을 처리하는 JavaScript객체이다. XMLHttpRequest객체를 사용하여 서버에 데이터를 보내고, 서버로부터 데이터를 받아올 수 있다.
  2. 이벤트 핸들러
    AJAX요청의 다양한 단계(요청 전송, 응답 수신 등)에서 발생하는 이벤트를 처리하기 위해 이벤트 핸들러를 등록한다. 예를 들어, 요청이 성공적으로 완료되었을 때 호출되는 "onreadystatechange"이벤트 핸들러를 등록할 수 있다.
  3. Callback함수
    AJAX요청이 완료되었을 때 실행되는 콜백 함수를 정의할 수 있다. 콜백 함수는 서버로부터 받은 데이터를 처리하고, 웹 페이지의 콘텐츠를 업데이하는 등의 작업을 수행한다.

AJAX의 작동 과정은 다음과 같다.👉

  1. XMLHttpRequest 객체를 생성한다.
  2. XMLHttpRequest 객체의 메소드와 속성을 사용하여 요청을 구성한다. 이는 요청 메소드(GET, POST 등),요청 URL, 요청 헤더, 요청 데이터 등을 설정하는 단계이다.
  3. XMLHttpRequest 객체의 open()메소드를 사용하여 서버와의 연결을 연다.
  4. XMLHttpRequest 객체의 send()메소드를 호출하여 요청을 서버로 전송한다. 이때, 요청에 필요한 데이터를 선택적으로 전송할 수 있다.
  5. 서버는 요청을 처리하고, 필요한 데이터를 응답으로 전송한다.
  6. XMLHttpRequest 객체는 서버로부터 받은 응답을 처리하기 위해 이벤트를 발생시킨다.
  7. 등록된 이벤트 핸들러가 이벤트를 감지하고, 콜백 함수를 실행하여 응답 데이터를 처리한다.
  8. 웹 페이지의 콘텐츠를 동적으로 업데이트하거나 필요에 따라 추가 작업을 수행한다.

AJAX의 장점👉

  1. 비동기 통신
    AJAX는 비동기 통신을 기반으로 작동하여 페이지 전체를 다시 로드하지 않고도 서버와 데이터를 교환할 수 있다. 이는 사용자 경험을 향상시키고, 웹 애플리케이션의 응답성과 성능을 개선한다.
  2. 대화형 사용자 경험
    AJAX를 사용하면 웹 페이지의 일부분만 업데이트할 수 있으믈 사용자는 페이지의 로딩 없이도 실시간으로 데이터를 확인하고 상호작용할 수 있다. 예를 들어, 실시간 검색 결과 표시, 무한 스크롤, 채팅 등을 구현할 수 있다.
  3. 데이터 전송량 감소
    AJAX는 필요한 데이터만 서버로 보내고, 필요한 데이터만 받아오기 때문에 전체 페이지를 로드하는 것보다 훨씬 적은 데이터 양을 전송한다. 이는 대역폭을 절약하고, 네트워크 부하를 줄여준다.
  4. 서버 부하 감소
    AJAX를 사용하면 서버 측에서 데이터 처리와 페이지 렌더링을 분리할 수 있다. 서버는 필요한 데이터만 전송하고, 클라이언트 측에서 데이터처리와 UI 업데이트를 담당한다. 이로 인해 서버 부하가 감소하고, 더 많은 동시 사용자를 처리할 수 있다.
  5. 재사용성과 유지보수성
    AJAX는 웹 페이지의 일부분을 독립적으로 업데이트할수 있기 대문에, 코드의 재사용성과 유지보수성이 향상된다. 데이터 처리 및 UI 업데이트 로직을 모듈화하고 분리함으로써 개발과 유지보수가 용이해진다.

AJAX의 단점👉

  1. 보안문제
    AJAX를 사용할 때 보안에 주의해야한다. 서버와 클라이언트 간의 데이터 교환은 JavaScript를 통해 이루어지므로, 적절한 보안 대책을 강구해야한다. CSRF(사이트 간 요청 위조)와 XSS(크로스 사이트 스크립 팅)와 같은 보안 취약점을 예방하기 위해 적절하 방어 매커니즘을 구현해야한다.
  2. 검색 엔진 최적화(SEO)문제
    AJAX를 사용하면 페이지으 ㅣ일부분이 동적으로 업데이트 되므로, 일부 검색 엔진은 이를 인식하지 못할 수 있다.SEO를 중요하시 하는 경우, AJAX를 사용하기 전에 검색 엔진 친화적인 방법을 고려해야 한다.
  3. 초기로딩시간
    AJAX를 사용하면 초기 로딩시간이 증가할 수 있다. 초기 페이지 로드 이후에도 추가적인 요청과 데이터 처리가 필요하기 때문이다. 이는 AJAX를 적절하게 구현하고 최적화하는 것으로 완화할 수 있다.
  4. JavaScript필요
    AJAX는 JavaScript를 기반으로 작동하기 때문에, 사용자가 JavaScript를 비활성화한 경우에는 기능이 작동하지 않을 수 있다. 이는 일부 사용자나 환경에서 문제가 될 수 있으므로, 대체 콘텐츠를 제공하거나 대체 방법을 고려해야 한다.
  5. 디버깅과 테스트의 어려움
    AJAX를 사용한 웹 애플리케이션은 클라이언트와 서버 간의 상호작용이 많아진다. 이로 인해 디버깅과 테스트가 어려워질 수 있다. 적절한 도구와 기술을 사용하여 효율적인 디버깅 및 테스트를 수행해야 한다.

AJAX를 사용하면 웹 애플리케이션에서 다양한 작업을 수행할 수 있다.

AJAX는 다양한 프로그래밍 언어와 프레임워크에서 지원되고 있으며, JavaScript의 기본 기능을 활용하여 구현된다. 대부분의 최신 웹 브라우저에서 AJAX를 지원하므로, 웹 개발에서는 AJAX를 활용하여 효율적이고 반응성이 뛰어난 애플리케이션을 구축하는 것이 가능하다.

'Javascript' 카테고리의 다른 글

Vue.js  (0) 2023.06.15
JAVASCRIPT Const let var  (0) 2023.06.13
JAVASCRIPT Backtick  (0) 2023.06.01
JAVASCRIPT .setAttribute  (0) 2023.06.01
JAVASCRIPT Regular expresstion  (0) 2023.05.31

댓글