엔진/웹 브라우저

< 엔진

1 개요

단독으로 엔진으로 불리는 경우는 거의 없고, 대부분 렌더링 엔진 또는 레이아웃 엔진으로 불린다. 내용정보인 HTML, XML과 서식정보인 CSS, XML 등을 읽어들여 사람이 읽을 수 있는 문서로 표시하는, 웹 브라우저의 핵심기능을 담당하는 부분이다. '코드'를 호출시에만 읽고서 해석을 한다는 점에서 인터프리터라고도 볼 수 있다.

VTWWW의 결정적인 차이점을 대변하는 부분이기도 하다. VT환경은 그냥 문자정보만 받으면 되기 때문에 거창한 엔진이 필요없다. 하지만 WWW 환경은 그림을 표시하며 서식을 지정하는 등 완전한 문서를 표시해야 하기 때문에 엔진을 중심으로 구성된 웹 브라우저가 사용되는 것이다. 최근에는 문서로서뿐만이 아니라 프로그램적인 성격인 사용자의 입력에 대한 반응을 위해 웹 브라우저에는 자바스크립트 엔진 등이 추가로 들어간다.

2 목록

브라우저의 기본이기 때문에 브라우저의 성능은 이것에 큰 영향을 받는데... 유독 인터넷 익스플로러의 존재가 엔진이 전부만이 아님을 보여주는 예가 되고 있다.

  • 게코(Gecko): 모질라 재단에서 후원하며 오픈소스로 개발되는 엔진이다. 넷스케이프에서 갈라져나왔기 때문에 구형 문서에 대한 호환성이 약간 있고, 웹표준을 준수하는 편이지만 일부 IE전용 속성을 지원한다. 모질라 파이어폭스, 모질라 썬더버드, 시몽키 등이 사용하고 있다.(오픈소스이므로 실제론 더 많다. 다만 웹키트로 이전을 하는 추세다.). 엔진의 저작권은 GPL, LGPL, 모질라의 자체 저작권(GPL의 변형, MPL (Mozilla Public License)라고 한다). 이 엔진을 이용하여 스마트폰 운영체제 FirefoxOS 를 만든다.
  • 서보(Servo): 모질라 재단의 차세대 엔진이다. 2013년 기준으로 개발중이다. 안전한 브라우징과 병렬처리 특화를 목표로 하고 있다. 프로그래밍 언어 Rust를 먼저 만들고 그것을 기반으로 엔진을 제작중이다. 언제 나올지 알수 없으며 삼성전자가 협력하고 있다.[1] 웹킷과 경쟁하는 엔진이며 현 시대에 맞도록 설계한다고 한다. Rust와 servo 소개
  • 웹키트(WebKit): KHTML 엔진에서 파생되어 애플에서 개발한 오픈소스 엔진. 2013년 기준으로 렌더링 엔진 분야를 지배하고 있다. 대표적으로 사파리구글 크롬이 이걸 쓴다. 하지만 2013년에 결국 애플과 구글은 엔진을 서로 분기(fork) 하면서 파편화가 진행될 듯 하다.[2][3]
  • 프레스토(Presto): 오페라 소프트웨어가 개발한 엔진. 오페라에 사용된다. 엔진 특유의 가벼움과 낮은 점유율 덕에 스마트폰과 같은 휴대용 기기, 게임용 콘솔과 같은 환경에서는 메이저인 엔진이다. 개발버전으로 ACID3을 최초로 통과하는 등, 자체 버그를 제외한다면 웹표준을 깐깐하게 준수하는 편에 속한다. 2013년 7월 2일 데스크탑용 오페라와 오페라 모바일에 탑재된 프레스토 엔진이 제거되고 블링크로 대체 되었고, 현재도 오페라 미니나 TV에선 사용중이라고 한다. [1]
  • EdgeHTML: 윈도우 10의 기본 브라우저인 마이크로소프트 엣지의 엔진이다. 아래에 기재된 트라이던트의 포크로 시작된 마이크로소프트의 엔진으로, 인터넷 익스플로러 및 트라이던트와의 하위호환을 완전히 포기하고 웹키트를 집중적으로 흡수하면서 개발하고 있다. 2015년 현재 개발 속도가 굉장히 빠르며, 현대의 웹 환경에 어울리는 브라우저를 뒷받침하기 위해 웹 표준 기능을 빠르게 확충하고 있다.
  • 역사속으로 사라진 엔진
    • 모자이크: 모두의 시작.
      • 스파이글래스: 모자이크에서 가져온 소스를 마이크로소프트가 스파이글래스 사로부터 가져온(...) 엔진. IE의 초기버전에서 사용되었던 엔진이다.
    • 넷스케이프: 게코 엔진이 여기서 갈라져 나왔다.
    • 타즈만(Tasman): Mac OS용 인터넷 익스플로러에서 사용된 엔진이었다.[4] 왜 트라이던트 안 쓰고 새로 개발했는지는 불명. 매킨토시용 IE5에 사용되었으며, 이후로는 배포되는 브라우저에 사용된 경력이 없다. 현재의 OS X에서 구동이 어느 정도 가능하지만, 버림받은 엔진.
    • 트라이던트(Trident): 악명 높았던(?) 인터넷 익스플로러의 엔진. mshtml.dll을 연결하면 프로그램 내부에서 이 엔진을 사용할 수 있기 때문에 브라우저가 아닌 경우에도 이 엔진을 쓰는 경우가 많다. 현재 웹표준 구현에 가장 뒤쳐진 엔진. ACID2는 IE8에서야 통과하고, ACID3도 IE9 정식버전에서 통과[5][6]. 문제는 국내 환경이 이것에 특화되었다는 것. 사실상 Microsoft Windows 전용이라는 것도 단점.
  1. [2]
  2. 애플은 웹킷2, 구글은 블링크로 갈라지며 이들은 프로세스 구조가 다르다. 특히 블링크는 웹킷 코드베이스에서 7천 개의 파일을 삭제했고 앞으로도 최적화를 진행한다고 한다.
  3. 지금 당장은 호환이 잘 되겠지만 앞으로 나올 규격에도 호환이 될지 장담할 수 없다. 왜냐하면 애플과 구글은 서로 견제하는 상황이기 때문이다. 그 와중에 삼성전자에서 기본 브라우저 삼성 인터넷으로 블링크 엔진을 사용하면서 제일 빠르게 보급되고 있다.
  4. Mac OS용 IE 4까지는 이 엔진이 사용되지 않았다
  5. 이건 업데이트가 느린 탓이 크다. 다른 엔진이 1년에도 몇 번씩 업데이트를 하는 반면 이건 년단위로 업데이트를 하니...
  6. IE 9, 10, 11이 나오면서 이것도 옛날 얘기가 되었다.