01.1. 브라우저의 파싱과 렌더링
Rendering in Browser
파싱(Parsing)
파싱(구문 분석)이란? 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서를 읽어 들여 실행하기 위해 텍스트 문서의 문자열을 토큰(token)으로 분해(어휘 분석)하고, 토큰에 문법적 의미와 구조를 반영하여 트리 구조의 자료 구조인 파스 트리(parse tree/syntax tree)
를 생성하는 일련의 과정을 말합니다.
일반적으로 파싱이 완료된 이후에는 파스 트리를 기반으로 중간 언어인 바이트 코드를 생성하고 실행한다.
Key Point💡
일반적으로 개발자들이 사용하는 IDE는 컴퓨터 언어들을 순식간에 해석해서 문법구조와 문법 오류를 표시하도록 합니다. 때문에, 컴퓨터가 컴퓨터 언어를 해석하는 것을 당연하게 받아들이고 있지만, 사실
소스코드
자체는 텍스트 문서에 불과합니다. 따라서,파싱
이라는 과정을 거쳐서 문법적인 의미를 부여해야 컴퓨터가 언어를 해석할 수 있습니다.
렌더링(Rendering)
렌더링이란? HTML, CSS, JS로 작성된 문서를 파싱해서 브라우저에 시각적
으로 출력하는 것을 말합니다.
렌더링 엔진
대부분의 브라우저는 렌더링을 하는 렌더링 엔진을 가지고 있는데 각 브라우저마다 사용하는 렌더링 엔진은 아래와 같습니다.
크롬 : 웹킷 (Fork) => 블링크 (Blink)
*Fork
소스코드를 가져와 독립적인 새로운 소프트웨어를 개발하는 것.
사파리 : 웹킷 (Webkit)
파이어폭스 : 게코엔진 (Gecko)
브라우저의 렌더링 과정
브라우저는 다음을 거쳐 렌더링을 수행합니다.
브라우저는 HTML, CSS, JS, 이미지, 폰트, 파일 등 렌더링에 필요한 리소스를 요청하고 서버로부터 응답을 받는다.
브라우저는 렌더링 엔진은 서버로부터 응답된
HTML
과CSS
를 파싱하여DOM
과CSSOM
을 생성하고 이들을 결합하여 렌더 트리를 생성한다.브라우저의 자바스크립트 엔진은 서버로부터 응답된 자바스크립트를 파싱하여
AST(Abstract Syntax Tree)
를 생성하고 바이트 코드로 변환하여 실행한다.이때, 자바스크립트는 DOM API를 통해 DOM이나 CSSOM을 변경할 수 있습니다. 변경된 DOM과 CSSOM은 다시 렌더 트리로 결합합니다.
렌더 트리를 기반으로 HTML요소의 레이아웃(위치와 크기)을 계산하고 브라우저 화면에 HTML요소를 페인팅한다.
요약
파싱이란? 프로그래밍 언어의 문법에 맞게 작성된 텍스트 문서를 읽어 들여 실행하기 위해 텍스트 문서의 문자열을 토큰으로 분해하고, 토큰에 문법적 의미와 구조를 반영하여 파스 트리를 생성하는 일련의 과정
렌더링이란? HTML, CSS, JS로 작성된 문서를 파싱해서 브라우저에
시각적
으로 출력하는 것을 말합니다.
Last updated