AJAX 최종 수정일 2026-06-19 14:06 조회수 10
대시보드

AJAX

기본 정보

  • 명칭: AJAX
  • 영문명: Asynchronous JavaScript and XML
  • 한글명: 비동기 JavaScript 및 XML
  • 분류: 웹 통신 기술
  • 주요 용도: 페이지 새로고침 없이 서버와 데이터 통신
  • 관련 주제: #AJAX #JavaScript #API #JSON #RESTAPI

개요

AJAX(Asynchronous JavaScript and XML)는 웹페이지를 새로고침하지 않고 서버와 비동기적으로 데이터를 주고받는 기술이다.

초기에는 XML 형식을 많이 사용했지만, 현재는 대부분 JSON 형식을 사용한다.

AJAX를 이용하면 게시글 작성, 댓글 등록, 로그인, 검색, 장바구니 추가 등 다양한 기능을 페이지 이동 없이 처리할 수 있다.


AJAX 구조

사용자

↓

브라우저

↓

JavaScript

↓

AJAX 요청

↓

REST API

↓

Database

↓

JSON 응답

↓

화면 일부 업데이트

동작 과정

버튼 클릭

↓

AJAX 요청

↓

서버 처리

↓

Database 조회

↓

JSON 반환

↓

JavaScript 처리

↓

화면 변경

페이지 전체를 다시 로드하지 않는다.


주요 특징

  • 비동기 처리
  • 빠른 사용자 경험
  • 부분 화면 업데이트
  • REST API 연동
  • JSON 데이터 처리
  • 서버 부하 감소

기존 방식과 비교

일반 웹

사용자

↓

서버 요청

↓

전체 HTML 생성

↓

페이지 새로고침

AJAX

사용자

↓

AJAX 요청

↓

JSON 응답

↓

화면 일부 변경

XMLHttpRequest

기존 AJAX 구현 방식이다.

const xhr = new XMLHttpRequest();

xhr.open(

"GET",

"/api/user"

);

xhr.send();

현재는 fetch() 사용이 더 일반적이다.


Fetch API

fetch("/api/user")

.then(res => res.json())

.then(data => {

  console.log(data);

});

현대 JavaScript에서 가장 많이 사용하는 방식이다.


async / await

async function load() {

  const response =

  await fetch("/api/user");

  const data =

  await response.json();

}

가독성이 높아 실무에서 많이 사용된다.


jQuery AJAX

$.ajax({

  url: "/api/user",

  method: "GET",

  success: function(data){

    console.log(data);

  }

});

레거시 프로젝트에서 많이 사용된다.


POST 요청

fetch("/api/login", {

  method: "POST",

  headers: {

    "Content-Type":

    "application/json"

  },

  body: JSON.stringify({

    id: "admin"

  })

});

JSON 응답 예시

{
  "success": true,
  "message": "성공",
  "data": {
    "name": "구름"
  }
}

REST API와 관계

Browser

↓

AJAX

↓

REST API

↓

Database

↓

JSON

AJAX는 REST API와 함께 가장 많이 사용된다.


활용 사례

  • 로그인
  • 회원가입
  • 댓글 작성
  • 게시글 등록
  • 검색 자동완성
  • 장바구니 추가
  • 좋아요 기능
  • 실시간 알림

실시간 검색 예시

입력

↓

AJAX 요청

↓

검색 API

↓

JSON 응답

↓

검색 결과 표시

장점

  • 페이지 새로고침 불필요
  • 빠른 사용자 경험
  • 서버 트래픽 감소
  • 부분 업데이트 가능
  • 모바일 앱과 유사한 UX 제공

단점

  • JavaScript 의존
  • 디버깅이 어려울 수 있음
  • SEO에 불리할 수 있음
  • 요청 관리가 복잡해질 수 있음

AJAX와 Fetch 비교

AJAX(XMLHttpRequest)Fetch API
오래된 방식최신 표준
문법이 복잡Promise 기반
Callback 사용async/await 사용 가능
레거시 프로젝트 활용신규 프로젝트 권장

AJAX와 WebSocket 비교

AJAXWebSocket
요청-응답 방식양방향 실시간 통신
필요할 때 요청연결 유지
구현 간단실시간 서비스에 적합
일반 웹 서비스채팅·게임·주식 시세

실무 메모

실무에서는 다음과 같은 방식이 권장된다.

  • fetch() 또는 Axios 사용
  • async/await 문법 사용
  • 응답 형식(success, message, data) 표준화
  • HTTP 상태 코드 활용
  • 예외 처리(try...catch) 구현
  • JWT 또는 Session 인증 적용
  • 로딩 UI 표시
  • 중복 요청 방지
  • 타임아웃 처리
  • API 에러 로그 기록

AJAX와 함께 사용하는 기술


대표 개발 도구

  • Chrome DevTools
  • Postman
  • Bruno
  • Insomnia
  • Visual Studio Code

관련 문서


출처

  • MDN Web Docs - AJAX
  • MDN Web Docs - XMLHttpRequest
  • WHATWG Fetch Standard