본문 바로가기
Digital Log

구글 크롬에 쓰인 웹킷(Webkit)이 궁금해지네?

by 달토끼남편 2008. 9. 5.

애플 사파리 브라우저에서 사용하고 있는 웹킷이란 것을 구글 크롬 브라우저에서도 사용했다.

궁금했다...그 정체가.

그래서, 위키를 뒤져보고 나름대로 정리를 해보았다. (혹시 틀린 부분이 있으면 지적해 주시길....)

 

WebKit : 애플, 노키아, 어도비, 구글 등에 의해 공동개발 중인 오픈소스 기반의 응용프로그램 프레임웍이다. (http://www.webkit.org)
            KDE의 KHTML 소스를 기반으로 맥 OSX용으로 개발되어 레이아웃엔진 KHTML은 WebCore로, 자바스크립트엔진인 KJS는
            JavaScriptCore라는 이름으로 바뀌었다.
           
            웹킷을 단순히 레이아웃 엔진이라고 부르지 않는 이유는 바로 WebCore와 JavaScriptCore, 

            그리고 자바스크립트 오류를 검증할 수 있는 Drosera 디버거를 함께 포함한 상위개념이기 때문이다.

            초기에는 맥용이었으나 현재는 다양한 OS에서도 API를 불러 쓸 수 있도록 크로스 플랫폼 C++로 작성되었다.

 

아항...쉽게 얘기하자면, 애플 개발자들이 KHTML 개발자들을 설득해서 소스를 가져다가 사파리 브라우저에 쓸 웹킷이란 새로운 것을 만들어낸 것이다.

프레임웍은 말 그대로 뼈대다. 뼈대를 만들어놔야 엔진도 얹고, 좌석도 얹고, 핸들도 달고...

 

그럼 여기서 다시 KTHML은 무엇인지 또 궁금해 진다.

 

KHTML : 프리 소프트웨어로 KDE 프로젝트가 개발한 HTML 레이아웃(렌더링) 엔진.
            KDE의 Konqueror 웹 브라우저와 변형된 버전인 웹킷이 애플 사파리 웹 브라우저에서 사용 중이다.
            KDE 팀, 애플, 구글, 노키아 등에서 공동 개발하고 있다.
            (KDE에서 개발된 소프트웨어의 이름은 K로 시작한다.)

            KHTML은 모질라 재단에서 개발한 Gecko 레이아웃 엔진(파이어폭스 웹 브라우저에서 사용 중)보다 빠르다.
            하지만, 상대적으로 덜 알려져 있어 지원하는 웹사이트가 적다.

 

레이아웃 엔진이라...이건 또 뭥미?

 

Layout(Rendering) Engine : 쉽게 말하자면 HTML 등의 소스를 읽어들여 화면(또는 프린터 등)에 뿌려주는 기능을 한다.
                              웹 컨텐츠를 보여줘야 하는 메일 클라이언트 같은 응용 프로그램들도 사용한다.
                              웹 브라우저의 핵심적인 부분이고 이 렌더링 엔진이 빠르게 분석하고 정확하게 화면에 보여줘야 제대로 된 

                              웹페이지 또는 출력결과를 볼 수 있다.

                              물론 웹표준을 지킨다는 가정 하에. (뭔가 기준이 있어야 하지 않은가.)

                             

                              IE는 Trident(MSHTML) 라는 레이아웃 엔진을 사용한다.
                              트라이던트 엔진은 주로 MS 계열 프로그램들에서 사용하며, 윈앰프나 리얼 플레이어에 내장 된 

                              웹 브라우저에서도 사용 중이다.
                              그 밖에도 Avant나 Maxthon 같은 IE 클론 웹 브라우저도 이 엔진을 사용 중이다. 

                              (현재 IE 8베타에서는 Trident VI 버전 사용)
                              MSHTML.DLL이 바로 트라이던트 엔진이다.

                             

                              오페라 브라우저는 버전 7부터 Presto 엔진을 사용 중이며(현재 오페라는 9.x 버전), 

                              이전 4~6버전까지는 Elektra를 사용했다.
                              Presto 엔진은 DLL형태로도 사용할 수 없고, 소스도 공개되지 않았다.
                              재미있는 것은 어도비 드림위버도 이 엔진을 사용하고 있다.

 

그렇군...자동차의 엔진이나 다름없는 역할을 하는 것이 레이아웃 엔진이로군.

 

끝으로 이런 레이아웃 엔진을 만든 KDE(K Desktop Environment) 는 누구인지 궁금해진다.

 

사용자 삽입 이미지

KDE 4.1 스크린샷

 

KDE는 쓰기 편한 데스크탑 환경을 위한 강력한 시스템 개발을 목적으로 하는 프리 소프트웨어 프로젝트다.

기본적으로 데스크탑 기능과 응용 프로그램들 그리고 개발자들을 위한 문서나 툴들을 제공하는 것이 목표다.

 

이 데스크탑 환경이라는 것이 무엇인가.

문자로 OS와 대화를 했던 DOS(Command Line Interface), 즉 텍스트 기반의 UI에서 윈도 3.1로 시작된 그래픽 유저 인터페이스.

바로 우리가 매일 매일 접하고 있는 윈도의 시작메뉴부터 바탕화면, 아이콘, X표시가 있는 프로그램 윈도우 등등 사용자와의 직접적인

상호작용을 하는 중요한 요소다.

 

MS가 크게 성공할 수 있었던 것도 IBM 호환 PC에 탑재됨과 더불어 바로 이 윈도라는 데스크탑  환경 덕 아닌가.

윈도 3.1을 넘어 윈도95가 처음 나왔을 때, 스티브 잡스가 개발한 NeXTSTEP UI(당시 굉장히 진보적이었던 OS)를 본땄다고 

말들이 많았다. (당시 스티브 잡스는 독단적인 경영으로 인해 이사회에서 쫓겨난 상태였다.)

우리나라에서는 한글과컴퓨터의 한글 프로그램 역시 넥스트스텝의 인터페이스를 본땄었다.

 

사용자 삽입 이미지

유닉스 기반의 Nextstep 그래픽 유저 인터페이스.

당시 컴퓨터 사양에서 쓰기엔 너무나 무거워 실패하고 말았다.

 

넥스트스텝은 혁명적인 여러 컨셉으로 인해 10여년이 지난 지금에도 맥 OSX에도 영향을 미칠 만큼 미래를 앞선 데스크탑 환경이었다.

 

어쨌거나, 그만큼 컴퓨터를 편리하고 직관적이고 쉬운 방법으로 인도하는 것이 데스크탑 환경이다.

한 개인의 제안에서 시작되었던 KDE 프로젝트가 지금 상용 OS에 얼마나 많은 영향을 미쳤는지는 모르겠으나, 웹 브라우저에서 만큼은

큰 영향을 미친 것 같다.

 

이로써 개인적으로 궁금했던 웹킷 엔진과 관련 정보들에 대해 알아봤다.

혹 다른 분들에게도 도움이 되었기를...