문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 서보(엔진) (문단 편집) == 개발 배경 == Gecko 엔진은 [[넷스케이프 내비게이터|넷스케이프]]와 [[Internet Explorer]]가 싸우던 소위 브라우저 전쟁 시기에 만들어진 것으로, 이후 10년이 넘는 세월 동안 [[모질라 파이어폭스]]의 렌더링 엔진으로 쓰이면서 [[Internet Explorer]], [[구글 크롬]] 등의 경쟁자들과 맞서는 데에 많은 역할을 해 왔다. 하지만 [[구글]]이나 [[Apple|애플]] 등의 거대 기술 기업들이 다방면으로 브라우저 시장을 압박함에 따라 비영리 재단인 [[모질라]]로서는 상황을 반전시킬 만한 카드가 필요했는데, 그 일환으로 Servo 프로젝트가 시작되게 되었다. Servo의 가장 중요한 목표는 "멀티코어([[https://wiki.mozilla.org/Electrolysis|Electrolysis]])를 온전히 활용하는 병렬적인 웹 브라우저 엔진을 만드는 것"으로, 이미 중저가형 [[스마트폰]]에까지 [[멀티코어 프로세서]]가 널리 보급된 환경에서 확실하게 브라우저 성능에서 우위를 확보하겠다는 것이다. Gecko를 포함하여 대중적으로 쓰이는 브라우저 엔진들은 모두 멀티 코어가 대중화되기 전에 만들어진 탓에, 이제 와서 멀티 코어를 활용하도록 고쳐보기에는 곤란한 구조로 굳어버린 상태로, [[구글 크롬]]조차 [[RAM|램]]을 희생해 페이지 별로 프로세스를 따로 쓰는 정도가 한계고 그나마도 실제로 화면에 페이지를 그리는 렌더러는 한 창에 하나뿐이라 여러 CPU 코어를 동시에 한 페이지의 렌더링에 동원하는 건 불가능한 상황이다. 만약 Servo가 성공하여 쿼드면 쿼드, 옥타면 옥타 전부를 한 페이지에 렌더링하는 브라우저를 만들어낼 수 있게 된다면 모질라 재단은 다음 10년 정도를 맘놓고 보낼 수 있을 것이다. 보통 이런 브라우저 엔진들은 수행 성능, 응답성[* [[HTML5]], [[WebGL]] 등의 기술이 보급되면서 페이지를 한 번 그리면 끝이 아니라 실시간으로 [[JavaScript]] 코드를 돌리면서 페이지를 갱신해야 한다. 브라우저에서 초당 60프레임이 뽑히네 마네 하는 세상인지라...], 규모[* [[W3C]] 표준이 워낙 방대하고 또 계속해서 새로운 기술이 갱신되는 탓에 [[C언어]]로는 도저히 복잡도를 감당할 수 없다. 브라우저 엔진 만드는 게 OS 커널보다 복잡해진 상황이 되었다.] 등 여러 사정들 때문에 주로 [[C++]]로 만들곤 했다.[* 넷스케이프가 옛날에 [[Java]]로 브라우저를 만들려고 시도했었으나 망했다.] 하지만 C++는 멀티코어를 잘 쓰기 위한 기능은 부족하고, 모태가 된 [[C언어]]처럼 메모리 안정성 따위는 쌈 싸먹은 언어라 버그 만들기 엄청나게 쉬운 언어다. C++ 같은 언어에서 메모리 오류는 보통 '''치명적인 보안 버그'''가 될 수 있다는 걸 생각하면 무시하기 힘든 문제다. 이런 탓에, C++로 멀티코어를 지원하는 프로젝트를 진행하는 것은 상대적으로 많은 인력과 시간이 필요하다. 게다가 웹 렌더링 엔진도 매우 크고 복잡한 소프트웨어이라 뛰어난 프로그래머가 '''많이 필요'''한데, 모질라는 기본적으로 비영리 재단이라 다른 브라우저 제조사들처럼 마냥 개발자를 고용하기도 힘들다. 이런 탓에, C++로는 도저히 Servo 프로젝트를 완성하기 힘들다는 판단 하에 __C++보다 적은 노력으로__, __메모리 오류를 피하기 쉬우면서__, __큰 소프트웨어를 만들기 용이하며__, __멀티코어 프로그래밍__을 하기에 좋은 언어를 물색하게 되었다. 허나 결국 마땅한 언어를 찾을 수가 없었고, 그래서 [[Rust(프로그래밍 언어)|Rust]]라는 새로운 프로그래밍 언어 개발 프로젝트를 동시에 진행하게 되었다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기