Firefox 에 Rust 가 포함되었습니다

TL;DR: Firefox 48 부터, Mozilla 의 첫 Rust 코드가 포함됩니다. Rust 코드는 앞으로 더 많아질 것입니다!

Mozilla ❤ Rust

믿기 힘들지만 Mozilla 연구소가 처음 Rust 개발을 지원한지 벌써 7년이 지났습니다. 그 당시 Rust 는 헌신적이지만 소수였던 커뮤니티의 야심찬 시도였을 뿐입니다. 오랜 발명과 발견의 역사에도 불구하고, Rust 의 핵심 원칙은 놀랍도록 그대로 유지되고 있습니다. Mozilla 가 Rust 프로젝트에 관심을 갖고 지원했던 핵심 이유는 Rust 개발팀의 핵심 목표 (C++ 의 안전한 대안이 되어 시스템 프로그래머들을 좀더 생산적으로 만드는 것, 메모리 공격 위험이 좀더 낮은 미션크리티컬 소프트웨어를 만드는 것, 다루기가 좀더 쉬운 병렬처리 알고리즘을 만드는 것) 때문이었습니다. 그리고, 이것이 Rust 를 상용 코드에 쓰기로 한 핵심 이유이기도 합니다.

유망한 개발 시도였던 것이 이제 현실이 되었습니다. Rust 의 안전성과 세련된 기능들이 시스템 프로그래밍 분야 사람들을 매료시키고 있습니다. Mozilla 의 경우, 커뮤니티 기반의 개발이 글자 그대로 사명이기 때문에 커뮤니티의 외연을 넓히는 것이 중요합니다.

저는 지금 중요한 성취를 발표하게 되어 너무 기쁩니다. Firefox 48 버전을 통해, Mozilla 는 첫 Rust 컴포넌트를 모든 데스크탑 플랫폼에 배포합니다. 곧 Android 버전도 배포될 것입니다.

Rust 를 이용한 Mozilla 의 미디어 스택 개발

Media Playback 팀은 Rust 를 이용하기로 한 Mozilla 의 선두 그룹들 중 하나였습니다. 분명히 지금은 웹이 제공하는 세련된 핵심 경험들 중 하나가 미디어라고 쉽게 동의할 것입니다. 편집증적 강박이 없는 사람이라면 덜 느끼겠지만, 브라우저가 전혀 해롭지 않아 보이는 비디오 영상(예를 들어, 비누방울을 터뜨리는 카멜레온 영상)을 재생할 때도, 브라우저는 누군지도 모르고 신뢰할 수도 없는 사람이 만든 복잡한 포맷의 데이터를 읽어 들입니다. 그리고 밝혀진 바와 같이, 미디어 포맷 데이터는 디코더를 속여서 보안상 지저분한 취약점을 만드는데 사용된 적이 있습니다. 이 취약점은 웹 브라우저에 구현된 메모리 관리 모듈의 버그를 파고드는 것이었습니다.

이런 이유로 Rust 처럼 메모리의 안전을 보장하는 프로그래밍 랭귀지는 웹 상에 존재하는 미디어 컨텐츠의 잠재적인 위협을 막으려는 Mozilla 입장에서는 필수적인 도구입니다. Mozilla 의 Ralph Giles 와 Matthew Gregan 이 처음으로 Rust 를 이용해서 미디어 파서(parser)를 만들었습니다. 그들의 코드가 첫 Rust 컴포넌트로 Firefox 에 탑재되었다는 기쁜 소식을 알립니다. Rust 커뮤니티 입장에서도 이것은 정말 중요한 성취입니다. Rust 코드가 수억명의 Firefox 사용자들에게 전달되는 것입니다. 우리가 수집한 지표들에 의하면 Rust 컴포넌트는 원래의 C++ 오리지널 컴포넌트와 똑같은 결과를 내면서 아름답게 동작합니다. 더구나 새 컴포넌트는 메모리의 안전을 보장하는 랭귀지(Rust)로 구현된 것입니다.

Telemetry data for Firefox's first Rust component

Firefox 의 원격 수집 데이터에 의하면 새로운 Rust 코드는 1억번 실행되는 동안 아무 문제도 만들지 않았습니다.

계속 나옵니다!

여기까지 오기 위해 많은 사람들이 수고했습니다. Ralph Giles 과 Matthew Gregan 이 컴포넌트를 구현했습니다. 그리고 Nathan Froyd, Nick Nethercote, Ted Mielczarek, Gregory Szorc, Alex Crichton 이 Rust 를 Firefox 빌드 시스템과 도구 시스템에 통합하고 모든 플랫폼 위에서 정상 동작하도록 만드는데 중요한 역할을 했습니다.

Rust 자체는 뛰어나고 활발한 커뮤니티의 결과물입니다. 이 결과물은 이슈, 디자인, 코드, 기타 등등 영역에서 전세계 Rustacean 들의 헌신적인 기여 없이는 만들어질 수 없었습니다. 저 역시 Rustacean 인 입장에서, 당신에게도 Rust 를 권합니다. 지금이 시작하기에 아주 좋은 시점입니다. 그리고 Rust 를 사용하는 Mozilla 프로젝트에 참여하기를 권합니다.

Mozilla 에 실린 Rust 코드를 보자니 오랜 여정의 정점을 보는 기분입니다. 하지만 이것은 Mozilla 의 첫 결과물일 뿐입니다. 이제부터 펼쳐질 세계를 기대해주세요!

이 글은 Dave Herman 이 쓴 Shipping Rust in Firefox 의 한국어 번역본입니다.

작성자: ingeeKim

"누구에게나 평등하고 자유로운 웹"에 공감하는 직장인.

ingeeKim가 작성한 문서들…


댓글이 없습니다.

댓글 쓰기