지난 1월 MS는 이올라스 테크놀로지(Eolas Technologies)와의 특허 침해 소송과 관련, 인터넷 익스플로러(이하 IE)를 부분 수정해 설계를 변경한다는 사실을 국내에 공표했다. 이올라스는 인터넷 익스플로러를 포함한 웹 브라우저에서 동작하는 액티브 X 컨트롤 실행 방식이 자신들이 보유한 특허를 침해했다고 주장하면서 MS를 제소했고, 작년 8월 법원이 이올라스의 손을 들어주면서 약 5억 달러를 배상하라고 판결했다. 이에 따라 MS는 항소를 제기하는 한편, 이올라스가 주장하는 특허권 침해를 우회하기 위해 IE 설계를 변경하기로 결정한 것이다.웹 페이지 내에서 임베딩된 개체 표시 문제이올라스가 가지고 있는 특허는 웹 페이지 내에서 임베딩된 개체를 표시하고 상호작용하기 위해 외부 응용 프로그램을 자동으로 호출하는 방법에 관한 것이다. 쉽게 말하자면 웹 페이지에서 'object', 'applet', 'embed' 태그를 사용해 임베딩된 개체를 보여주는 것이 문제가 된다.이 문제가 심각한 이유 중 하나는 'object'나 'applet' 태그의 경우, IE에만 국한된 것이 아니라 W3C DOM 1.0에 정의된 표준이라는 것이다. 또한 이 특허를 인정하게 되면 웹 페이지에서 임베딩된 태그를 외부 응용 프로그램과 연결하는 것, 즉 바이너리 코드를 확장하는 것이 불가능해짐에 따라 앞으로 웹 관련 기술들의 발전에 지장을 줄 수 있게 된다. 따라서 이 문제는 단순히 IE뿐만 아니라 모질라, 파이어폭스와 같은 다른 브라우저 역시 영향을 받는 것이다. 이올라스가 최종적으로 승소할 경우, MS뿐만 아니라 다른 회사들에게 차례로 소송을 제기할 가능성이 높다.이러한 이유로 웹의 창시자이자 웹 표준화 기구인 W3C의 의장을 맡고 있는 팀 버너스 리(Timothy John Berners-Lee) 원래 친 MS 주의자가 아니었음에도 불구하고 미 특허청에 서한을 보내 웹의 발전을 저해할지 모르는 이 특허의 심각한 문제점을 제기하고, MS에 소송을 제기한 이올라스를 비판하고 있다. W3C 역시 이 특허가 기존에 수립된 웹 표준에 심각한 영향을 주며, 파급 효과가 광범위하기 때문에 이 특허를 무효화해야 한다는 의견을 내고 있다.IE 설계 변경에 따른 영향IE 설계 변경에 따라서 달라지는 것은 무엇일까? 웹 페이지 내에서 'object', 'applet', 'embed' 태그에 의해 로드된 액티브 X, 자바 애플릿, 멀티미디어 파일의 경우, 사용자가 이를 클릭해서 명시적으로 활성화(Activation)시키기 전까지는 임베딩된 개체에 사용자가 직접 상호작용(Interaction)하는 것이 불가능하며, 상호작용과 관련된 DHTML 이벤트도 사용이 불가능하다는 것이다.이번 패치의 영향을 받는 대상은 웹 페이지 내에 'object', 'applet', 'embed' 태그를 사용해서 지정되고, 눈에 보이는 UI를 가지며, 사용자가 마우스나 키보드 입력을 통해 이벤트를 처리하는 상호작용 컨트롤에만 해당된다. 상호작용 컨트롤의 예는 미디어 플레이어, 애플의 퀵타임 플레이어, 매크로미디어의 플래시 등이 있다. UI를 가지지 않는 비상호작용 컨트롤이나 외부 스크립트를 통해 로딩된 상호작용 컨트롤에는 아무런 영향이 없다. 인터넷 뱅킹 시스템의 경우, UI가 없는 키 로깅 방지 컨트롤은 영향이 없으며, 공인 인증서도 UI가 웹 페이지 내에 임베딩된 것이 아니라 별도의 다이얼로그 창으로 나오기 때문에 영향을 받지 않는다.아래 그림은 웹 페이지에 'object' 태그나 'embed' 태그를 사용해서 미디어 플레이어 액티브 X를 구동해 동영상 콘텐츠를 재생하고 있는 모습이다. 활성화되지 않은 상호작용 컨트롤은 마우스나 키보드 이벤트 등의 사용자 입력에 반응하지 않는다. 마우스 커서를 올려놓았을 때 컨트롤 주위에 점선 테두리가 나타나며, 그림과 같은 풍선 도움말이 나타난다.컨트롤을 활성화하려면 마우스로 해당 컨트롤을 클릭하거나 탭 키로 포커스를 이동한 후 스페이스 바나 엔터 키를 누르면 된다. F5 키를 눌러서 페이지를 갱신했을 경우 컨트롤이 다시 비활성화되며, 페이지 내에 컨트롤이 여러 개 있는 경우에는 각각을 활성화해야 한다는 것에 주의해야 한다. 혼동해서는 안 될 것은 상호작용이 불가능하다는 것이지, 임베딩한 개체가 아예 로드되지도 않고 작동하지도 않는다는 것은 아니다. 즉, 위의 예에서 동영상 콘텐츠 자체가 아예 재생되지 않는 것은 아니다. 다만, 동영상을 멈추기 위해서 정지 버튼을 누르려면(즉 상호작용을 하려면) 컨트롤을 클릭해서 활성화시켜야 한다는 것이다.국내 웹사이트의 파급 효과위에서 예로 든 멀티미디어 콘텐츠(동영상, 음악) 외에 국내 사이트에서 이 패치에 대해 영향을 받는 것은 어떤 것이 있을지 몇 가지 예를 들어보자.요즘 몇몇 사이트들에서는 사진이나 그림을 업로드하기 전에 이미지를 편집할 수 있도록, 이미지 툴 액티브 X를 제공하는 곳이 있다. 이러한 이미지 툴 컨트롤을 사용하려면, 컨트롤을 한 번 클릭해서 활성화시켜야 한다. 또한 업무용 시스템을 보면 차트, 그리드와 같은 요소를 서드파티 액티브 X 컨트롤로 사용하는 경우가 많다. 이 경우 상호작용을 하려면 화면 내의 컨트롤을 각각 활성화시켜야 한다. 액티브 X 컨트롤도 문제지만, 필자가 생각하기에 국내에서 가장 광범위하게 영향을 받을 것이라고 생각되는 것은 바로 플래시다. 국내 사이트들은 메뉴 등의 네비게이션 UI, 광고, 플래시 게임, 플래시 축하카드 등 플래시에 대한 의존도가 매우 높다. 거의 모든 UI를 플래시로 도배한 모 사이트의 경우, 화면의 대다수가 비활성화되는 현상이 발생했다(하다못해 필자 회사 홈페이지도 메뉴가 플래시로 돼 있다). 마우스를 올렸을 때 팝업 형태로 메뉴를 보여주는데, 비활성화된 상태에서는 메뉴가 전혀 나타나지 않는다. 사실 활성화를 위해 클릭 한 번 하는 것이 별로 힘든 일은 아니지만, 잘 모르는 사용자의 경우에는 상당히 당황스러울 수 있다는 생각이 든다.이러한 사용자들의 혼란을 방지하려면 'object', 'applet', 'embed' 태그를 사용하는 페이지의 경우 수정이 불가피하다. 이를 위해 MS는 상호작용 컨트롤이 이전과 동일하게 즉시 활성화되게 하고 싶으면 외부 스크립트에 의해 상호작용 컨트롤을 로드하라고 권하고 있다.예를 들어 다음과 같이 'embed' 태그를 사용하는 페이지가 있다고 가정하자.
MyPage.html을 로드하면 해당 컨트롤은 비활성화된 상태가 된다. 이를 방지하려면, 다음과 같이 'embed' 태그를 write 해주는 코드를 외부 스크립트 파일(embed.js)로 작성해서 빼고, MyPage.html에서는 이 스크립트 파일을 지정하면 된다. 이렇게 하면 이전과 동일하게 이 컨트롤은 로드 후 즉시 활성화된다.