“오픈 웹”의 실현을 앞당기는 모질라 프로젝트 10선

파이어폭스(Firebox)는 구식 넷스케이프 브라우저를 소생시켰다. 오픈 웹 기술의 주창자 중 하나인 모질라에게는 결정적인 순간이었다. 그러나 현재 모질라의 가장 중요한 프로젝트 중 하나인 파이어폭스의 시장 점유율은 추락을 거듭하고 있다. 파이어폭스는 구글 크롬과의 경쟁에서 패해 브라우저의 정점에서 밀려난 것으로 보인다.

그러나 이것으로 모질라의 혁신 또한 사라지고 있다고 속단하기는 이르다. 모질라는 독자적으로, 또는 다른 조직과 협력해 ‘오픈 웹(Open Web)’이라는 사명을 실현하기 위해 다양한 소프트웨어 프로젝트를 추진해왔다.

mozilla-tech-2014

다음은 모질라의 발전에 핵심 역할을 하고 있는 10가지 프로젝트다. 각 프로젝트를 살펴보고 모질라의 오픈 웹 비전이 어떻게 이어져 내려왔는지 파악해보자. editor@itworld.co.kr

1. Rust
C/C++의 속도, 메모리 안전성, 고수준의 언어에 대한 동시다발적인 제어를 특징으로 하는 언어가 있다면 근사하지 않을까? 이를 계기로 모질라와 삼성이 공동으로 후원해 개발한 언어가 바로 러스트(Rust)다. 급격하게 성장하고 있는 러스트는 현대적인 멀티코어 CPU의 시스템 프로그래밍이 목적인 언어다.

러스트는 부적절한 메모리 사용 등 프로그래밍에 있어 자주 발생하는 실수를 없애거나 최소화하는 여러 많은 기능들을 특징으로 한다. 언어의 안전성 기능은 원하면 비활성화할 수 있다. 예를 들어, 프로그램에서 어떠한 기능도 가지고 있지 않은, 쓸모없는 객체를 찾아서 메모리를 해제하는 가비지 컬렉션 기능으로 인한 오버헤드를 원하지 않는 경우, 안전성 기능을 끌 수 있다. 또 러스트와 C/C++는 상호 운영이 가능하다. 따라서 필요 시 상대 언어를 사용할 수 있다.

평가: 주시할 만한 프로젝트다. 특히 비슷한 목표를 가진 구글의 고우(Go)에 대항해 어떤 모습을 갖출 지가 관건이다.

2. 서보(Servo)

모질라는 러스트로 뭘 구축하려 하는 것일까? 그 첫째가 바로 ‘서보(Servor)’다. 서보는 차세대 멀티코어 하드웨어와 GPU를 대상으로 한 웹 브라우저 엔진이다. 러스트는 (브라우저에서는 중요한) 메모리 안전성을 위한 언어다. 동시에 브라우저 요소를 별개로 유지할 수 있는 메카니즘을 탑재하고 있다.

평가: 서보 역시 염두에 둘 프로젝트다. 특히 향후 파이어폭스가 크롬으로부터 시장 점유율을 되찾을 수 있는 비장의 무기가 될 수 있다. 그러나 현재는 파이어폭스를 포함, 서보를 이용하는 브라우저가 없다. 그리고 모질라는 여기에 전력을 기울이지 않고 있다. 따라서 이 프로젝트에서 당장 무언가의 결실을 기대하기는 힘들다.

3. 파이어폭스 OS

크롬 OS는 크롬과 노트북을 위한 기술이고, 파이어폭스 OS는 안드로이드와 스마트폰을 위한 기술이다. ‘부트 투 게코(Boot to Gecko)’라는 명칭으로 ‘오픈 웹을 위한 완전한 스탠드얼론(standalone) 운영 시스템’을 목표로 내걸었던 이 프로젝트는 파이어폭스 브라우저, 스마트폰 OS, 관련 앱, HTM5, 자바스크립트를 실행하고 조금 남을 정도의 성능을 가진, 성능을 낮춘 리눅스 커널을 기반으로 한다.

