"모바일 브라우저, PC보다 10배 빨라진다"

모질라, 삼성전자와 공동 개발중인 '서보' 엔진 비전 공개

일반입력 :2014/02/25 10:23    수정: 2014/02/25 10:23

모질라재단이 삼성전자와 협력해 개발하고 있는 차세대 브라우저엔진 '서보(Servo)' 관련 계획을 구체화했다. 데스크톱 환경에선 고려되지 않았던 멀티코어와 모바일만의 특성을 적극 반영해 브라우저를 재발명하겠다는 포부다.

미국 지디넷은 24일(현지시각) 모질라가 멀티코어, 모바일 시대를 겨냥한 '웹브라우저 재발명' 목표를 세웠다고 보도했다. 삼성전자와 함께 만드는 렌더링엔진 서보를 통해, 브라우저 성능을 떨어뜨렸던 낡은 코드와 디자인의 족쇄를 벗겠다는 취지다.

이같은 메시지는 지난해 4월 서보와 러스트가 소개된지 10개월만에 나왔다.

모질라 플랫폼 엔지니어 조시 매튜스는 이달초 포스뎀 컨퍼런스에서 기존 엔진들은 거대하고 수정하기 매우 어려운 요소들이 다양하게 적용돼 있다며 지금 시점에서 성능과 보안성 측면에서의 개선은 브라우저 스택 재설계없이는 한계 상황에 다다랐다고 지적했다.

크롬, 인터넷익스플로러(IE), 파이어폭스, 사파리 등 주요 데스크톱 브라우저가 자바스크립트 처리속도를 높이기 위한 '저스트인타임(JIT) 컴파일'같은 기능을 넣는 방법으로 성능을 높여 왔지만 앞으로 이런 추세가 계속될 수 있을지는 장담하기 어렵다는 얘기다.

매튜스는 우리는 (브라우저를 만들 때) 과거 몇년간 경험한 문제에 대한 이해를 통해 보안성과 성능을 더 잘 높일 수 있는 기술을 밑바닥부터 새로 만들어 올릴 수 있을 것이라 판단했다며 서보를 개발하게 된 계기를 설명했다.

그는 서보 엔진을 품은 브라우저를 돌리는 모바일 기기에서 웹페이지를 표시할 때 데스크톱 환경에서보다 10배까지 빠른 속도를 낼 수 있다고 주장했다.

그에 따르면 서보는 현재 ARM 기반 프로세서를 탑재한 안드로이드 운영체제(OS) 단말기에서 구동될 수 있도록 개발되고 있다. 향후 파이어폭스의 자바스크립트 엔진 '스파이더몽키', 레이아웃(화면구조) 엔진 '게코'와 함께 사용될 예정이다.

모질라는 데스크톱보다 10배 빠를 수 있다는 서보 렌더링 엔진의 성능과 향상된 보안성의 근간으로 3가지 요소를 꼽는다. 웹페이지 처리와 화면표시에 멀티코어 성능을 최대한 활용하는 '병렬작업' 및 '병렬레이아웃' 처리구조, 그리고 기존 브라우저 엔진의 보안취약점을 보완한 프로그래밍언어 '러스트(Rust)'다.

■병렬 작업

용량이 큰 사이트에 들어갔을 때 로딩이 끝날 때까지 사이트 형태가 계속 바뀌는 모습을 볼 수 있다. 기존 브라우저 기술은 렌더링엔진이 내용 표시(render content)와 화면구조 계산(layout compute)을 혼자 맡아서 불필요하게 반복 실행하는 구조적 문제를 갖고 있기 때문이다.

서보 엔진의 병렬작업(Parallel tasks) 방식은 렌더링엔진의 내용표시와 화면구조 계산 작업도 구별해서 처리한다. 기존 브라우저는 자바스크립트엔진과 렌더링엔진, 2가지 기능이 병렬 작동하는 반면 서보 엔진을 도입한 브라우저는 자바스크립트실행, 내용표시, 화면구조 계산, 3가지를 나란히 처리한다. 성능 향상 배경이다.

