크로스 브라우저 호환성

크로스 브라우저 호환성(Cross-browser compatibility)은 웹사이트나 웹 애플리케이션이 다양한 웹 브라우저에서 작동하고, 특정 브라우저 기능이 없거나 부족할 때 적절하게 성능을 유지(degrade gracefully)하는 능력을 의미한다.

 역사 

 배경 
크로스 브라우저의 역사는 1990년대 후반 넷스케이프 내비게이터와 마이크로소프트 인터넷 익스플로러 사이의 "브라우저 전쟁" 및 웹 브라우저에 처음으로 구현된 스크립트 언어인 자바스크립트와 J스크립트의 역사와 밀접하게 관련되어 있다. 당시 넷스케이프 내비게이터가 가장 널리 사용되는 웹 브라우저였으며, 마이크로소프트는 모자이크의 라이선스를 받아 인터넷 익스플로러 1.0을 만들었다. 이후 몇 년 동안 넷스케이프 내비게이터와 인터넷 익스플로러의 새로운 버전이 빠른 속도로 출시되었다. 웹 브라우저 시장의 치열한 경쟁으로 인해 이러한 브라우저의 개발은 매우 빠르게 진행되었으며, 업체 간의 조정 없이 새로운 기능들이 추가되었다. 새로운 기능의 도입이 종종 버그 수정보다 우선시되었고, 그 결과 브라우저의 불안정성, 변덕스러운 웹 표준 준수, 빈번한 충돌 및 많은 보안 취약점이 발생했다.

 W3C의 창설과 웹 표준화 

월드 와이드 웹의 개방형 표준을 장려하기 위해 1994년에 설립된 월드 와이드 웹 컨소시엄(W3C)은 넷스케이프와 마이크로소프트를 비롯한 다른 기업들을 모아 ECMA스크립트라고 불리는 브라우저 스크립트 언어 표준을 개발했다. 표준의 첫 번째 버전은 1997년에 발표되었다. 이후 출시된 자바스크립트와 J스크립트는 더 높은 크로스 브라우저 호환성을 위해 ECMA스크립트 표준을 구현하게 된다. ECMA스크립트 표준화 이후, W3C는 HTML, XHTML 및 XML 문서의 객체를 표현하고 상호작용하는 방법인 문서 객체 모델(DOM)의 표준화 작업을 시작했다. DOM 레벨 0과 DOM 레벨 1은 1996년과 1997년에 도입되었다. 브라우저들은 이들에 대해 제한적인 지원만을 구현했기 때문에, 결과적으로 인터넷 익스플로러 4.x 및 넷스케이프 4.x와 같은 비표준 브라우저들이 2000년 말까지도 여전히 널리 사용되었다. DOM 표준화는 2000년에 발표된 DOM 레벨 2 도입 이후 본격화되었다. 여기에는 "getElementById" 함수뿐만 아니라 이벤트 모델, XML 네임스페이스 및 CSS 지원이 도입되었다. 2004년 4월에 발표된 현재의 DOM 사양인 DOM 레벨 3에는 XPath 및 키보드 이벤트 처리 지원과 문서를 XML로 직렬화하기 위한 인터페이스가 추가되었다. 2005년까지 W3C DOM의 상당 부분은 마이크로소프트 인터넷 익스플로러, 오페라, 사파리 및 게코 기반 브라우저(파이어폭스, 시몽키, 카미노)를 포함하여 ECMA스크립트가 활성화된 일반적인 브라우저들에서 잘 지원되었다.

 21세기 

21세기 초반에는 브라우저 스니핑과 같은 관행이 크로스 브라우저 스크립팅에 부적합한 것으로 간주되었다. 브라우저 스니핑에 의존하거나, 당시에는 거의 예외 없이 웹 브라우저였던 런타임 환경에 대해 잘못된 가정을 하는 애플리케이션을 설명하기 위해 "멀티 브라우저"(multi-browser)라는 용어가 만들어졌다. "크로스 브라우저"라는 용어는 이 시기에 현재 받아들여지는 의미를 갖게 되었는데, 한때 인터넷 익스플로러 4와 넷스케이프 내비게이터 4에서는 작동했지만 현대의 브라우저에서는 사용할 수 없게 된 애플리케이션을 더 이상 "크로스 브라우저"라고 부를 수 없게 되었기 때문이다. 구어적으로는 이러한 멀티 브라우저 애플리케이션뿐만 아니라 프레임워크와 라이브러리도 여전히 크로스 브라우저라고 불린다.

 각주 

분류:웹 브라우저
분류:상호운용성