IE8 특집 – 뭐가 바뀌었나?

지난 Mix 08에서 출시한 제품 중 가장 많이 화두가 된 Internet Explorer 8에 대한 특집입니다. 하루 전까지만 해도 정보가 제공되지 않아서 엉뚱한 세션을 듣기로 했다가 행사 당일 세션 정보가 나올 정도로 보안이 철저했던것 같습니다. Mix08에서 IE8에 대한 세션은 크게 네 가지 입니다.

IE8 개괄적인 소개, CSS 표준 준수 사항, DOM 및 자바 스크립트 변경 사항 그리고 부가 기능인 Web Slices와 Activities에 대한 것으로 크게 나누어 집니다. 이 발표 내용은 프리젠테이션과 함께 Mix 08 사이트에서 제공하고 있습니다. 영어가 불편하지 않으신 분은 아래를 참고하시면 되겠습니다.

아울러 이와 관련된 세부 문서는 IE8 기술 백서페이지에 이미 올려져 있습니다. 완벽한 MS의 기술 마케팅과 문서화는 따로 말할 필요가 없을 정도니까 참고하시기 바랍니다. 이 글은 각 세부 사항에 대한 간단한 정리와 평가를 위주로 이야기 하도록 하겠습니다.

IE8, 호환성과 보안이 핵심!
IE8의 총책임자의 Chris Wilson의 강의에서 키노트에서 언급한 8가지 변화를 좀 더 자세하게 설명했습니다. 그중에서도 크게 두 가지 측면에서 강조했습니다.

첫번째로 상호 호환성입니다. 옛날 문서의 하위 호환성은 여전히 지켜지면서도 CSS 2.1을 완전히 지원함으로서 IE 고유의 레이아웃이었던 hasLayout의 문제가 끝났다고 봐야 하겠습니다. Microsoft를 돕고 있는 웹 표준 전문가인 Molly Holzschlag가 이로 인해 개발자들이 IE 때문에 속을 끊이는 일이 없을 거라고 했지만. 글쎄요. IE6이 그 생명력을 유지하는 한… IE8나오면 이제 정말 웹 브라우저 업그레이드 캠페인이라도 해야 할 것 같습니다.

