**모질라 애플리케이션 스위트**(Mozilla application suite) 또는 **모질라**(Mozilla, 코드명 Seamonkey)는 자유 소프트웨어 크로스 플랫폼 인터넷 스위트로, 웹 브라우저, 이메일 클라이언트, 뉴스 클라이언트, HTML 편집기, IRC 클라이언트가 포함되어있다. 처음에는 넷스케이프 커뮤니케이션즈 코퍼레이션이 넷스케이프 커뮤니케이터의 소스를 기반으로 개발을 시작했으나, 이후 모질라 재단에서 개발을 주도하였다. 현재는 개발이 중단되었으며, 후속 버전으로 시몽키 커뮤니티에서 개발하는 시몽키(SeaMonkey)가 있다.

개관
--

모질라라는 이름은 넷스케이프 네비게이터 웹 브라우저의 개발을 시작할 때 내부적으로 쓰던 것이다. 모질라는 ‘모자이크 킬러(Mosaic killer)’를 의미하며, 당시 가장 인기있던 브라우저인 모자이크를 능가하려는 희망을 나타내려고 허구의 괴물인 고질라의 이름을 빌린 것이다. 외부적으로 이 이름은 HTTP 프로토콜의 User-Agent 문자열에만 쓰였고, 동시에 도마뱀 모양의 회사 마스코트의 이름이기도 했다.

1998년 3월, 넷스케이프는 자사의 인기 있던 넷스케이프 커뮤니케이터 스위트의 코드를 오픈 소스 라이선스 하에 대부분 공개했다. 이 애플리케이션의 이름은 "모질라"로 결정됐고, 이후 모질라 협회와 mozilla.org 웹사이트가 창립/개설되었다. 본래 커뮤니케이터 코드의 많은 부분(레이아웃 엔진, 프론트 엔드 관련 코드 등)이 폐기되었지만, 모질라 협회는 결국 기능과 안전성 면에서 기존 커뮤니케이터를 능가하는 제품을 만드는 데 성공했다.

2003년 7월까지 모질라 협회가 AOL의 간판을 걸고 브라우저 개발과 모질라 소스 관리를 계속하다가, 이후 모질라 재단으로 업무가 넘겨졌다. 이 재단은 mozilla.org의 개발자와 직원 상당수가 참여해 설립됐고, 모질라의 상표권을 가지게 되었다. (그러나 소스 코드의 저작권은 GPL과 MPL에 따라 기여자들에게 돌아간다) 재단 창립 시 AOL, IBM, 선 마이크로시스템즈, 레드햇, Mitch Kapor 등에서 기부를 하였으나, 이후 넷스케이프 네비게이터의 개발 중단이 발표되고 AOL이 향후 자사의 모든 소프트웨어에서 마이크로소프트의 인터넷 익스플로러 브라우저를 사용하기로 하면서 재단과 AOL과의 관계는 공식적으로 끝나게 된다. 그러나 AOL의 최근 브라우저에서는 모질라의 게코 레이아웃 엔진을 함께 사용하고 있다.

다른 대규모 소프트웨어 프로젝트와 마찬가지로, 모질라는 그 자체가 다른 프로그램을 위한 플랫폼과 라이브러리의 역할을 한다. 기능 확장은 자바스크립트 기반의 단순한 북마클릿에서 모질라 확장기능(마우스 제스처와 같은), 완전히 독립된 프로그램까지 규모와 기능 면에서 다양하게 이루어진다.

모질라의 역사
-------

넷스케이프 커뮤니케이터가 소스를 공개하던 시점인 1990년대 후반 미국에서는 경기 열풍이 한창 고조된 때였고, 인터넷 커뮤니티는 긍정과 부정의 시각이 엇갈린 가운데 이를 환영했다. 어떤 쪽에서는 넷스케이프의 소스 공개는 자유 소프트웨어 운동의 쾌거일 뿐 아니라 넷스케이프에게는 오픈 소스 개발의 힘을 이용할 기회가 될 것으로 보았다. 이러한 전망은 GNU/리눅스와 자유 소프트웨어 사용자들 사이에서 크게 인기를 끌었으며, 자유 소프트웨어와 관련되지 않은 다른 많은 이들은 이것을 마이크로소프트의 인터넷 익스플로러의 독점적 성장에 직면한 넷스케이프의 항복으로 받아들였다.

