IM Sprint 시리즈는, 코드 스테이츠의 웹 개발 심화 코스인 Immersive 코스에서 수강생들과 함께 이야기 나눌 주제에 대해 빠르게 학습하고 정리한 글이다.
핵심 기능
사용자가 참조하고자 하는 웹페이지를 서버에 요청(Request)하고 서버의 응답(Response)을 받아 브라우저에 표시한다. 브라우저는 항상 요청을 보내는 개체이다.
브라우저와 서버
브라우저는 서버로부터 요청한 HTML, CSS, Javascript, 이미지 파일 등을 받는다.
브라우저 내부 : 렌더링 엔진
HTML, CSS 파일은 렌더링 엔진의 HTML 파서와 CSS 파서에 의해 파싱(Parsing)되어 DOM, CSSOM 트리로 변환되고 렌더 트리로 결합되고, 이렇게 생성된 렌더 트리를 기반으로 브라우저는 웹페이지를 표시한다.
브라우저 내부 : 자바스크립트 엔진
브라우저는 동기(Synchronous)적으로 HTML, CSS, Javascript을 처리한다. HTML 파서는 script 태그를 만나면 자바스크립트 코드를 실행하기 위해 DOM 생성 프로세스를 중지하고 자바스크립트 엔진으로 제어 권한을 넘긴다. 제어 권한을 넘겨 받은 자바스크립트 엔진은 script 태그 내의 자바스크립트 코드 또는 script 태그의 src 어트리뷰트에 정의된 자바스크립트 파일을 로드하고 파싱하여 실행한다. 자바스크립트의 실행이 완료되면 다시 HTML 파서로 제어 권한을 넘겨서 브라우저가 중지했던 시점부터 DOM 생성을 재개한다.
브라우저 동작 원리 : https://poiemaweb.com/js-browser
브라우저는 어떻게 동작하는가 https://d2.naver.com/helloworld/59361
HTTP 개요 https://developer.mozilla.org/ko/docs/Web/HTTP/Overview
핵심 역할
HTTP는 인터넷에서 데이터를 주고받을 수 있는 규칙이다. 이렇게 규칙을 정해두었기 때문에, 모든 프로그램이 이 규칙에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다.
특징
HTTP란 무엇인가 : https://www.zerocho.com/category/HTTP/post/5b344f3af94472001b17f2da
HTTP 메서드 : https://www.zerocho.com/category/HTTP/post/5b3723477b58fc001b8f6385
HTTP 개요 : https://developer.mozilla.org/ko/docs/Web/HTTP/Overview
REST API : https://poiemaweb.com/js-rest-api
비동기식 처리 모델과 Ajax : https://poiemaweb.com/js-ajax
API란 무엇인가? : https://steemit.com/kr/@yahweh87/it-api
UI와 API 그리고 문서보는 법 : https://opentutorials.org/course/743/6533
개념
Asynchronous JavaScript and XML (AJAX)는 그 자체가 (특정한) 기술은 아니다. 하지만 HTML 또는 XHTML, CSS, JavaScript를 비롯한 기존의 여러 기술을 사용하는 "새로운" 접근법이라고 설명할 수 있다. 간단히 말하면, 서버와 통신하기 위해 XMLHttpRequest 객체를 사용하는 것을 말한다. JSON, XML, HTML 그리고 일반 텍스트 형식 등을 포함한 다양한 포맷을 주고 받을 수 있다. XMLHttpRequest나 fetch가 HTTP 규칙을 지켜서 서버에 요청을 보낸다.
특징
Ajax는 웹브라우저와 웹서버가 내부적으로 데이터 통신을 하게 된다. 그리고 변경된 결과를 웹페이지에 프로그래밍적으로 반영함으로써 웹페이지의 로딩 없이 서비스를 사용할 수 있게 한다. 빠른 퍼포먼스와 부드러운 화면 표시 효과를 기대할 수 있다.
Ajax의 비동기성
요청을 한 후 응답이 올 때까지 기다리지 않고, 다른 부분들을 동작할 수 있다. 응답이 오면 처리를 한다.
Ajax와 XMLHttpRequest
브라우저는 XMLHttpRequest 객체를 이용하여 Ajax 요청을 생성하고 전송한다. 서버가 브라우저의 요청에 대해 응답을 반환하면 같은 XMLHttpRequest 객체가 그 결과를 처리한다.
Ajax : https://opentutorials.org/course/1375/6843
비동기식 처리 모델과 Ajax : https://poiemaweb.com/js-ajax
XMLHttpRequest : https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
Ajax란 무엇인가? : https://coding-factory.tistory.com/143
AJAX : https://developer.mozilla.org/ko/docs/Web/Guide/AJAX
Ajax 동작 원리 : http://tcpschool.com/ajax/ajax_intro_works