July 26, 2020
부스트코스 공부 기록 : https://www.edwith.org/boostcourse-web/lecture/16663/
참고 자료 : https://www.html5rocks.com/en/tutorials/internals/howbrowserswork/
1. 사용자 인터페이스
주소 표시 줄, 뒤로가기, 앞으로가기 버튼, 새로고침 버튼 등
2. 브라우저 엔진
브라우저 소프트웨어를 동작하는 핵심 엔진.
3. 렌더링 엔진
HTML, CSS를 분석하고 화면을 그린다.
파이어폭스의 Gecko, 사파리의 webkit, 크롬의 Blink 등이 있다. 브라우저별로 다 다르다.
4. 네트워킹
http를 통해서 웹서버와 통신한다.
5. 자바스크립트인터프리터
javascript 코드를 해석한다.
6. UI 백엔드
기본 위젯을 그리는데 사용된다.
7. 데이터 저장
브라우저가 쿠키 등 데이터를 로컬에 저장한다.
HTML을 파싱
HTML 문서를 해석하여 그 의미를 파악한다.
DOM트리 구성
데이터 객체로 구조화한다
노드 추가/제거, 레이아웃 수정 등 렌더 트리 확인이 필요하면 reflow하여 렌더 트리를 다시 만든다, 다시 만든 렌더 트리를 repaint한다. 배경 색 변경 등 레이아웃이 변경되지 않을 때는 repaint만 일어난다.
1. 다른 요소에 영향을 끼치지 않고, 해당 요소만 reflow되도록 한다.
2. js로 스타일을 변경할 때는 style을 여러번 호출하는 것보다 클래스를 통하여 스타일을 변경하는 것이 더 빠르다.
3. 변화가 예상되는 요소는 미리 브라우저에게 알린다.