호환성 모드(Compatibility mode)는 오래되었거나 호환되지 않는 소프트웨어나 파일이 컴퓨터의 최신 하드웨어나 소프트웨어와 계속 호환되도록 하기 위해 소프트웨어가 이전 버전의 소프트웨어를 에뮬레이션하거나 다른 운영 체제를 모방하는 소프트웨어 메커니즘이다. 모드를 사용하는 소프트웨어의 예로는 운영 체제와 인터넷 익스플로러가 있다.

운영체제 편집

운영체제의 호환성 모드는 이전 소프트웨어가 컴퓨터의 최신 하드웨어 또는 소프트웨어와 계속 호환되도록 하기 위해 컴퓨터 운영 체제가 이전 프로세서, 운영 체제 및 하드웨어 플랫폼을 에뮬레이션하는 소프트웨어 메커니즘이다.

이는 에뮬레이터가 일반적으로 이전 시스템의 함수 호출을 호스트 시스템이 이해할 수 있는 호출로 변환하는 것이 아니라 호스트 시스템에 가상 하드웨어 아키텍처를 생성한다는 점에서 본격적인 에뮬레이터와 다르다.

예를 들어 맥 OS X의 클래식 모드와 마이크로소프트 윈도우의 호환 모드가 있으며, 두 모드 모두 이전 버전의 운영 체제용으로 설계된 응용 프로그램을 실행할 수 있다. 다른 예로는 리눅스/OS X에서 윈도우 프로그램을 실행하는 와인과 다양한 유닉스 계열 시스템에서 .NET 프로그램을 실행하는 모노(Mono)가 있다.

인터넷 익스플로러 편집

"호환성 보기"는 인터넷 익스플로러 버전 8 이상에서 웹 브라우저의 호환성 모드 기능이다. 활성화되면 호환성 보기는 IE7에서 페이지를 보는 것처럼 웹 페이지를 쿼크(Quirks) 모드로 표시하도록 한다. 호환성 보기가 활성화되지 않은 경우 IE는 기본 모드에서 실행되고 있다고 한다. IE11에서 사용자는 기어 아이콘을 클릭하고 호환성 보기 설정을 클릭하여 웹 사이트에 대한 호환성 모드를 켤 수 있다.

IE8+ 편집

인터넷 익스플로러 8은 인터넷 익스플로러 7보다 W3C 설명 웹 표준을 더 엄격하게 준수한다고 마이크로소프트에서 홍보했다. 결과적으로 이전의 모든 IE 버전에서와 마찬가지로 이전 버전의 동작으로 코딩된 웹 페이지의 일부 비율이 IE8에서 중단된다. . 이는 IE6의 버그를 수정하면서 비준수 문제를 해결하기 위해 IE6 관련 해킹을 사용하는 페이지를 중단한 IE7의 상황이 반복된 것이다. 이는 특히 업데이트할 수 없는 오프라인 HTML 문서(예: CD-ROM 또는 DVD-ROM과 같은 읽기 전용 매체에 저장됨)에서 문제가 되었다.

이러한 상황을 피하기 위해 IE8은 메타 요소 또는 HTTP 헤더에서 X-UA-Compatible 선언을 사용하여 페이지를 브라우저의 특정 버전으로 작성할 수 있는 버전 타겟팅 형식을 구현했다.

이전 버전과의 호환성을 유지하기 위해 사이트는 다음을 사용하여 브라우저에서 호환성 모드를 트리거하는 웹 페이지에 특별히 생성된 메타 요소를 삽입하여 IE7과 유사한 콘텐츠 처리를 선택할 수 있다.

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

페이지가 코딩된 것보다 최신 버전의 브라우저는 이전 버전의 동작을 에뮬레이션하므로 페이지에서 브라우저의 동작에 대해 가정한 내용이 적용된다.

마이크로소프트는 IE7에서 표준 모드를 트리거하는 문서 유형이 있는 페이지가 기본적으로 IE8 및 향후 버전에서 "표준 모드"(현재 "엄격 모드"라고 함)라고 하는 IE7과 유사한 동작을 트리거할 것을 제안했다. 즉. IE8의 새로운 기능은 마이크로소프트가 "IE8 표준 모드"(현재는 "표준 모드"라고 함)라고 부르는 기능을 트리거할 수 있다. IE7에서 쿼크 모드를 실행하는 독타입(Doctype)은 IE8에서도 계속 작동한다.

아스 테크니카(Ars Technica)의 피터 브라이트(Peter Bright)는 특정 렌더링 모드를 선택하기 위해 메타 태그를 사용한다는 아이디어가 근본적으로 표준 기반 개발의 요점을 놓치고 있지만 이 문제를 웹 개발의 이상주의 대 실용주의 중 하나로 자리매김했다고 주장했다. 유지관리와 더불어 "향후 브라우저 버전에서 계속 제대로 작동하도록 웹 개발자에게 사이트를 업데이트하도록 요구하는 것은 아마도 너무 많은 요청일 것이다."

IE 8 베타 1의 결과는 "Quirks", "Strict" 및 "Standard"의 세 가지 모드를 렌더링할 수 있다는 것이다. 이전 DOCTYPE이 있거나 DOCTYPE이 없는 경우 IE는 이를 IE5처럼 렌더링한다(쿼크 모드). 특수한 메타 요소나 해당 HTTP 헤더가 웹 페이지에 포함되면 IE8은 IE7처럼 해당 페이지를 렌더링한다(엄격 모드). 그렇지 않으면 IE8은 자체 엔진(표준 모드)으로 페이지를 렌더링한다. 사용자는 몇 번의 클릭만으로 세 가지 모드 사이를 전환할 수 있다. 인터넷 익스플로러 8 베타 1이 출시되면서 많은 웹 사이트가 이 새로운 표준 모드에서 작동하지 않는 것으로 나타났다.

마이크로소프트는 IE8의 표준 모드에서 문제가 있는 것으로 보고된 웹 사이트 목록(호환성 보기 목록)을 유지 관리한다. 사용자가 이 목록을 활성화하면 IE8은 호환성 보기 모드를 사용하여 목록의 웹사이트를 렌더링한다. 새로 보고된 문제 웹사이트를 추가하고 소유자가 제거를 요청한 웹사이트를 제거하기 위해 목록이 업데이트되는 경우도 있다. 또한 인터넷 익스플로러 팀은 목록에 있는 웹 사이트의 호환성 문제를 테스트하고 발견되지 않는 웹 사이트를 제거한다.

같이 보기 편집