본문 바로가기

개발/HTML-CSS

브라우저 렌더링 엔진

브라우저 렌더링 엔진

브라우저 기본 구성 요소

  • 사용자 인터페이스 - 주소 표시줄, 이전/다음 버튼, 북마크 메뉴 등. 요청한 페이지를 보여주는 창을 제외한 나머지 모든 부분
  • 브라우저 엔진 - 사용자 인터페이스와 렌더링 엔진 사이의 동작을 제어
  • 렌더링 엔진 - 요청한 콘텐츠를 표시. 예를 들어 HTML을 요청하면 HTML과 CSS를 파싱하여 화면에 표시
  • 통신 - HTTP 요청과 같은 네트워크 호출에 사용됨. 이것은 플랫폼 독립적인 인터페이스이고 각 플랫폼 하부에서 실행
  • UI 백엔드 - 콤보 박스와 창 같은 기본적인 장치를 그리는 역할
  • 자바스크립트 해석기 - 자바스크립트 코드를 해석하고 실행
  • 자료 저장소 - 자료를 저장하는 계층. 쿠키 저장 가능. 또한 웹 브라우저가 IndexedDB, WebSQL, FileSystem 를 지원해 줄 수 있음

렌더링 엔진

WebKit 렌더링 엔진

  • 애플이 오픈소스로 개발한 엔진. 사파리 개발 목적으로 컨커러 브라우저의 KHTML 소프트웨어 라이브러리에서 가져옴.
  • 웹 코어(WebCore), 자바스크립트코어(JavaScriptCore), 드로세라(Drosera)로 구성되어 있음
    • 웹 코어: HTML, SVG를 위한 레이아웃, 랜더링, DOM 라이브러리
    • 자바스크립트코어: WebKit의 JavaScript 엔진
    • 드로세라: JavaScript debugger

Blink 렌더링 엔진

  • 오픈 소스 웹 브라우저 프로젝트인 Chromium에서 사용하는 Blink 렌더링 엔진은 WebKit 렌더링 엔진(WebCore)에서 부터 만들어진 엔진

Gecko 렌더링 엔진

  • 모질라 재단에서 만든 레이아웃 엔진으로 파이어폭스가 이를 탑재
  • 웹 콘텐츠뿐만 아니라 XUL기반의 어플리케이션들의 UI를 해석해줌

참고