사람들의 희망과는 다르게, 커뮤니케이터 코드를 기반으로 한 개발은 생각지 못한 난관들이 있었다:

* 커뮤니케이터의 코드는 거대하고 복잡했다.
* 되도록 많은 운영 체제에서 동작하도록 개발하기 위해, 서로 다른 라이브러리와 특성들을 고려해야 했다.
* 커뮤니케이터는 이른바 ‘인터넷 시간’에 따라 짧은 개발 주기를 유지하는 바람에 많은 문제를 품고 있었다. 짧은 개발 주기를 채택할 경우 프로그래머는 시간에 쫓겨 모듈성과 간결함을 유지하기가 어렵게 된다.
* 커뮤니케이터의 일부분은 협력사와의 라이선스 협의 문제로 공개되지 못했다.

그 결과 최소 배포된 커뮤니케이터의 소스는 깨끗하게 빌드조차 되지 않았고, 제대로 된 실행은 힘들었다. 이는 모질라 핵심 개발자들(대부분은 여전히 넷스케이프의 급여를 받고 있었다)에는 험난한 도전이 되었고, 독자적인 개발자들이 모질라에 공헌한다는 것은 더욱이 어려운 일이었다.

최종적으로 모질라 핵심 개발자들은 오래된 코드를 보수하기가 힘들다고 판단했다. 대신 그들은 전체 코드 기반을 바닥부터 재작성하기로 결정했으며, 이를 반대한 넷스케이프의 총괄 개발자인 제이미 자윈스키는 결국 프로젝트를 그만두었다.  최종 계획안에는 다른 내용과 함께, 완전히 새로운 크로스 플랫폼 사용자 인터페이스 라이브러리와 새로운 HTML 렌더링 엔진의 제작이 포함되었다.

일부는 이 같은 결과를 부정적으로 보았다. 이전의 커뮤니케이터 코드가 폐기된 지 두 달이 못 된 1998년 12월 7일에, 넷스케이프는 게코(Gecko) 레이아웃 엔진 기반의 시연판을 공개했다. 게코는 이미 넷스케이프에서 **NGLayout**(Next Generation Layout, 차세대 레이아웃)이란 이름으로 개발되던 것으로, 이전 엔진보다 훨씬 가볍고 빨랐다. 게코 시연판에서 가장 크게 홍보한 점은 용량이 하나의 1.44MB 플로피 디스크에 들어갈 정도로 작다는 점이었고, 이것은 당시 다른 브라우저의 1/10 정도 용량이었다.

게코의 빠른 배포로 인해 사람들은 완전한 브라우저의 공개가 멀지 않다고 생각하게 되었다. 그러나 렌더링 엔진의 첫 번째 배포판은 버그가 많고 충돌이 잦았고, 완성과는 거리가 멀었다. 게다가 완전한 기능을 갖춘 웹 브라우저의 제작은 미숙한 렌더링 엔진의 제작에 비해 더욱 많은 노력이 필요했다. 모질라 개발자들은 단순한 웹 브라우저보다 더 거창한 프로젝트를 구상했다. 새로운 모질라(내부 코드명 Seamonkey)는 완전히 프로그램 가능한 사용자 인터페이스와 모듈화된 아키텍처를 갖춘 ‘인터넷 애플리케이션 플랫폼’으로 계획되었다. 모질라는 또한 이메일 클라이언트, 인스턴트 메신저 클라이언트, 유즈넷 뉴스 리더 등을 위한 기능을 갖추도록 계획됐다.

이 거대한 구상을 위해서는 보다 많은 노력이 필요했기 때문에, 프로젝트는 결국 예정된 시한을 맞추지 못했다. 일 년여가 지나자 모질라에 대한 회의적인 시각이 늘어났고 어떤 이들은 모질라 브라우저의 개발이 완료될 수 있을지조차 의심했다. 그러나 프로젝트는 계속되었고, 넷스케이프가 AOL에 매각되고 닷컴 열풍이 종말을 고하는 중에도 개발을 꾸준히 지속했다.