두번째로 보안을 들었는데, 특히 ActiveX 정책을 바꾸는 것을 시사했습니다. IE7 처럼 관리자의 승인 하에 ActiveX를 설치하는 것이 아니라 특정 사용자 혹은 특정 웹사이트를 선택해 설치할 수 있도록 하는 것입니다. 예를 들어, 특정 ActiveX는 특정 웹사이트 혹은 특정 사용자에게만 실행하도록 변경하는 것입니다. (동일한 Active X라도 웹 사이트 마다 따로 설치 혹은 실행하도록 하겠다는 것인데 스파이웨어 차단에는 효과가 있겠지만, 한국에서는 ActiveX 개발사들의 희소식(?)이 될 수도 있겠네요.

또 하나는 XMLHttpRequest가 외부 웹 사이트의 정보를 아무 제약없이 가지고 갈 수 Cross Scripting 기능을 추가하는 최근 상황에 우려를 표시하고, 데이터 사용 허용 여부를 웹 사이트 관리자가 설정할 수 있도록 하는 Cross Domain Request(일명, XDR)라는 기능을 새로 추가했습니다. 보안을 좀 더 신경을 쓰긴 했지만 기존의 XMLHttpRequest 표준 진행과 어떻게 연계할 것인지가 의문이었습니다.

눈물겨운 CSS 표준 노력
남들이 짜놓은 레거시 코드를 분석하고 걷어내는 작업을 한다는 것은 쉬운 일이 아닙니다. 10년전 코드를 다시 살펴 보고 아직 구현이 많이 진행되지도 않은 프로그램을 만드는 일도 마찬가지죠.

IE8의 경우 CSS2.1을 제대로 구현하기 위해 W3C에 의견을 구하거나 다른 브라우저와 비교도 하고 직접 부족한 테스트 케이스를 직접 만들어 W3C에 제공하기도 했다고 합니다. (실제로 W3C CSS 표준 문서에 구현에 대해 애매한 표현들이 많이 있습니다.)

어쨌든 이를 통해 IE6(옛날), IE7(거의 표준), IE8(완벽한 표준)으로 렌더링 모드를 구별하였고, 앞으로는 새버전에서는 IE8 엔진을 더욱 발전 시키는 방향으로 가지 않을까 싶습니다. 과거 웹 문서의 버전 타겟팅을 위해서는 이미 알려진 대로 meta 태그와 compatibility mode 값 변경을 이용할 수 있습니다. 특히 기존 IE7 레이아웃에 맞추어진 웹 사이트에 대표적인 문제인 브라우저 버전에 따른 스니핑과 코멘트 블럭을 바꾸어야 할 것 같습니다. (가급적 버전 스니핑이 아니라 기능 스니핑을 사용해야 겠죠?)

그 밖에 많은 웹 표준 버그들을 수정하였습니다. 대표적으로 HTML 버그들.

DOM 버그들.

고급 웹 애플리케이션 개발 가능해지나?
이제 DOM과 자바스크립트 등 웹 애플리케이션 부분을 알아보겠습니다. 가장 좋아진 것은 역시 ‘성능’이네요. 과거 IE7 엔진에서는 script 태그를 만나면 파싱을 중단하고 스크립트를 다운로드 했다고 하네요. IE8에서는 파싱과 병렬적으로 6개 파일을 동시에 연결할 수 있다고 합니다. 또한 DOM 객체를 찾는 속도 개선, 자바스크립트 연산자 이용 개선 등을 진행하였습니다.

개발 생산성 향상을 위해 개발자용 디버거를 기본으로 설치할 수 있습니다. 거의 Firebug 수준의 기능들이 있고 특이하게 렌더링 모드별로 표시해 볼 수 있는 기능이 있더군요.

특히 DOM 객체를 찾는 방식의 개선으로 인해 Selectors API를 이용할 수 있습니다. 특정 DOM 객체들을 빠르게 찾아 이용하는 데 도움을 줍니다.

리치 웹 애플리케이션을 위해 Ajax 네비게이션을 window.location.hash 라는 객체에 담아서 뒤로/앞으로 버튼을 이용할 수 있게 하고, HTML 5의 주요 속성 중 하나인 오프라인 웹 서비스를 위한 로컬 저장소인 DOM Storage 지원과 프레임간 데이터 처리를 가능하게 하는 Cross Document Messaging의 구현은 HTML 5의 전망을 밝게 해주고 있습니다.

Marc Silbey에게 물어본 결과 아직 Firefox, Safari, Adobe 처럼 DB엔진을 쓰지 않고 도메인별로 10MB로 용량 제한을 두고 있다고 합니다. 향후에 DB엔진을 탑재할 예정이라는 군요. 앞서 살펴본 Cross Domain Request의 경우 XMLHttpRequest와의 비호환성 문제에 대해 W3C에서 적극적인 의사 개진을 하겠다고 하더군요. 이에 따라 XMLHttpRequest 표준안을 다루는 Web API W/G에서 XDR과 Selector API에 대한 논의를 시작했습니다.

시맨틱 웹으로, Activies와 Web Slices
웹 서비스 제공자와 사용자를 위해 IE8에는 대표적으로 두 가지 편의 기능을 추가했습니다. Activites는 웹 애플리케이션 기능을 언제나 사용할 수 있도록 텍스트를 선택해 우클릭을 하면 서비스 제공자들을 선택할 수 있도록 하는 기능입니다. Web Slices는 웹 콘텐츠를 시맨틱 마크업을 분석해 동적으로 북마크한 정보를 갱신해 줌으로서 최신 정보를 쉽게 전달해 주는 방식입니다.

구현 원칙은 쉽고 간단하게 만들고 이용할 수 있도록 한 점이 독특합니다. Activites의 경우 브라우저 검색 기능을 위한 표준인 OpenSearch를 흉내내서 검색, 지도, 북마크, SNS 등 다양한 웹 서비스로 전달해 줄 수 있습니다. 검색 플러그인 설치 하듯 Activites를 추가만 하면 문맥 중 우클릭으로 바로 사용할 수 있습니다.

Ebay를 비롯 다양한 서비스 파트너가 함께 일하고 있고 Jane Kim에게 물어보니 앞으로 지역별로도 제공 서비스 파트너를 모집한다니 빨리 만드셔서 마케팅 파트에 연락해보시면 제공 목록에 들어갈 수 있을지도 모르겠습니다. 간단한 xml 파일과 미리보기 화면만 만드시면 바로 적용해 보실 수 있습니다.

Web Slices는 Microformat의 RSS 피드 기능인 hAtom과 북마크한 웹 데이터를 동적으로 바꾸어 주는 Firefox의 Microsummary 기능을 합쳤습니다. 구현 방식은 HTML의 class 속성에 hAtom의 etnry-title, entry-content를 필수로 hslice, (갱신 주기)ttl, feedurl, endtime 등을 추가해서 사용할 수 있습니다. IE8의 자체 Feed 파싱 기능과 저장소를 이용해서 최신 정보인지 판단해서 표시하게 됩니다. (이제 마이크로포맷을 지원해 주어야하는 이유가 하나 더 생겼네요.)

어렵지 않은 기능이라 발빠르게 Firefox 용 Web SlicesFirefox용 Activites 확장 기능이 나오기도 했습니다.

총평: 아직 사용하지 마십시오!
IE8 베타1을 이용해 본 결과 아직 일반인이 사용하기에 문제점이 너무 많습니다. 일반 개발자도 아니고 실제로 웹 사이트 마크업을 담당하시는 분들이 테스트 PC에 설치해서 사용하길 권장 합니다. 베타는 그야말로 베타니까요. IE8의 베타1은 IE8의 표준 모드에 대한 테스트가 주 목적이므로 깨지는 사이트가 많을 것이라는 점은 MS도 인정하고 있습니다.

MS의 IE8 베타 프로그램은 크게 1) 개발자 베타 프로그램과 2) High Touch 베타 프로그램으로 나눠 집니다. 1번은 Microsoft Connect로 참여 가능하고, 2번은 각 국의 주요 인터넷 기업 중 UI 개발 파트가 활성화된 곳 위주로 제공하고 있습니다. 만약 IE8의 표준 버그를 제공하실 생각이 있으시다면 아래 두 사람한테 연락하시면 될 것 같습니다.

