처음 웹 브라우저의 시대를 연 건 누구도 부정하지 않는 '모자이크'이겠죠. 이게 발전을 거듭하고 거듭한 결과가 Trident 엔진 및 EdgeHTML이라는 것을 생각하면 상상이 가실 지 모르겠습니다.(아, 물론 Microsoft사에서 모자이크 엔진을 사용하여 Internet Explorer를 팔 때 마다 로열티를 주기로 했지만 무료로 뿌려서 한 푼도 못 받았다는 이야기와, Internet Explorer 6.0에 실려있던 Based on 'Mosaic' 문구에 근거해 이야기 하는 겁니다. 어쨌든 IE 엔진의 근간은 Mosaic와 깊은 연관이 있고 Microsoft Edge의 근간은 IE 웹 렌더링 엔진인 Trident 엔진이니까요.)
아무튼 모자이크 이후 Netscape가 등장하고, Microsoft Internet Explorer가 등장해 Netscape를 반 쯤 죽여놓는(;;) 동안 Netscape는 자신의 웹브라우저를 오픈소스화 해 Mozilla Application Suite를 제작하도록 만듭니다.
이 과정에서 Mozilla 재단의 연구진들이 발로 짠 듯한 소스코드에 경악, 대대적으로 뜯어고쳤다는 이야기도 유명한 이야기죠.
그러다가 Netscape는 저물고 새로운 브라우저 경쟁의 시작은 Firefox가 올렸습니다. 그 전에도 KHTML(컹커러 - K Desktop Environment의 웹 브라우저 프로그램이었던 프로그램. 현재는 KHTML의 한계로 qtWebkit을 사용한 ReKonq가 기본 프로그램입니다. 아마 Redifined + 컹커러 라는 작명센스가 아닐까, 조심스럽게 추측해 봅니다.) 기반의 컹커러 계열 웹 브라우저나 Presto 기반의 Opera  브라우저는 있었지만 그 당시에나 지금에나 KHTML은 덜그덕 거리면서 간신히 돌아가던 렌더링 엔진이라 경쟁상대는 커녕 목숨부지도 힘겨운 상황이었고, Opera 브라우저는 여전히 소수의 마니아들이 좋아하는 웹 브라우저임을 고려하면 Firefox가 확실히 한 역할 했다고 볼 수 있겠죠.
Firefox의 어느 버전은 기네스북에 '가장 많이 다운로드 된 웹 브라우저'로 기록된 것으로 기억되는데, 그 때가 막 Google 등 타 업체들이 웹 브라우저 개발에 나설 때였던 것 같습니다.
그러나 이렇게 기네스북 기록까지 세우던 Firefox는 어느 인터넷 회사빠르고 강력한 웹 브라우저가 출시되면서 점유율도, HTML 5 반영 속도도(심지어 HTML5를 논의하게 된 계기가 Firefox를 비롯한 새 브라우저들의 웹 표준 논의였고 이 선봉장이 Firefox였음을 생각하면 안타까운 일입니다.) 느려지고, 속도까지 따라잡지 못하는 상황에 가장 낡은 엔진인 Gecko(Opera는 Presto를 버린 대신 Google이 Webkit에서 포크한 Blink를 사용하고, Chrome은 Webkit에서 포크한 Blink를 만들어 쓰고, Safari는 기존 Webkit을 크게 바꾼 Webkit2를 만들어 사용중이며 마지막 남은 IE 조차 Windows 10을 통해 Gecko보다 오래된 Trident를 완전히 뜯어고친 EdgeHTML을 사용합니다. 즉, Gecko는 큰 뜯어고침 없이 개발되어 왔음을 보면 다른 모든 브라우저에 비해 오래된 엔진입니다.)을 사용하면서 그 느린 엔진에게 브라우저 처리까지 맡기는 등, 발목이 줄줄히 잡히는 상황이 오게 됩니다.
그러다가 결국 Mozilla 재단은 살아남기 위해 Webkit, EdgeHTML 브라우저들과 같은 멀티 프로세싱 및 샌드박스 효과(혹은 기능)이 추가된 e10s 프로젝트를 시작합니다.
하지만 오래된 Gecko의 코드는 싱글 프로세싱에 최적화 되어 있었기에, 축적된 많은 코드들을 멀티 프로세싱에 맞게 바꾸는 것은 쉽지 않은 작업이 되었습니다. 오래된 코드, 부가기능 호환성, 여러가지 새로운 트랜드나 개발 편의성에는 좀 뒤떨어지는 프로그래밍 언어... 이런 많은 것들이 발목을 잡습니다.
그럼에도 불구하고 모질라 재단은 불굴의 의지로 e10s 완성에 거의 성공합니다.
현재 거의 적용되어 있으며 곧 완성될 예정인 것으로 알고 있습니다.
* 1~2년간 이 e10s에 집중하기 위해 많은 부수 프로젝트들인 Persona, Shumway등을 중단했을 지도 모르는 일 입니다.
e10s가 마무리 단계이기 때문에 곧 있으면 타 브라우저들의 속도도 어느정도 따라잡는 등 여러가지 이점을 조금씩 발휘해 나가고 있음에도 이들의 도전은 끝이 아닙니다.
이번엔 아예 자신들이 자체 제작한 프로그래밍 언어 Rust를 만들고 이를 바탕으로 Servo라는 브라우저 엔진을 개발하게 됩니다.