2002년 6월, 모질라 프로젝트는 리눅스, 맥 OS, 마이크로소프트 윈도우, 솔라리스를 포함한 다수의 운영 체제에서 동작하는 표준 기반의 기능적인 웹 브라우저를 제작했다. 모질라 1.0이 2002년 6월 5일 공개되었고, 개인 설정이나 개선된 인터페이스 등을 포함해 인터넷 익스플로러에 없는 새로운 기능들을 소개하면서 호평을 받았다. 거기에 모질라 브라우저는 그 강력한 표준 지원으로 인해 W3C 표준에 대한 ‘사실상(de facto)’의 유일한 참고 구현이 되었다. 최신 버전의 모질라는 다양한 설정이 가능하고, 쿠키, 팝업, 패스워드, 이미지 관리, 탭 브라우징 등의 고급 기능을 갖추고 있다.

2003년 7월 15일, AOL은 넷스케이프 모질라의 핵심이었던 자사의 브라우저 개발부의 문을 닫기로 했다. 이는 곧 이전의 모질라 개발의 책임을 졌던 넷스케이프/모질라 개발자들이 주축이 된 모질라 재단이 설립되는 배경이 되었다. 다행히 AOL에서는 새로 설립되는 재단에 2백만 달러 규모의 지원을 약속했다. 사실 이것은 AOL이 경쟁자인 마이크로소프트와 앞으로 7년 동안 자사의 소프트웨어에서 인터넷 익스플로러를 사용하겠다는 계약을 한 뒤부터 예상된 결과였다. 넷스케이프는 이전부터 마이크로소프트에 대한 AOL의 교섭 카드였던 것이다.

다른 부서로 이동된 사람들 제외한 대부분의 넷스케이프 직원들은 해고되었다. 넷스케이프 간판은 건물에서 끌어내려졌고, 이것은 넷스케이프의 종말로 받아들여졌다. 넷스케이프 상표는 그 포털 사이트에서 계속 사용되겠지만, 모질라 개발에는 더 이상 투자하지 않게 되었다. 이후 버전의 넷스케이프는 모질라에서 단순히 이름만 바꾼 것에 가까운데, 2004년 8월에 출시한 7.2 버전(모질라 1.7 기반)부터이며, 2005년에 출시한 넷스케이프 8.0은 인터넷 익스플로러와 모질라 파이어폭스 모드를 선택할 수 있도록 했다.

모질라 플랫폼 개발의 변화
--------------

앞으로 모질라의 변화에 대한 계획을 보여주는 새로운 개발 로드맵이 공개되었다. 이에 따르면 모질라는 현재의 통합 "클로스 플랫폼 프론트 엔드"(XPFE) 애플리케이션에서, XUL 사용자 인터페이스 프레임워크와 게코 렌더링 엔진과 같은 공통 백 엔드 기술을 공유하는 작은 애플리케이션들의 패키지로 진화하게 될 것이다. 이전처럼 끊임없이 작업이 계속되겠지만, 서드 파티 애플리케이션과의 통합은 더 나아질 것이다. 스위트의 기능을 분산시켜, 다음과 같은 방법을 통해 프로젝트를 발전시킬 계획이다.

* 애플리케이션의 불필요한 코드를 줄이기
* 프로젝트 관리의 단순화
* 프로그램 모듈화 향상과, 안전성과 보안 강화

이것은 장기적인 목표가 아니다. 이미 파이어폭스 1.0 브라우저(구 피닉스, 파이어버드)와 선더버드 1.0 메일/뉴스 클라이언트가 최근 배포되었다.

파이어폭스 같은 모질라 재단의 제품으로부터 스위트를 구별하기 위해, 모질라 재단은 모질라를 "모질라 스위트"로 홍보하고 있다. 그렇지만 여전히 많은 개발자들에게 Seamonkey로 잘 알려져 있다.

모질라 스위트의 개발 중단
--------------