IE8이 아직 많은 분들이 보기에 부족한 점이 많을 것입니다. 하지만 기존에 브라우저를 만들던 멤버들도 아니고 10년도 더 된 소스 코드를 리팩토링 하는 게 만만치 않을 것이라는 생각이 듭니다. 하지만 그런 상황에 MS가 투자하고 결과물을 이끌어 냈다는 점만 해도 칭찬할 만 합니다.

다만, IE8은 좀 더 다른 웹 브라우저 벤더와 소통하고 웹 표준에 대한 논의 후 구현이 진행되어야 하는데 이렇게 자기들한테 필요한 기능을 내 놓고 표준화 시도를 하는 점은 구태라고 보여집니다. 이제 진정 웹을 공적 자원으로 생각한다면, 브라우저 개발 자체가 ‘블랙 박스’가 되어서는 안될 것입니다.

여러분의 생각

  1. 모르는 분야라 그런가.. 읽다보니 머리가 띵해지는군여(글애서 포기.. 끙^^;)

    안녕하세여.. 차니님^^
    이번 컨퍼런스에서 차니님 스피치를 들었습죠~
    대단히 동감했구여~ 글애서 후기도 차니님 얘기가 많다는(ㅋㅋ)
    http://hobaktoon.com/96

    좋은내용 잘들었습니다. 그냥 이렇게라도 인사를 해야겠기에 물어~물어~ 들렀다는^^
    기분좋~~~은 화욜오후 보내세연(배꼽인사) 꾸벅~

  2. 호박/ 감사합니다. 이 글에 있는 거 모르셔도 사는 데 아무 지장 없습니다^^

  3. 역시 저도 일반인 주제에[…] 8 베타버전을 설치해 7버전 에뮬레이션 모드로 사용하고 있습니다. 다른 건 몰라도 역시 깨지는 데가 너무 많은 건 할 수 없으니까요;

  4. 안녕하세요~ 예전에 모바일 FF 개발자 왔을때 뵈었는데 기억하시나 모르겠네요.
    IE8이라… 가슴이 답답하군요. 에효… 웹마크업을 담당하는 사람이 테스트PC에서 사용하고 있긴 하지만, 정말 베타라서 그러길 바랄 뿐입니다 켜켜

  5. 글 잘 읽었습니다.. 사실 IE가 좀 설계부터 미스가 많고 문제가 있었다고 봅니다.. 현재 6,7 버전 사용중인데 첫페이지 설정하는 부분도 레지에만 3,4군데가 넘어가죠.. 거기다 이런저런 지저분한 문제들이 많이 있죠..
    아마도 기존에 IE 코딩하던 개발자들은 다 짤리거나 이직한 것 같습니다..(잘 짤랐음) 그리고 다른 개발자들이 투입됐나보네요..

의견 쓰기

이름* 이메일* 홈페이지(선택)