평가: 실제보다는 이론상으로 더 그럴듯하다. 파이어폭스 OS는 안드로이나 iOS와 제대로 경쟁을 하기보다는 신흥 시장을 표적으로 삼고 있는 것으로 보인다. 따라서 시장 점유율이나 인식 모두에 있어 그 영향이 미미할 것으로 보인다.

4. 웹IDE(WebIDE)

웹용 앱 개발, 구축, 테스트는 종종 지겨운 작업이 되곤 한다. 모질라는 파이어폭스 브라우저를 모바일 앱 개발 환경으로 바꾸는 파이어폭스 기술을 창조해 이를 해결할 계획을 세웠다. 2014년 6월, 이 기능은 파이어폭스 개발자 빌드(Nightly)에만 포함되어 있다. 그러나 모질라는 적절한 시기에 파이어폭스에도 이를 추가시킬 목표를 세웠다. 모질라는 옵션으로 사용할 수 있는, 공통 웹 앱용 웹IDE인 ‘스타터 탬플릿(Starter templetes)’도 공급하고 있다.

평가: 개념은 좋다. 웹 앱을 개발하기란 매우 어렵다. 따라서 이를 더욱 직관적으로 편리하게 만드는 툴은 환영할 만하다. 웹IDE 개념은 어느 정도 영향력을 미치고 있는 것으로 판단된다. 예를 들어, 구글은 자사의 생태계에 이 아이디어를 도입할 계획을 갖고 있는 듯 보인다.

5. 슘웨이(Shumway)

어도비 플래시는 보안과 관련된 골칫거리가 자주 생기는 기술이다. 그러나 그럼에도 불구하고, 또 HTML5와 자바스크립트로 그 기능을 상당부분 대체할 수 있음에도 불구하고 사라지지 않고 있는 플러그인이다. 그렇다면 HTML5와 자바스크립트에서 플래시의 기능 일체를 모방하면서 플래시는 ‘죽이는’ 무언가를 창조하면 어떨까? 모질라는 이런 생각에서 플러그인 없이 브라우저 내부에서 플래시 형식 파일을 실행시키는 슘웨이를 개발했다.

평가: 좋은 아이디어이지만, 제대로 준비가 되기까지는 상당한 시일이 걸릴 것 같다. 파이어폭스 개발자 빌드에서도 많은 플래시 앱이 제대로 또는 아예 기능을 하지 않는다. 슘웨이가 제대로 발전하기 이전에 HTML5로 플래시를 대체하는 것이 더 현실적으로 보인다.

6. PDF.js

PDF 플러그인은 웹 브라우저에 보안 문제를 초래하는 것으로 악명높은 또 하나의 어도비 제품이다. PDF.js는 이를 순정 자바스크립트로 대체한다는 목표 아래 개발됐으며, 현재 파이어폭스의 PDF 처리를 담당하고 있을 정도로 성과를 올렸다. 그러나 모든 사람이 이를 반기는 것은 아니다. 물론 PDF 파일을 로컬 저장해, 브라우저 밖에서 확인하는 방법도 있다.

평가: 보안 측면에서 우수한 브라우저 애드온은 환영할만 하다. 그러나 조금 더 빨리 실행이 되고, 더 선명하게 문자를 처리할 수 있어야 한다.

7. Asm.js

우선, 자바스크립트에서 필수 요소만 추려낸다. 그 다음 기존 C/C++ 코드를 이 추려진 자바스크립트로 해석한다. 그 결과물을 브라우저에서 실행시킨다. 그러면 놀라운 속도로 명령이 실행되는 것을 확인할 수 있다. 기존 C/C++ 코드 속도의 절반 정도지만 자바스크립트라는 점을 감안하면 놀라운 속도다.