이와 별개로 서보는 한 웹페이지 안에 중첩된 또 다른 웹페이지 영역을 담아내는 기술 아이프레임(iFrame)을 다루는 방식으로도 이점이 있다. 항상 웹페이지의 나머지 영역이 화면구조 계산을 마쳐야 아이프레임에게 순서가 넘어갔던 기존 방식과 달리, 서보는 이를 기다리지 않고 아이프레임 문서도 처리한다.

서보 엔진은 기존 브라우저 엔진들의 다소 '조악한 병렬주의'도 지원한다. 다른 브라우저 엔진의 병렬처리 기술 가운데 브라우저 '탭' 각각을 병렬처리하는 방식을 가리킨다. 서보는 웹사이트 데이터 자체를 세분화해서 처리할 수 있기 때문에 사이트 단위인 탭을 나란히 실행하는 방식은 저급한 기술로 비유될 수 있다.

■병렬 화면구조 계산

서보 엔진이 처리하는 화면구조계산 작업도 세분화된 여러 연산이 동시에 진행된다. 기존 브라우저 엔진은 웹페이지 화면구조를 파악할 때 여러 구성요소를 순차적으로 파악해 나간다. 서보 엔진은 수준이 동등한 구성요소의 하위 구조를 동시에 파악함으로써 전체 계산을 빨리 끝낼 수 있다.

매튜스는 사용자 기기의 모든 프로세서가 자기 순서를 기다리지 않고 항상 작동된다며 데스크톱보다 10배씩 느려지기도 하는 모바일 기기에서 이런 병렬처리가 성능상의 낭비를 줄이고 배터리 수명 향상도 기대할 수 있다고 설명했다.

■보안성

성능과 별개로 핵심이 되는 서보 엔진의 장점은 보안성이다. 기존 파이어폭스 브라우저에서 화면구조 계산을 맡아 온 레이아웃엔진 '게코'는 보안상 문제가 많았는데, 서보는 이를 개선했다는 설명이다. 서보가 기존 파이어폭스보다 보안 측면에서 유리해질 수 있는 근본적 차이는 개발 언어에 따른 결과다.

게코 엔진은 C++ 언어를 썼는데, C++로 짠 소프트웨어들은 메모리 관리상 오류를 일으킬 경우 실행중인 상태에서 오작동(crash)이 일어나거나 보안 취약점이 발생할 수 있다.

서보 엔진은 러스트라는 새 프로그래밍 언어로 개발되고 있다. 러스트는 기본적으로 클래스단위 오류를 배제했을 뿐아니라 실행되는 작업들이 독립적이고 공유되는 부분이 없어 보안상 취약점이 될 수 있는 '데이터 경합' 문제를 겪지 않아도 된다는 게 매튜스의 설명이다.

■개발방향

매튜스에 따르면 서보 기술은 여전히 한창 개발중인 기술이다. 아직 안정화되기엔 갈 길이 멀다. 다만 연말께엔 실험적으로나마 사용 가능한 수준이 될 것으로 보인다. 당장은 소스코드 형태로만 공개돼 있으나 2분기 중에는 비교적 안정화된 버전을 파일(바이너리) 형태로 배포하는 게 모질라 개발팀 목표다.

관련기사

서보 개발자 규모는 그리 크지 않은 듯 보인다. 소속 엔지니어 5명으로 이뤄진 모질라 쪽 팀과 커뮤니티 참여자, 규모를 알 수 없는 삼성전자 연구원 신분의 엔지니어들을 포함하고 있다. 현재 누락된 DOM API를 구현하고 CSS기능을 갖추는 작업과 윈도용 서보를 개발하는 데에 도움이 필요한 상황이다.

외부 참여자들은 서보 그리고 함께 개발되고 있는 그 개발언어 러스트의 개발 프로젝트에 참여할 수 있다. 예를 들어 향후 W3C테스트에 쓰일 자바스크립트와 CSS 코드를 작성한다든지, 서보 엔진의 현재 빌드에 대한 테스트나 버그 추적 작업에 자원할 수 있다.