2005년 3월 10일, 모질라 재단은 1.7.x를 끝으로 더 이상 새로운 모질라 스위트의 출시가 없을 것이라고 발표했다. 그러나 모질라 재단은 개발을 계속하기 원하는 커뮤니티 회원이 있다면 지원이 이루어질 것이라는 점을 강조했다. 결과적으로 모질라 스위트는 계속 개발되겠지만, 모질라 재단 차원의 개발은 공식적으로 중단된 것이다.

1.7.x의 모질라 스위트를 계속 사용하기 원하는 단체를 위해서 "1.0"으로 시작하는 새로운 이름의 비공식적인 제품이 나올 것이다. 개발자들은 이미 새로운 이름을 결정했으나, 파이어폭스 이름 변경 과정에서 겪었던 문제를 피하기 위해 상표권에 대한 법적 절차를 마치고 난 후에 이를 공개할 예정이다.

모질라 스위트의 마지막 정식 버전은 1.7.13이며, 1.8 버전으로는 6개의 알파와 1회의 베타가 발표되었지만 정식 버전은 출시되지 않았다.

시몽키 프로젝트
--------

2005년 7월 2일 시몽키 프로젝트가 시작되었다. 시몽키 프로젝트는 모질라 재단이 개발을 중단한 모질라 스위트의 개발을 계속하는 것을 목표로 하며, 시몽키 커뮤니티에 의해 개발되고 있다. 기존 모질라 스위트와의 혼동을 방지하기 위해 새로운 이름과 로고를 이용하는 독립된 제품으로 존재한다. 모질라 스위트와 동일한 구성을 유지하며, 동시에 최신 모질라 기술을 반영하고 있다.

2006년 1월 30일 시몽키 1.0이 출시되었다.

모질라 기술
------

모질라의 주된 기술적 취지는 월드 와이드 웹과 이메일과 같은 주류 인터넷 통신 시스템의 기반이 되는 표준에 대한 구현과 확장이다. 자유롭고 이식이 용이한 접근 방식을 택하면서, 모질라 기술은 상업적 동기에서 최대한 자유로운 공공 인프라를 제공할 뿐 아니라 이러한 기술의 진화에 있어 지도적인 위치가 되었다.

모질라 소프트웨어 아키텍처는 필요에 적절하게 모듈화되었다. 그 결과로 모질라 개발은 다른 상황에서 재사용이 가능하도록 몇 가지 구성이 분화되었다. 중요한 것들로는 모든 운영 체제에서 동일하게 동작하도록 하는 플랫폼 추상화 라이브러리인 NSPR, XPCOM, 마이크로소프트의 컴포넌트 오브젝트 모델(COM)과 유사한 소프트웨어 구성 프레임워크 등이 있다. 그리고 가장 중요한 것이 많은 프로젝트에서 재사용되고 있는 게코 레이아웃 엔진이다.

모질라의 독특한 특징 중 하나는 메뉴, 대화 상자를 포함한 전체 사용자 인터페이스가 게코 운영 체제의 GUI 라이브러리가 아닌 레이아웃 엔진에 의해 렌더링 된다는 점이다. 이 같은 아키텍처는 XUL로 불리는 특별한 언어를 사용하는데, 이것에 대해서는 의견이 분분하다. 옹호자들은 그 유연함과 서로 다른 플랫폼에서도 표준적인 GUI를 제공할 수 있다는 사실을 든다. 비판적인 이들은 이 아키텍처가 성능 저하의 원인이 되며, 애플리케이션 설계에서 운영 체제 인터페이스의 GUI를 사용하는 것이 일반적인 방식이라고 주장한다. 현재 존재하는 많은 브라우저들이 렌더링 엔진을 단지 HTML 페이지를 출력하는 데만 사용한다.

모질라에서 XUL은 그것의 AOM(Application Object Model, 애플리케이션 객체 모델)과 단단히 통합되어 있다. 이 객체의 집합은 문서-명시된 GUI를 GUI 소프트웨어에서 전형적으로 발견되는 소프트웨어('명령하기'나 '열기' 같은)와 통합한다. 이 기술은 HTML에 수반한 W3C DOM 표준과 비슷한 면이 있다.