Asm.js는 모질라가 보편적인 런타임 엔진으로 자바스크립트를 신봉하고 있다는 것을 보여주는 야심찬 프로젝트다. 다만, Asm.js에 기반을 둔 익스텐션(extension)을 브라우저의 자바스크립트에서 처리해야 그 잠재력이 완전히 실현될 수 있다. 그러나 현재까지는 파이어폭스만 이를 지원하고 있다. 그렇다 하더라도, Asm.js에 기반을 둔 앱은 인상적이다.

평가: 그림의 ‘바나나브레드(Bananabread)’ 라는 게임 데모를 제외하고는 아직까지 ‘킬러’ 앱이 등장하지 않았다. Asm.js가 크롬의 V8 자바스크립트 엔진에 통합되면 흥미로운 일이 벌어질 것이다. 구글이 움직일 차례다.

8. 투게더JS(TogetherJS)

구글 독스(Google Docs)나 오피스 365 같은 협력 웹 애플리케이션의 경우, 기존 기술을 활용해 애플리케이션을 구축하는 것이 쉽다. 모질라의 오픈소스 기반 투게더JS(TogetherJS) 라이브러리는 사용자가 자신의 스크린에서 실시간으로 협력자의 행위를 관찰할 수 있는 웹 앱을 더욱 쉽게 구축할 수 있는 기술이다. 이 라이브러리에는 웹 소켓을 이용해 모든 참여자에게 메시지를 전달하는 허브 서버가 필요하다. 그러나 서버에 대한 의존도에 따라 클라이언트 코드를 변경할 수 있다.

평가: 혁명적인 기술은 아니다. 그러나 이를 시작하는 진입 장벽이 낮은 편이다 (하나의 스크립트로 시작할 수 있다).

9. 빅블루버튼(BigBlueButton)

‘온라인 학습용 오픈소스 웹 컨퍼런싱(conferencing) 시스템’이라는 기치를 내건 빅블루버튼은 고우투미팅(GoToMeeting), 웹엑스(WebEx), 어도비 커넥트(Adobe Connect) 등 토론 및 미팅 시스템의 오픈소스 대안이다. 특히 인터페이스가 이들 프로그램을 닮았다는 점에서 그렇다. 기능도 이들 서비스의 기능과 대동소이하다. 화이트보드, 데스크톱 공유, 회의 녹화 및 재생, PDF나 MS 오피스 문서의 슬라이드쇼 표시, 웹캠과 VoIP 컨퍼런싱 기능을 제공한다.

평가: 아이디어는 좋은데, 교육 분야 외에는 큰 관심을 끌지 못하는 것으로 보인다. 또 쉽게 배치할 수 있는 독자적인 VM 이미지도 있다.

10. 병렬 자바스크립트(Parallel JavaScript)

자바의 단점 가운데 하나는 ‘병렬화의 부재’라고 할 수 있다. 싱글 스레드에서도 실행이 불가능할 뿐만 아니라 프로세스 수준의 SIMD 기능의 장점을 활용하지도 못한다. 모질라는 인텔로부터 가장 많은 후원을 받는 병렬 자바스크립트 프로젝트를 추진하고 있다. ECMA 스크립트 표준에 SIMD 기능성을 추가하기 위해서이다.

평가: 호기심을 불러 일으키는 아이디어다. 그러나 성과가 나오기까지 몇 년이 걸릴 전망이다. 그 이유 중 하나는 공식적인 언어가 되기까지 시간이 상당히 많이 소요된다는 것이다. 또 SIMD 기반의 병렬화가 대다수 자바스크립트 애플리케이션에 얼마나 많은 속도 향상을 가져올지 불확실하다. 다만 향후 자바스크립트가 더 야심 찬 프로젝트로 등장할 것이라는 데는 의심의 여지가 많지 않다.

출처: http://www.itworld.co.kr/slideshow/88769

댓글 없음

댓글 남기기

의견 보내기