파싱(parsing: 구문 분석)은 하나의 프로그램을 런타임 환경(예를 들면, 브라우저 내 자바스크립트 엔진)이 실제로 실행할 수 있는 내부 포맷으로 분석하고 변환하는 것을 의미합니다. 즉, 파싱은 문서의 내용을 토큰(token)으로 분석하고, 문법적 의미와 구조를 반영한 파스 트리(parse tree)를 생성하는 과정입니다.
브라우저는 HTML을 DOM 트리로 파싱합니다. HTML 파싱에는 토큰화와 트리 구조가 포함됩니다. HTML 토큰에는 시작 태그와 마침 태그가 포함되며, 속성 이름과 값도 포함됩니다. 형식을 잘 갖춘 문서라면 파싱은 직관적이고 빠르게 진행될 것입니다. 파서(parser)는 토큰화된 입력값을 문서에 파싱하며, 다큐먼트 트리를 구성합니다.
HTML 파서가 이미지와 같은 비블로킹 자료(non-blocking resources)를 발견할 경우, 브라우저는 해당 자료를 요청하고 계속 파싱을 진행합니다. 파싱은 CSS 파일이 발견할 때까지 계속될 수 있으나, <script> 태그(특별히 async또는 defer 속성이 없는)는 렌더링을 차단하고, HTML 파싱을 중단시킵니다.
브라우저가 CSS 스타일을 발견할 경우, 텍스트를 CSS 스타일링 레이아웃과 페인팅에 사용하는 데이터 구조인 Object Model(또는 CSSOM)로 파싱합니다. 이후 브라우저는 스크린에 콘텐츠를 표시하기 위해 해당 구조로부터 렌더 트리를 생성합니다. 자바스크립트 또한 다운로드되고, 파싱한 다음, 실행됩니다.
자바스크립트 파싱은 메소드가 호출되는 과정인 컴파일 타임(compile time)이나 파서가 호출될 때 진행됩니다.
'개발 > HTML' 카테고리의 다른 글
HTML에 자바스크립트를 연결하는 세 가지 방법 ✔️ (0) | 2020.12.07 |
---|---|
HTML 라디오 버튼 설명 (0) | 2020.10.21 |
메타 태그란 무엇이며 왜 사용할까? (0) | 2020.09.28 |