avatar
artemismars2

브라우저 렌더링 엔진

브라우저별 렌더링 엔진
3 months ago
·
4 min read

최근에 브라우저 렌더링에 관심이 생겨 조사를 진행해보았다.

조사 결과 흥미로운 점들을 발견할 수 있었다.

브라우저 렌더링 엔진들이 독자적으로 개발되어 존재하는게 아니라 서로 관련있다는 부분이었다.

CHROME

크롬은 BLINK 엔진을 사용한다. 이 엔진은 구글에서 WEBKIT 엔진을 포킹하여 일부 개선한다음 내놓은 엔진이라고 한다. WEBKIT 엔진은 애플의 사파리 브라우저에서 사용하는 엔진이다. 이 WEBKIT 엔진은 리눅스 OS 중 하나인 KDE 프로젝트의 브라우저에 사용된 엔진인 KHTML의 포킹 버전이라고 한다.

KHTML -> WEBKIT -> BLINK 순으로 포킹되었다는 것을 알 수 있었다.

BLINK 렌더링 엔진은 크로미움 프로젝트의 일부로 크로미움을 이용하여 개발된 웹브라우저의 경우 블링크를 사용하고 있다.

EDGE

엣지 브라우저는 기존에는 전용 렌더링 엔진을 사용했지만 지금은 BLINK 엔진을 사용한다.

FIREFOX

파이어폭스는 모질라에서 만든 브라우저로 렌더링 엔진의 원형은 넷스케이프에서 만든 네비게이터 브라우저에서 개발한 렌더링 엔진이라고 한다.

이름은 GECKO 엔진이며 대략 1990년대 후반부터 현재까지 사용되고 있는 렌더링 엔진이다.

크로미움 특징

멀티 프로세스 아키텍처

크롬 브라우저는 하나의 메인 프로세스와 렌더러 프로세스 여러개로 구성되어있고 기타 프로세스들도 존재한다고 한다. 메인 프로세스는 브라우저에서 웹페이지 뷰포트 제외한 부분의 기능들이 실행되고 뷰포트는 렌더러 프로세스가 처리한다.

BLINK는 크롬의 렌더링 엔진으로 렌더러 프로세스 내에서 실행된다고 한다.

보통 크롬 브라우저의 한 탭마다 하나의 렌더러 프로세스가 할당된다. 그래서 하나의 탭에서 문제가 생긴 경우 다른 탭들이 안전하다고 한다.

BLINK 엔진 참조: https://www.chromium.org/blink/







책좀읽자