브라우저 엔진
브라우저 엔진(browser engine)은 주된 모든 웹 브라우저의 핵심이 되는 소프트웨어 구성 요소이다. 브라우저 엔진의 주된 역할은 HTML 문서와 기타 자원의 웹 페이지를 사용자의 장치에 상호작용적인 시각 표현으로 변환시키는 것이다.
이름과 적용 범위
편집브라우저 엔진은 독립적인 컴퓨터 프로그램이 아닌 웹 브라우저와 같은 더 큰 프로그램의 중요한 부분이며, 여기에서 이 용어가 파생되었다. ("엔진"이라는 용어는 자동차 엔진과 유사성이 있다.)
"브라우저 엔진" 외에 2가지 다른 용어가 관련 개념과 관련하여 일반적으로 사용된다: "레이아웃 엔진", "렌더링 엔진"'.[1][2][3][4] 이론적으로 레이아웃과 렌더링(또는 페인팅)은 별도의 엔진에 의해 관리될 수 있다. 그러나 실제로는 이 둘은 서로 밀접히 결합되어 있으며 따로 떼어서 간주하는 일은 드물다.
게다가 레이아웃과 렌더링 외에 브라우저 엔진은 문서들 간의 보안 정책을 강제하며 페이지 스크립트에 노출되는 문서 객체 모델(DOM) 자료 구조를 구현한다. 또, 하이퍼링크와 웹 폼을 관리한다.
그러나 자바스크립트(JS) 코드를 실행하는 일은 별개의 문제인데, 주된 모든 웹 브라우저는 이를 위한 전용 엔진을 사용하기 때문이다. JS 언어는 원래 브라우저에 사용하기 위해 개발되었으나 현재는 그 외의 장소에서도 사용되므로 JS 엔진의 구현체는 브라우저 엔진과는 분리되고 있다. 웹 브라우저에서 2개의 엔진은 공유되는 DOM 자료 구조를 통해 조화롭게 동작한다.
브라우저 엔진은 웹 브라우저 외에도 다른 종류의 프로그램들에 사용될 수 있다.(마치, 다른 종류의 자동차가 동일한 엔진으로 제조될 수 있는 것처럼) 이를테면 이메일 클라이언트는 HTML 이메일의 표시를 위해 브라우저 엔진이 필요할 수 있다. 구글 크롬 브라우저의 2개의 엔진의 지원을 받는 일렉트론 프레임워크는 수많은 애플리케이션을 개발하기 위해 사용되고 있다.
저명한 엔진
편집이름 | 설명 |
게코(Gecko) | 모질라 재단에서 만든 레이아웃 엔진으로 파이어폭스, 모질라 선더버드, 시몽키 등이 이를 탑재하고 있다. |
블링크(Blink) | 웹키트에서 파생된 레이아웃 엔진으로 크롬, 오페라 등이 이를 탑재하고 있다. |
트라이던트(Trident) | 마이크로소프트의 레이아웃 엔진으로 인터넷 익스플로러, 아웃룩 익스프레스, 마이크로소프트 아웃룩, 그리고 윈앰프, 리얼플레이어의 미니 브라우저 등이 이를 탑재하고 있다. |
프레스토(Presto) | 오페라 소프트웨어의 사유 엔진으로 오페라가 탑재하고 있었으나, 오페라 15부터는 블링크로 교체되었다. |
KHTML | KDE의 컨커러가 탑재하고 있다. |
웹키트(Webkit) | KHTML에서 파생된 레이아웃 엔진으로 사파리 등이 탑재하고 있다. |
태즈먼(Tasman) | 마이크로소프트의 레이아웃 엔진으로 맥용 인터넷 익스플로러가 탑재하고 있다. |
EdgeHTML | 트라이던트에서 파생된 마이크로소프트의 레이아웃 엔진으로 마이크로소프트 엣지 스파르탄(~2019) 버전에 탑재하고 있었으나, 마이크로소프트 엣지 애너하임(2019~)부터는 블링크로 교체되었다. |
타임라인
편집같이 보기
편집각주
편집- ↑ “Definition of: browser rendering engine”. PC Mag.
- ↑ “Behind the scenes of modern web browsers”. Tali Garsiel. 2018년 4월 21일에 확인함.
- ↑ “Gecko”. Mozilla. 2014년 6월 4일에 원본 문서에서 보존된 문서. 2018년 4월 21일에 확인함.
- ↑ “Introducing Goanna”. M.C. Straver. 2015년 6월 22일. 2018년 4월 21일에 확인함.