inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

새로고침 없는 웹, Fetch(AJAX)

김정환
5

인터넷 초창기 웹페이지는 단순했습니다.

버튼을 클릭하거나 폼을 입력하면, 브라우져는 페이지 전체를 새로 불러와 다음 화면을 보여줍니다. 로그인이나 댓글을 작성 할 때마다 화면이 깜박이던 시절이었죠.

오늘날 웹서비스는 다릅니다. 메신저, 지도, 쇼핑몰, 은행 앱까지.

화면을 깜박이지 않고도 매끄럽게 데이터가 오고 가는데요. 이런 경험을 가능케 만든 핵심 기술이 바로 AJAX(Asynchronous JavaScript and XML)입니다.

 

폼 요청

폼(form) 태그를 통한 전통적인 데이터 전송 방식을 생각해 볼까요.

이 방식은 단순하지만 그만큼 느립니다. 작은 동작 하나에도 전체 화면을 갈아엎는 구조이기 때문이에요.

 

AJAX의 등장

화면은 그대로 두고 데이터만 주고 받을 수 있다면 어떨까요? 필요한 부분만 바꾸어 훨씬 매끄러운 사용감을 제공할 수 있을 겁니다.

이런 방식을 가능하게 해주는 것이 바로 AJAX입니다.

AJAX를 구현한 첫 인터페이스는 XMLHttpRequest(XHR) 객체였습니다.


시간이 지나면서 Fetch API가 등장합니다.

특별히 구형 브라우져를 신경 쓰지 않는 다면, fetch 하나만으로도 충분합니다.

 

데이터 형식

AJAX 요청은 단순히 "보냈다, 받았다"에서 그치지 않습니다. 어떤 형식으로 데이터를 주고 받느냐도 중요합니다.

 

응답(Response) 다루기

요청을 받은 서버는 응답(Response)을 보내는데요, fetch는 응답을 프라미스로 감싸서 반환합니다.

예를 들어, 로그인 API 서버가 JSON을 응답하면, 프론트엔드에서는 json() 함수를 통해 자바스크립트 객체로 변환해 사용할 수 있습니다.

const jsonData = await response.json();
jsonData // { authenticated: true }

이 과정을 통해 화면 일부만 바꾸거나, 사용자에게 알림을 띄우는 식으로 유연한 인터랙션을 만들 수 있습니다.

 

AJAX가 바꾼 웹

생각해보면, 우리가 매일 쓰는 웹 서비스의 매끄러움은 대부분 AJAX 덕분입니다.

모두 AJAX와 Fetch API가 만들어낸 새로고침 없는 웹의 풍경입니다.

 

결론

HTTP는 단순히 "요청과 응답" 으로만 설계된 프로토콜이었습니다. 하지만 AJAX가 등장하면서 웹은 앱(APP)처럼 반응성이 좋아지게 됩니다.

웹이 이렇게 변화한 배경과 더불어 아래 주제들을 먼저 익혀 두신다면, 훨씬 폭 넓은 문제 해결 역량을 갖추실 수 있을 겁니다.


더 깊게 이해하고 싶으시다면 제가 준비한 강의  「웹 개발의 핵심, HTTP 완벽 가이드」  3편을 참고해 보세요. 한 단계 성장한 개발자로 나아가는 좋은 출발점이 될 것입니다.

이 강의에서 다루는 내용

웹 개발 HTTP 네트워크 AJAX FETCH

답변 0