Internet Explorer 8과 안정성(Reliability)

 

 

전체에서도 시스템의 일부에서도 안정적으로 동작하는 기술을 개발하는 것이 저희들의 목표이며, 신뢰할 수 있는 컴퓨팅의 중요한 부분입니다. 고객과 파트너는 언제, 어디서나 어떤 장치에서도 신뢰할 수 있는 기술과 서비스를 기대합니다. 우리는 기술과 서비스의 안정성을 향상시키는 일에 항상 집중하고 있습니다.

Internet Explorer 의 안정성이란, 브라우저가 언제나 신속히 실행하고, 신속하게 동작하여 인터넷에 확실히 접속할 수 있고, 크래쉬나 멈추지 않고 웹 사이트를 표시하는 것을 의미합니다. 대부분의 사용자는 자신의 브라우저가 크래쉬 되어도 그 후 신속하게 복귀하여, 정상적으로 웹을 표시하기를 바랍니다. 사용자는 문제의 원인이 불완전한 애드온에 있는지, 웹 사이트가 불완전한지 대해서는 관심이 없습니다. 안정성을 향상시키기 위해 Internet Explorer 8 을 성능, 복구, 디스플레이 등 모든 면에서 강력한 브라우저가 되도록 많은 노력을 거듭했습니다. 여기에서는 특히 다음과 같은 점에 대해 설명합니다.

Loosely­coupled Internet Explorer

부드러운 브라우징 성능을 얻기 위해서 브라우저의 각 구성요소를 분리하는 도움이 되는 아키텍처상의 기능입니다.

크래쉬 자동 복구 기능

이 기능은 크래쉬가 발생하면 가능한 신속하게 원래의 브라우징 상태를 복구할 수 있도록 설계되었습니다.

Windows 오류 보고

Internet Explorer 의 안정성을 개선하기 위한 정보를 이용자가 우리에게 제공할 수 있는 방법입니다.

Loosely­coupled Internet Explorer

가장 중요한 성과의 하나가 Loosely­coupled Internet Explorer (LCIE)로 불리는 기능으로, 이 아키텍처의 특징은 브라우저의 구성요소, 특히 프레임을 탭에서 분리하는 것이 쉽습니다. LCIE 는 나중에 이야기할 자동 복구 기능을 포함한 몇가지 기능의 기초가 됩니다.

만약 Beta 1 공개 때에 읽지 않았다면, 프레임 윈도우를 분리하는 방법을 언급한 글을 먼저 읽으시기를 권장합니다. 이 기능은 대체로 Google chrome 와 동등한 것으로, 탭을 각각 다른 프로세스로서 배포하여, 탭에서 크래쉬가 발생해도 브라우저 이외 부분이 포함되지 않도록 설계되었습니다. 그림에서 보이는 것과 같이 밝은 부분이 프레임 영역에서, 회색 부분이 탭 영역이 됩니다.

IE8 Frame Highlight

Beta 1에 탑재한 이 기능을 바탕으로, 한층 더 안정성과 성능을 향상시키기 위해, Internet Explorer Beta 2 용의 LCIE 의 개발을 계속하고 있습니다.

Beta 2에서는 다음과 같은 변화가 있습니다. 

프레임 프로세스 병합

실행 속도를 향상시키기 위해, 실행시의 프로세스를 줄였습니다. 브라우저를 실행 할 때마다 2 프로세스 (프레임을 위해 1 , 탭을 위해서 1)를 실행하는 것이 아니라, 먼저 Internet Explorer 를 실행할 때 1 개의 프레임의 프로세스만을 실행합니다. 이후 실행에서는 새로운 탭 프로세스를 실행하거나 기존의 탭 프로세스를 이용하여 새로운 탭을 엽니다.

여러 세션에서 웹 브라우징에 익숙한  사용자, 예를 들어  여러개의 웹 메일에 동시에 로그인 하는 경우 등은 "-nomerge" 커멘드를 실행하여 이 기능을 무효화할 수 있습니다.

탭 프로세스 증가

동작중의 Internet Explorer  세션은 많은 경우, 3 개 또는 그 이하의 탭을 열고 있는 경우가 많습니다. Internet Explorer 8 Beta 2에서는 3개의 탭 프로세스를 효율적으로 처리할 수 있습니다. 3 이라는 숫자 값은 컴퓨터의 처리 능력에 의존하며, 보다 강력한 컴퓨터의 경우, 어느 정도는 이 숫자 값이 증가하기도 합니다. 프로세스를 증가시키면, 문제가 발생한 프로세스를 유효하게 분리할 수 있습니다. 각각의 탭이 다른 프로세스로 구동된 경우, 각각의 탭에서 표시된 웹 사이트는 완전하게 분리됩니다.

