개요편집이의 제기
게코(Gecko)는 모질라 재단이 개발한 오픈 소스 웹 브라우저 엔진으로, HTML, CSS, JavaScript 등을 해석하여 화면에 렌더링하는 레이아웃 엔진이다. 파이어폭스, 썬더버드 등 모질라 계열 애플리케이션에서 핵심 엔진으로 사용되며, 크로스플랫폼 지원을 통해 윈도우, macOS, 리눅스, 안드로이드 등 다양한 운영체제에서 동작한다. 게코는 웹 표준 준수를 목표로 하며, 오픈 소스 라이선스 하에 자유롭게 사용 및 수정이 가능하다. [1][2][3][4]
역사편집이의 제기
게코의 개발은 1997년 넷스케이프 커뮤니케이션스가 DigitalStyle을 인수하면서 시작되었다. 당시 넷스케이프 내비게이터에 사용되던 기존 레이아웃 엔진은 성능이 느리고 W3C 표준 준수도가 낮아 개선이 필요했다. 이에 넷스케이프는 기존 엔진과 병행하여 새로운 레이아웃 엔진을 개발했으며, inicialmente Raptor라는 이름으로 개발되다가 상표권 문제로 NGLayout(Next Generation Layout)으로 이름이 바뀌었다. 1998년 모질라 프로젝트가 출범하면서 이 엔진은 오픈 소스로 공개되었고, 이후 넷스케이프는 이름을 게코(Gecko)로 변경했다. [2][3]
1998년 10월 넷스케이프는 다음 버전의 브라우저에 게코를 탑재할 것이라고 발표했으며, 처음으로 게코를 사용한 넷스케이프 6은 2000년 11월에 출시되었다. 넷스케이프 5라는 버전은 존재하지 않았다. 게코 탑재 후에도 기존 엔진을 사용하는 넷스케이프 버전이 몇 개 더 출시되었다. [2]
gameco의 채택은 넷스케이프를 넘어 확장되었다. 아메리카 온라인(AOL)은 게코를 컴퓨서브 7.0과 맥 OS X용 AOL에 탑재했으나, 윈도우용 AOL에서는 베타판을 제외하고는 채택하지 않았다. 2003년 7월 15일 AOL은 게코 개발에서 손을 뗐고, 같은 날 설립된 모질라 재단이 게코의 주요 유지보수 주체가 되었다. [2][3]
2016년 모질라는 Quantum 프로젝트를 발표하며, 실험적 Servo 프로젝트에서의 성과를 게코에 점진적으로 통합하기 시작했다. 이 프로젝트는 파이어폭스의 성능과 현대 웹 표준 지원을 강화하는 것을 목표로 했으며, 파이어폭스 57(2017년 11월 release)이 첫 번째 주요 Quantum 기반 버전으로, CSS 및 GPU 렌더링 성능 향상을 포함한 Servo의 컴포넌트가 최초로 활성화되었다. [3]
2018년 9월 모질라는 GeckoViewを発表하며, 안드로이드 플랫폼에서 게코를 재사용 가능한 라이브러리 형태로 제공하여 파이어폭스 포커스 7.0부터 적용하기 시작했다. 이후 파이어폭스 리얼리티, 파이어폭스 프리뷰, 파이어폭스 안드로이드 79(파이어폭스 데이라이트) 등에 GeckoView가 탑재되었다. [3]
특징과 기능편집이의 제기
게코는 C++, 자바스크립트, 그리고 2016년부터 러스트를 사용하여 개발되었다. 이는 메모리 안전성과 병렬 처리 성능 향상을 위해 Servo에서 영감을 얻은 결과이다. 게코는 모질라 공공 라이선스(MPL) 2.0 하에 배포되며, 필요에 따라 GPL 및 LGPL 라이선스도 적용된다. [1]
게코는 HTML 4.0, XHTML 1.1, XML 1.0, CSS 레벨 1(레벨 2 및 3 부분 지원), 자바스크립트 1.8(ECMAScript), DOM 레벨 1 및 2(레벨 3 부분 지원), XSLT, XPath, MathML, SVG 1.1(부분 지원), RDF, XForms(확장 기능 통해), WebGL(1.9.3 alpha1 이후), Direct2D(1.9.3 alpha3 이후) 등을 지원한다. 또한 DOCTYPE 전환을 통해 표준 모드와 호환 모드(quirks mode)를 지원하여 구형 넷스케이프 및 인터넷 익스플로러용 문서도 어느 정도 호환한다. marquee 및 document.all과 같은 일부 IE 전용 기능도 제한적으로 지원한다. [2][3]
게코는 네트워킹 스택, 그래픽스 스택, 레이아웃 엔진, JavaScript 가상 머신(SpiderMonkey), 포팅 레이어 등을 포함하여 애플리케이션이 다양한 플랫폼에서 일관되게 작동하도록 한다. 특히 파이어폭스 OS의 모든 앱이 웹 앱이므로, 게코는 해당 플랫폼의 애플리케이션 런타임으로도 사용된다. [4]
Quantum 프로젝트를 통해 게코는 Servo에서 영감을 받은 다수의 성능 개선을 통합했다. 이는 CSS 병렬 처리(WebRender 기반 retained mode 렌더링), DOM의 협동 스레드 스케줄링(Quantum DOM), 네트워크 레이어(Necko)의 메인 스레드 오프로드, 컴포지터의 프로세스 분리 등으로 구성된다. 이러한 개선은 파이어폭스 53부터 순차적으로 적용되었으며, 파이어폭스 57에서 주요 컴포넌트가 활성화되었다. [3]
Azure 프로젝트는 모질라가 개발한 저수준 그래픽스 추상화 API로, 카이로(Cairo)를 대체하여 Direct2D 호환성 향상과 상태 상호운용성 최적화를 목표로 한다. 파이어폭스는 2012년부터 Azure를 사용하기 시작했으며, 이 이름은 초기 넷스케이프 창립자 제임스 H. 클라크와 실리콘 그래픽스에서의 그의 작업에서 영감을 얻었다. [3]
평가편집이의 제기
게코는 초기 개발 단계에서 성능 저하와 표준 미준수로 비판받았으나, 2000년대 중반부터 모질라의 지속적인 개선으로 표준 준수도와 성능이 향상되었다. 특히 2008년경에는 과거의 엔진 블로트 문제를 상당 부분 해결하여 성능이 크게 개선된 바 있다. [3]
그러나 애플은 2001년 게코 대신 KHTML을 포크하여 웹킷을 만들었는데, 이는 게코의 기술적 및 관리적 문제로 인한 소프트웨어 블로트 때문이었다. 이후 모질라는 Quantum 프로젝트를 통해 이와 같은 문제를 해결하려 했으며, Servo에서의 실험적 결과를 점진적으로 통합하여 경량화와 병렬 처리 성능을 높였다. [3]
게코는 오픈 소스 라이선스와 크로스플랫폼 지원으로 인해 파이어폭스 외에도 시몽키, 썬더버드, 엔뷰, 카미노, K-멜레온, 넷스케이프 9판, 에피파니(2.26 이전), 송버드, 베오넥스 커뮤니케이터, 갈레온, 카제하카세, 스키프스톤 등 다양한 애플리케이션에서 사용되었다. [2]
과거에 게코를 사용했으나 이후 다른 엔진으로 전환한 제품으로는 파이어문, K-멜레온(Goanna로 전환), 에피파니(GNOME Web, WebKitGTK), GNOME DevHelp(WebKitGTK), 플록, 게일온, 카미노, 미니모, 비원스 커뮤니케이터, 카제하카세, 송버드, 선버드, 마이크로B, 나йтингейл, 인스턴트버드, 콘커러, 클래시lla, 텐포어폭스, 리눅스용 피카사 등이 있다. 또한 OLPC XO-1에서 사용되던 슈가 인터페이스는 2009년까지 게코를 사용했으나 이후 웹킷으로 전환했다. [3]
현재 게코는 파이어폭스, 썬더버드, 파이어폭스 안드로이드(GeckoView 기반), 파이어폭스 포커스, 파이어폭스 리얼리티 등에서 활발히 개발 및 사용되며, 모질라 재단과 모질라 코퍼레이션, 자원봉사자들이 개발에 참여하고 있다. [3]
이 문서는 GGWiki AI가 공개 자료(아래 출처)를 조사해 새로 쓴 초안입니다. 틀린 내용은 편집하거나 이의 제기로 알려 주세요.
