본문 바로가기

개발/웹 개발

풀스택 7일차

AJAX란

웹 페이지에서 서버와 데이터를 주고받는 방법을 말한다.
가장 큰 핵심은 웹 페이지 전체를 새로고침 없이 페이지의 일부분만을 새롭게 업데이트할 수 있다는 점이다.
AJAX를 사용하면 웹 페이지가 보이는 부분을 유지한 채, 배경에서 서버와 통신할 수 있는데, 이렇게 하면 서버에서 받아온 데이터를 페이지의 특정 영역에만 즉시 반영할 수 있어서 웹사이트 사용이 훨씬 원활하고 효율적이다.
 

AJAX 개념

 

  • 비동기 통신:
    • 서버에 요청을 보내고 응답을 기다리는 동안 웹 페이지가 멈추지 않고 계속 작동하는 걸 의미하는데 페이지가 새로고침 없이도 데이터가 업데이트될 수 있다.
  • JavaScript와 AJAX:
    • AJAX는 주로 JavaScript를 사용해서 구현한다. JavaScript는 웹 페이지에서 동적인 기능을 추가하는 데 사용되는 프로그래밍 언어이다.
  • 서버와의 대화:
    • 웹 페이지에서 AJAX를 사용하면, 서버에 데이터를 요청하고 결과를 받아와서 페이지의 일부분만 업데이트할 수 있다. (웹 페이지의 특정 부분만 업데이트 하는 것과 같다.)

 

AJAX의 구성

XMLHttpRequest

  • 웹페이지와 서버 사이의 통로와 같으며 요청을 만들고, 서버에 보내고, 응답 받는 역할한다.

fetch API

  • 위에 XMLHttpRequest에 비해 비동기 처리 방식이 더 직관적이고 유연해서 코드의 가독성과 유지보수성이 향상된다

JSON

  • 데이터의 형식인데 사람이 읽기 쉽고 JavaScript에서 쉽게 다룰 수 있어서, 서버와 클라이언트 간의 데이터 교환에 많이 사용된다.

CORS

  • 웹 페이지에서 다른 서버로 요청을 보낼 때 보안의 이유로 허가를 받아야 한다. 설정에 따라 차단, 허용 가능

 
AJAX 활용)
간단하게 웹 페이지가 서버와 비동기적으로 통신할 수 있는 방식, 요청 설정

//  AJAX 요청
$.ajax({
    url: '/ajax/getInfo',
    type: 'GET',
    dataType: 'json',
    timeout: 5000,
    beforeSend: function() {
        console.log('요청을 보내기 전에 실행됩니다.');
    },
    success: function(response) {
        console.log('서버에게 받은 데이터:', response);
    },
    error: function(request, status, error) {
        console.log('문제 발생했습니다:', status, error);
    },
    complete: function() {
        console.log('요청 완료되었습니다.');
    }
});

 
 

$.ajax({
    url: '/ajax/getInfo',
    type: 'GET',
    dataType: 'json',
    timeout: 5000,
    beforeSend: function()

이 부분은 /ajax/getInfo 주소로 JSON 형식의 데이터를 GET 방식으로 요청하고, 5초(밀리초 기준) 내에 응답이 없으면 요청을 중단한다. 요청 전에는 콘솔에 메시지를 출력한다.
 

								{
        console.log('요청을 보내기 전에 실행됩니다.');
    },
    success: function(response) {
        console.log('서버에게 받은 데이터:', response);
    },
    error: function(request, status, error) {
        console.log('문제 발생했습니다:', status, error);
    },
    complete: function() {
        console.log('요청 완료되었습니다.');
    }
});

코드는 AJAX 요청의 전, 성공, 오류, 완료 상태를 각각 콘솔에 알려준다


https://sw-sh-65e76.web.app/
배포용 웹 사이트 

 

SW 개발자 홈페이지

 

sw-sh-65e76.web.app

 
* member.html이 선으로만 이루어져 보기가 힘들고 복잡해서 레이아웃 어느정도 수정 후 주말과제 진행예정*

'개발 > 웹 개발' 카테고리의 다른 글

풀스택 9일차  (1) 2024.08.07
풀스택 8일차 JavaScript  (0) 2024.08.05
풀스택 6일차  (1) 2024.08.02
풀스택 5일차  (0) 2024.08.01
풀스택 4일차  (1) 2024.07.31