가상 탭(Virtual tab)

"hot swap" 라 불리는 탭에 관한 내부처리 기능을 추가했습니다. 지금까지 보호 모드는 프로세스 별로 동작했습니다. 예를 들면, Internet Explorer 7 인 사이트를 신뢰하는 사이트에 추가합니다. 이 사이트에 신뢰하는 사이트에 없는 다른 사이트로 링크가 있는 경우, 이 링크를 클릭하면 새로운 윈도우가 열립니다.

프레임 윈도우에서 탭을 분리하는 LCIE 를 탑재한 Internet Explorer 8 beta 1에서 이 동작을 개선했습니다. 이 분리 기능에 의해서, 지금까지와 같이 다른 윈도우를 열지 않고, 같은 윈도우안에 새로운 탭을 열 수 있습니다.

가상 탭에 의해서, 탭 별로 적절한 유효성 검사 수준의 프로세스로 변경가능하기 때문에 보호 모드와 그렇지 않은 모드를 같은 탭에서 안내할 수 있습니다. 이것은 단순한 "조작성 향상" 이며, 가상 탭은 보호 모드의 유효 / 무효를 전환 할 때의 조작을 편리하게 하는 것 이외에 보안이나 보호 모드의 동작 자체에는 전혀 영향이 없습니다.

여러 개의 프로세스와 가상 탭에 의해서 브라우저의 각 부분을 분리하는 LCIE 의 능력은 Internet Explorer 의 성능과 안정성을 향상시킵니다.

자동 복구 기능(Automatic Crash Recovery)

크래쉬 발생시, 자동 복구 기능은 가능한 한 신속하게, 원래의 브라우징 상태를 복구하도록 설계되었습니다. 문제를 특정 탭에 국소화하기 위해서 LCIE 기술이 이용됩니다. Internet Explorer 8 beta 1에서 크래쉬가 발생했을 때, 다음과 같은 도움말 풍선을 본 적이 있을지도 모릅니다.

IE8 Frame Highlight

이것이 "탭 복구 기능" 입니다. 이것에 의해 트러블은 문제가 발생한 탭으로 한정되었습니다. 브라우저expression body 는 소멸하지 않고, 신속하게 원래의 웹 사이트가 다시 표시됩니다.

이러한 현상이 발생했을 경우, 탭에 관한 각종 정보는 저장되어 복구 시에 이용됩니다. Internet Explorer beta 1에서는 다음의 정보가 유지 됩니다.

-  현재 URI

-  탐색 로그 (전/ 후 검색 기록)

-  탭 순서

-  어느 탭이 활성화되었는지

크래쉬가 발생하면 문제가 발생한 탭 프로세스는 닫혀지고, 새로운 탭 프로세스를 시동하여, 보관되었던 정보가 복원됩니다. 여러 웹 사이트에서 이 기능은 유효하게 동작하지만, 폼을 이용하고 있는 사이트나 로그온이 필요한 사이트의 경우, 정상적으로 동작하지 않을 수도 있습니다.

Internet Explorer beta 2에서는 다음과 같은 점에서 크게 개선되었습니다. 

세션 쿠키는 웹 사이트가 사용자를 인증하기 위해서 이용됩니다. 세션 쿠키는 일시적인 쿠키로, 그 수명은 세션중에서만 입니다. 웹 사이트에 로그온하면, 일반적으로는 로그온 안에 사용자를 식별하기 위해 유일 토큰을 포함한 세션 쿠키가 제공됩니다. 웹 사이트 내를 이동하는 경우, Internet Explorer 는 이 세션 쿠키를 송신하고, 웹 사이트는 토큰을 조사하여 사용자가 인증되었는지 판정할 수 있습니다. 연속적으로 이용되는 쿠키와는 달리, 세션 쿠키는 하드 디스크에는 기록되지 않습니다.

Internet Explorer 8 beta 2 는 세션 쿠키의 복구를 가능하게 하지만, 하드 디스크에 기록하는 것은 아닙니다. Internet Explorer 8 beta 2 는 세션 쿠키의 복사를 프레임 프로세스에 저장합니다. 탭에 크래쉬가 발생했을 경우, 프레임 프로세스에서 탭 프로세스에 복원에 필요한 정보 (예를 들면 Web 메일, 블로그, SNS 등)가 자동적으로 다시 써집니다. 

세션 쿠키의 복원은 탭의 크래쉬가 발생했을 때에 만 행해지는 점에 주의해야 합니다. 대부분의 경우 크래쉬의 영향은 탭에만 머문다고 생각하지만, 만약 브라우저 전체가 크래쉬 했을 경우, 세션 쿠키는 없어집니다. 이러한 현상은 탭의 분리 기능에 대응하지 않는 애드온에 기인할 가능성이 높다고 생각할 수 있습니다.

