WIPIVERSE

KHTML

KHTML은 KDE 프로젝트가 개발한 HTML 레이아웃 엔진(웹 엔진)이다. 1990년대 후반 Konqueror 웹 브라우저의 렌더링 엔진으로 출발하였으며, C++로 작성되었고 KParts 프레임워크를 기반으로 구축되었다. 오늘날 널리 사용되는 여러 웹 브라우저 엔진의 조상으로, 웹 기술 역사에서 중요한 위치를 차지하는 소프트웨어이다.

역사

KHTML의 전신은 Torben Weis와 Martin Jones가 개발한 khtmlw(당시 KDE HTML Widget)로, HTML 3.2, HTTP 1.0, HTML 프레임을 지원했으나 DOM, CSS, JavaScript는 지원하지 않았다. KHTML 자체는 1998년 11월 4일 khtmlw 라이브러리를 포크(fork)하면서 시작되었으며, Unicode 지원이 추가되고 Qt 2로의 이전을 위한 변경이 이루어졌다. Waldo Bastian이 초기 버전 제작에 참여한 인물 중 하나이다.

본격적인 재작업은 1999년 5월부터 10월 사이에 이루어졌다. 당시 프로젝트의 선택지는 "KHTML을 큰 노력을 들여 발전시키거나 Mozilla를 사용하거나"였으며, JavaScript 지원이 최우선 과제로 설정되었다. 1999년 5월 Lars Knoll이 DOM 표준 구현 연구를 시작하여, 같은 해 8월 16일 KHTML 라이브러리의 전면적 재작성을 발표하였다. 이후 표준 DOM을 내부 문서 표현으로 채택하게 되었고, 1999년 10월에는 Harri Porten의 KJS 통합을 통해 JavaScript 지원의 기초가 마련되었다.

1999년 말부터 2000년 초까지 Knoll, Antti Koivisto, Dirk Mueller 등은 CSS 지원 추가와 아키텍처 안정화에 힘썼으며, 대부분의 작업은 2000년 3월에 완료되었다. 이를 통해 KHTML은 Internet Explorer 다음으로 히브리어·아랍어 등 우측에서 좌측으로 쓰는 언어를 올바르게 지원한 두 번째 브라우저 엔진이 되었다(Mozilla보다 먼저였다).

KHTML은 KDE 2.0(2000년 10월 23일)부터 Konqueror 브라우저의 렌더링 엔진으로 포함되었으며, KDE 2.0은 기존의 모놀리식 KDE 파일 관리자를 대체한 Konqueror를 포함한 첫 KDE 릴리스였다.

후속 모듈 및 지원 중단

KSVG는 2001년 Nikolas Zimmermann과 Rob Buis에 의해 처음 개발되었으나, 2003년에 KDOM/KSVG2와 Kcanvas라는 두 프로젝트로 분기되었다. KHTML은 약소 일반 공중 사용 허가서(GNU LGPL) 조항으로 배포된 자유 소프트웨어이다.

KHTML은 KDE Frameworks 6에서 제거될 예정이었으며, 2016년에 활발한 개발이 종료되고 Frameworks 5 업데이트에 맞추기 위한 최소한의 유지보수만 이루어졌다. 2023년에 공식적으로 지원이 중단되었다. 최종 릴리스는 5.116.0(2024년 5월 4일)이다.

표준 지원

KHTML은 다음 표준을 지원하였다:

  • HTML 4.01 및 일부 HTML 5 지원
  • CSS 1, CSS 2.1(화면 및 페이지 미디어), CSS 3 선택자(KDE 3.5.6부터 완전 지원), CSS 3 기타 기능(다중 배경, box-sizing, text-shadow)
  • PNG, MNG, JPEG, GIF 그래픽 형식
  • DOM 1, 2 및 부분적으로 3
  • ECMA-262/JavaScript 1.5
  • 부분적 SVG(Scalable Vector Graphics) 지원

계승

KHTML과 KJS는 2002년 애플(Apple)이 사파리(Safari) 웹 브라우저에 채택하였다. 애플은 KHTML 엔진을 포크한 소스 코드를 WebKit이라는 이름으로 공개하였다. 이후 2013년 구글(Google)은 WebKit을 다시 포크한 Blink 엔진 개발을 시작하였으며, Blink는 현재 구글 크롬, 마이크로소프트 엣지, 오페라, 비발디, 브레이브 등 널리 사용되는 여러 브라우저에 사용되고 있다. 따라서 KHTML에서 파생된 엔진 계열은 오늘날 대다수 웹 브라우저의 기반이 되고 있다.

둘러보기

더 찾아볼 만한 주제

    전체 문서 보기