구글의 V8 엔진으로 빌드된 JS 런타임 환경인 node.js 등장으로 JS는 웹 브라우저 에서 벗어나 서버 사이드 애플리케이션 개발에서도 사용 가능한범용 개발 언어가 되었다.
따라서 대부분의 프로그래밍 언어는 운영체제나 가상 머신 위에서 실행되지만 웹 애플리 케이션의 클라이언트 사이드 JS는 브라우저에서 HTML, CSS 와 함께 실행된다. 따라서 브라우저 환경을 고려할 때 더 효율적인 클라이언트 사이드 JS 프로그래밍이 가능하다.
이를 위해 브라우저가 HTML, CSS, JS로 작성된 테그스트 문서를 어떻게 파싱하여 브라우저에 렌더링 하는지 살펴보자
파싱 파잉은 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서를 읽어 들여 실행 하기 위해 텍스트 문서의 문자열을 토큰(* 토큰이란 문법적인 의미를 가지며 문법적으로 더 나눌수 없는 코드의 기본요소)으로 분해 하고, 토큰에 문법적 의미와 구조를 반영하여 트리구조의 자료구조인 파스 트리를 생성하는 일녀의 과정을 말한다. 일반적으로 파싱이 완료된 이후에는 파스트리를 기반으로 중간언어 바이트 코드를 생성하고 실행한다.
렌더링 렌더링은 HTML,CSS,JS로 작성된 문서를 파싱하여 브라우저에 시작적으로 출력하는 것을 말한다.
브라우저는 다음과 같은 과정을 거쳐 렌더링을 수행한다.
브라우저의 핵심 기능은 필요한 리소스를 서버에 요청하고 서버로부터 응답 받아 브라우저에 시각적으로 렌더링하는 것이다.
즉, 렌더링에 필요한 리소스는 모두 서버에 존재하므로 필요한 리소스를 서버에게 요청하고 서버로부터 응답받아 브라우저에 시각적으로 렌더링 하는 것이다. 즉, 렌더링에 필요한 리소스는 모두 서버에 존재하므로 필요한 리소스를 서버에 요청하고 서버가 응답한 리소스를 파싱하여 렌더링하는 것이다.