Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- React
- Timer
- calender
- javascript
- mini_project
- 웹사이트
- darknode
- 브라우저
- Calculator
- stopwatch
- todolist
- Project
- localStorage
- html
- DOM
- CSS
- Typescript
Archives
- Today
- Total
이야기 정리
DOM, 그리고 브라우저란? 본문
개발공부를 시작하면 DOM이란 단어를 쉽게 볼 수 있다.
그렇다면 DOM이란 무엇이고 무슨 뜻일까? DOM과 브라우저를 비롯해 웹 사이트의 간단한 개념에 대해 알아볼 것이다.
웹사이트
웹 사이트란?
- 일반 URL을 통해 보이는 웹 페이지를 의미한다.
- HTML, CSS JavaScript로 이뤄져있다.
HTML, CSS JavaScript의 차이
HTML : HyperText Markup Language
- 브러우저에게 웹 사이트의 요소들이 어떻게 구성되어 있는지 알려주는 역할, 사람으로 치자면 뼈대에 해당한다.
CSS : Cascading Style Sheets
- 웹 사이트의 요소들을 꾸며주는 역할로, 사람의 외관이라 생각하면 된다.
JavaScript
- 브라우저에 다양한 일을 수행하고, 웹 사이트의 요소를 생성 및 변명할 수 있다. 사람의 근육처럼 웹사이트가 움직이는 역할을 한다.
브라우저란?
- 사용자가 선택한 자원(HTML 등)을 서버에 요청하고, 모니터에 표시하는 응용 소프트웨어
- 대표적인 예로는 크롬, 사파리, 파이어 폭스 등이 있다.
DOM이란 무엇일까?
- Document Object Model : 문서 객체 모델
- HTML에서 작성한 요소들을 JavaScript가 접근할 수 있도록 객체로 변환시킨 것이다.
- JavaScript는 DOM을 통해 HTML 요소를 변경하고 삭제할 수 있다.
브라우저의 렌더링 순서
- HTML을 전달 받은 뒤, HTML 파서를 통해 DOM트리를 형성한다.
- Style sheets를 파싱 받아 CSS 파서를 통해 스타일 규칙을 형성한다.
- 생성된 DOM 트리와 스타일 규칙을 합쳐(Attchment) Render 트리(실제 화면에 그려질 트리를 말함)를 형성한다.
- 레이아웃을 형성한다. Render 트리 어느 위치, 어떤 크기로 배치할 것인지 계산하는 작업이다.
- 마지막으로 레이아웃으로 나온 결과를 픽셀 단위로 표시한다.
만약 웹 사이트가 수정될 경우, 이 많은 과정들을 다시 반복해야한다는 단점이 있어 비효율적이다.
그런데 여기서 낯선 단어가 있다.
파싱과 파서… 이것들은 정확히 어떤 것일까?
문서 파싱
- 브라우저가 코드를 이해하고, 사용할 수 있는 구조로 변환하는 것이다.
- 이 결과는 보통 문서 구조를 나타내는 노드 트리로, 파싱 트리 혹은 문법 트리라 불린다.
- 파싱은 문맥 자유 문법을 따른다. 문서를 사용할 수 있는 구조로 변환하는 파싱을 할 때, 모든 형식은 정해진 용어와 구문 규칙을 따라야한다는 내용이다.
파싱의 과정
- 문서를 받아와 어휘를 분석한다.
- 구분을 분석한다.
- 규칙에 맞다면 파싱 트리에 추가한다.
- 어휘 분석: 자료를 모두 분해해 유효한 것만을 모아놓은 용어집으로, 사전이라 생각하면 쉽다. 공백이나 줄바꿈같은 의미없는 문자들은 제거한다.
- 구문 분석은: 파싱할 때 모든 형식은 정해진 용어와 구문 규칙을 따라야한다고 위에서 말했다. 구문 분석은 이 규칙을 적용시키는 것이다.
파싱은 여기서 끝나지 않는다. 파싱은 보통 문서를 다른 양식으로 변환시킨다.
DOM에서 파싱트리는 DOM 요소와 및 속성 노드의 트리로 출력트리가 된다.
참고자료
위키백과 https://ko.wikipedia.org/wiki/웹사이트
브라우저는 어떻게 작동하는가? https://d2.naver.com/helloworld/59361
01 배워보자 웹사이트 https://www.hyobb.com/?utm_source=twitter
'개발공부 > 기본이론' 카테고리의 다른 글
URL 구성 요소와 CORS의 뜻 (0) | 2023.03.14 |
---|
Comments