△ 2017년 1월 7일에 캡쳐한 Servo 공식 누리집. 2016년 7월의 렌더링 결과가 나와있습니다. ©2014-2017 Servo Project, Mozilla Foundation.
Servo는 삼성전자도 관여하고 있으며, Mozilla측은 나중에 이 결과물 일부를 Firefox에 적용해 속도를 비약적으로 향상시킬 것이라고 합니다. 이름은 Project Quantum.
한국의 모 텔레콤 회사의 5G 슬로건인 Everything is Alive - Quantum과는 다른 이야기입니다.
이 Servo는 Rust 프로그래밍 언어의 완성이 늦어지면서 덩달아 늦어지기도 했고, 한 두달 정도 개발이 안되던 시기도 있었으나 우여곡절 끝에 Servo Nightly가 mac OS와 Linux 한정으로 배포되었습니다.

△ Servo의 Nightly 배포 페이지. Windows 및 Android의 버그트래커 링크가 살포시 걸려있습니다. 참고로 Servo 웹사이트 하단에서 볼 수 있는 Servo Blog 링크를 통해 그 주의 변경점 등을 알 수 있으며 Feed 구독도 가능합니다. ©2014-2017 Servo Project, Mozilla Foundation
Windows용의 경우 제가 썼을 때는 렌더링이 완료된 직후 하얗게 변하거나 키보드 입력이 느린 문제, Servo에 적용된 browser.html이 제대로 작동하지 않는 문제가 있긴 했지만 기존 Firefox에 비해 좀 빠른 속도와(현재의 Firefox와 비교해도 빠릅니다. 심지어 Firefox Nightly보다도요. Github 웹사이트를 가지고 비교했습니다.) 정작 Firefox로 열어본 Browser.html의 UI를 보고 이 브라우저는 출시만 되면 인기를 끌 가능성이 있다고 보았습니다.
그건 그렇고, 어째 남의 브라우저에서 새 브라우저 UI를 볼 수 있다는 게 재미있습니다. 예시에선 Firefox라 같은 재단 소속이라고 치고, Chrome에서도 실행이 됩니다.
역시 HTML로 만든 UI라 그럴까요. 파일 자체 확장자가 .html 이던데요.
아무튼 당시의 문제들은 거의 해결이 되어서 2017.01.07 토요일 기준으로 체크리스트 내의 버그들은 모두 해결했다는 표시가 붙어있습니다.
시간이 되면 다시 설치해 봐야겠습니다.
(참고로 해당 스레드에서 msi 설치파일을 제공합니다. 아직 불안정한 만큼 실행에 시간이 걸리니 인내심을 가지고 커피 한 잔 드시고 오세요. 대신 실행 후 속도가 빠르다는 점에서 등가교환같다는 생각은 덤입니다.)
Android용은 Samsung Internet Browser(그러니까 갤럭시 제품군에 사용하는 인터넷 브라우저)에 들어갈 예정이라는 소문도 돌았었는데요, 그에 비해 Servo의 Android용 개발은 Windows용에 비해 많이 진척도가 떨어져보입니다. 일단 Browser.html(UI)의 모바일 용 개발이 되어있지 않고, 일부 기능은 Native API, 즉 Android 자체 API를 써야만 가능하다는 문제점이 있어 개발이 지연되는 측면도 있는 모양입니다. 현재 Servo 개발자들이 공식으로 올린 Servo Apk 파일을 이용해 실행해 보면 곧이어 강제종료된다는 사실만 알 수 있을 뿐입니다. 게다가 버그 리스트에 보면 키보드 지원도 안 됩니다.
Windows 버전은 버그 수정이 꾸준히 진행된 결과 곧 있으면 mac OS, Linux와 같이 Nightly 배포 페이지에 공개될 것만 같지만, Android용을 만나보는 것은 좀 더 시간이 지나야 겠죠?

오늘은 차세대 브라우저 렌더링 엔진인 Servo(서보)에 대해서 알아보았는데요, 앞으로 Servo가 완성되어 모두 앞에 당당히 Chrome보다 빠른 브라우저로써 모습을 보였으면 좋겠습니다.


 * 본 글은 Mozilla의 공식 입장과는 관련이 없으며, 주장 및 글 세부 보충설명 중에 오류가 있을 수 있어 공신력있는 정보는 아니니, 인용 등 참고시에는 가급적 타 사이트를 이용해 주시고 혹여나 정확히 알고 있는 사실이나 덧붙이고 싶으신 내용이 있으면 트위터 멘션 및 댓글로 알려주시면 수정하겠습니다.(물론, 수정시 출처는 남기겠습니다.)