폼 데이터(Form data)

Internet Explorer 8 beta 2에서는 폼에 입력한 데이터 복원도 가능합니다.  전자 메일이나 블로그의 글이나 댓글과 같이 HTML 폼에 입력한 정보도 복구할 수 있습니다.

LCIE 에 의한 탭의 분리 기능에 의해서, 자동 복구 기능은 데이터를 재입력하지 않아도 크래쉬 직전 상태를 복구할 수 있습니다. LCIE 와 자동 복구 기능 연동은 매우 혁신적으로 매우 훌륭한 크래쉬에서의 복구 수단을 제공합니다.

Windows 오류 보고 (Watson)

크래쉬나 멈추는 경우를 만났을 때 ,"Microsoft 에 정보를 송신 합니다" 라는 선택사항이 봤던 적이 있을지도 모릅니다. 보내진 정보를 우리가 어떻게 이용하고 있는지에 대한 의문을 가지고 있었을지도 모릅니다.

단적으로 말하면, 우리는 보내진 정보를 매일 확인하고 있습니다. 이러한 데이터는 매우 중요한 것이기 위해, 진지하게 보고서를 작성합니다. 그 뿐만 아니라, 현재 전세계로 어떠한 문제가 발생하는지 알 수 있어 그 원인을 한층 더 특정할 수도 있습니다. 실제로 오류 보고에 의해서 수정되는 사례도 있습니다.

Internet Explorer 가 크래쉬 또는 멈춰서, Windows 오류 보고의 송신을 선택했을 경우, 현상 발생시에 문제의 프로그램이 어떠한 상태에 있었는가 하는 정보가 모아집니다. Internet Explorer 가 크래쉬 했을 때에 어떠한 동작을 하고 있었는지, 어떠한 애드온이 로드되어 있었는지를 확인할 수 있습니다. 확인 담당의 프로그래머를 위해 메모리 덤프와 호출 스택도 송신합니다. 여러분이 Windows 용 응용 프로그램이나 Internet Explorer 용의 애드온을 생성한 프로그래머라면, 왓슨 데이터 취득하여 (영어) 여러분의 응용 프로그램의 품질을 개선할 수도 있습니다.

Windows 오류 보고에서는 유사한 문제를 일반적으로 같은 근본 원인을 가지는 현상으로서 "buckets" 에 정리합니다. Internet Explorer 의 프로그램코드에 기인하여 자주 문제가 발생한 경우, 코드를 수정하고 있습니다. Internet Explorer 8에서는 우리는 왓슨에 의해서 송신되는 모든 정보 가운데, 상위 50 %  (Internet Explorer 7에서 계속 발생하는 문제 포함)를 집중적으로 수정했습니다.

Microsoft 는 고객이 오류 리포트를 송신할 때의 프라이버시 보호에 대해서 전력을 기울이고 있습니다. 오류 발생시에 생성되는 보고용 데이터는 문제 해결에 필요한 최소한으로 합니다. 오류 리포트에는 어떠한 개인정보도 포함되지 않고, Microsoft 에 정보가 보내지기 전에 사용자 확인이 요구됩니다. Microsoft 는 오류 리포트의 송신자를 특정하지 않습니다 (송신자가 과거에 유사한 사례가 있는지를 확인하는 것을 선택했을 경우를 제외합니다). 비록, 문제 해결을 위해 보다 세부 사항정보가 필요한 경우에도 Microsoft 의 개발자는 고객을 확인할 수 없습니다.

Internet Explorer 8 beta 2 준비

LCIE 와 자동 복구 기능, 여러 가지 문제 수정하여 Internet Explorer 8 beta 2 는 충분히 신뢰할 수 있는 브라우저입니다. Internet Explorer 8 beta 2 가 공개되면 이 점에 꼭 주목해 주십시오.

* 이 글은 Internet Explorer 개발 팀 블로그 (영어)의 번역 문서입니다. 이 글에 포함된 정보는 Internet Explorer 개발 팀 블로그 (영어)가 생성된 시점의 내용으로, 제품의 사양이나 기능이 보장되는 것은 아닙니다. 이 글에 포함된 정보의 이용은 사용 조건을 참조해 주세요. 그리고, 이 글의 게재 시점에서 Internet Explorer 개발 팀 블로그 (영어)의 내용이 변경될 수 도 있습니다. 최신 정보는 Internet Explorer 개발 팀 블로그 (영어)를 참조하십시오. 

 

영문 원본 :IE8 and Reliability

업데이트 일: 2008 년 7 월 28 일