IE7 이번달 안에 릴리즈 예정
browser | 2006-10-07
IE7이 예상보다 빨리 릴리즈 될 예정입니다. 올해말에 정식버전이 나온다고 했었는데 10월 안이라고 하니 매우 빠르게 느껴지는 군요. 우선은 다운로드 가능한 버젼으로 배포가 되고 몇주 후에는 자동 업데이트(Automatic Updates)를 이용해서 배포가 된다고 합니다. 그러니까 자동 업데이트를 부지런히 하고 있는 사용자의 경우 12월 정도가 되면 대부분 IE7으로 업그레이드가 될 것 같습니다.
IE7이 웹표준을 수용하여 나온다는 얘기가 나왔을 때 많은 분들이 기존의 웹표준을 지키지 않은 웹사이트가 깨지거나 오작동을 발생시키는 것이 아닌가 염려(또는 환호)를 하셨습니다. 결론부터 말하자면 큰 문제점들이 발생하여 웹표준 준수가 엄청난 이슈가되는 정도는 아니지만 분명히 문제 발생 소지가 있기 때문에 테스트가 반드시 필요합니다.
화면의 랜더링 변화라든가 CSS의 표준 준수는 큰 문제를 일으키지는 않을 것 같습니다. IE6때부터 적용 되었던 문서 타입에 따라서 랜더링 모드를 바꾸는 기능(Doctype Switching)이 IE7에서도 같은 기능을 하고 있고 이 CSS의 변경사항은 표준 랜더링모드에만 적용이 되기 때문에 기존 비표준 사이트들이 문제를 일으키지는 않을 것입니다. 다만 표준 모드로 제작된 사이트 중에 여러 트릭들과 핵(hack)을 사용한 경우 문제가 발생되는 것이 실제로 확인되었기 때문에 테스트를 해보는 것이 필수적입니다. 보다 문제가 큰 경우는 문서타입(doctype)을 삽입하여 표준 모드로 작동되도록 제작을 하였지만 표준을 지키지 않은 경우 입니다. 이경우 실제로 페이지에 오류가 있으면 IE6와는 다르게 화면이 깨져서 나오는 것을 볼 수 있습니다. 드림위버와 같은 표준 저작 도구들을 이용하여 이미 표준에 맞게 페이지를 생성했는데 이러한 페이지에 오류가 있는 코드를 삽입할 경우 IE7에서는 IE6와 다르게 나타날 수 있습니다. 그리고 이러한 현상은 자바스크립트와 같이 사용될 때 - 우리나라 개발자들은 자바스크립트를 굉장히 많이 씁니다. - 확실하게 나타납니다.
최근에 많은 사람들이 잘못된지 모르고 많이 사용하고 있는 IE eolas patch무력화 스크립트가 가장 대표적인 예입니다. 아래와 같은 방식으로 배포되고 있는 코드가 있습니다.
<noscript id = "lt1">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="730" height="96">
<param name="movie" value="/images/nav/topmenu.swf?selectedMM=0&selectedSM=0&xmlPath=/share/menu.xml" />
<param name="wmode" value="transparent">
<!-- Hixie method -->
<!--[if !IE]> <-->
<object type="application/x-shockwave-flash" data="/images/nav/topmenu.swf?selectedMM=0&selectedSM=0&xmlPath=/share/menu.xml" width="730" height="96">
<param name="wmode" value="transparent">
</object>
<!--> <![endif]-->
</object></noscript><script> ws(lt1); </script>
ws()
함수는 아래와 같이 아주 단순합니다.
function ws(id) {
document.write(id.innerHTML); id="";
}
언뜻 보기에는 id selection 문제(id.innerHTML
) 외에 별 문제가 없어보입니다. 하지만 noscript
엘리먼트는 스크립트가 작동하지 않을 때에 출력되는 부분을 지칭하기 때문에 위의 코드는 HTML 사용상 문제가 있습니다. 그리고 스크립트가 작동 안할때 나오는 컨텐츠를 스크립트로 접근하려는 시도자체도 의미적으로 문제가 있습니다. 스펙에서는 noscript
엘리먼트는 noscript
앞에 나오는 스크립트를 지원하지 않을 때에 나오는 컨텐츠로 정의하고 있습니다.
The user agent doesn't support a scripting language invoked by a SCRIPT element earlier in the document.
위와 같이 noscript
의 내용에 접근하기 위해서 스크립트 앞에 noscript
를 넣는 것은 의미에 맞지 않는 HTML의 사용입니다.
IE7에서는 이 noscript
의 작동 방식이 바뀌어서 스크립트로 noscript
의 내용물에 접근을 할 수 없고 이와 같이 사용할 경우 플래시가 화면에 나오지 않게 됩니다. 플래시를 많이 사용한 경우라면 화면이 깨지는 정도가 아니라 사이트 이용 자체가 불가능하게 됩니다. 표준을 지키지 않으면 상위버전 호환성이 없어진다는 것을 여실하게 보여주는 예라고 할 수 있습니다.
그리고 프레임간의 스크립팅도 비슷한 문제를 발생시키고 있습니다. 우리나라 웹사이트의 경우 외부 컨텐츠를 iframe
으로 불러들이는 것을 상당히 자주 볼 수 있습니다. 이때 프레임의 리사이징을 위해서 프레임 간의 스크립팅이 필요한데 브라우저의 보안이 점점 강화되다보니 이런 기능들이 점점 제한을 받아서 사용하기 힘들어 지고 있습니다. 최근에 정부 부처의 민원처리를 하나로 통합하면서 iframe
으로 외부의 민원 처리페이지를 삽입하는 작업을 한 것이 있는데 이 페이지의 리사이징이 IE7에서는 정상적으로 되지 않고 있습니다. 보안이 강화되면서 IE6에서는 작동하던 스크립트가 IE7에서는 권한 문제로 실행이 되지 않게 된 것입니다.
이러한 오류들은 극히 드물기 때문에 IE7이 얼마나 큰 파급효과를 가져올지는 아직 미지수 입니다. 하지만 분명히 IE7에서 브라우저의 작동방식이 일부 변화되었고 이에 대한 테스트는 필수적입니다. 표준을 잘 준수하여 제작을 해왔다면 수정 작업이 거의 필요 없을 것이고 그렇지 못했다면 이번일을 계기로 웹표준에 대한 고민을 해보는 것이 좋을 것으로 생각 됩니다.
Comments
IE7의 출시 일정이 앞당겨졌군요! 연말출시를 예상하고 있던지라 이전 작업물에 대한 본격적인 확인 작업은 천천히 할려고 그랬는데 서둘러야 겠군요..;; 좋은 정보 감사합니다.
IE7의 정식 릴리스로 인해 국내 업체들이 웹표준을 다시 보는 계기로 작용하면 좋겠습니다. ...만, 왠지 XP SP2 업데이트의 파장이 다시금 몰릴 것 같은 불안함이 드는군요. >보다 문제가 큰 경우는 문서타입(doctype)을 삽입하여 표준 모드로 작동되도록 제작을 하였지만 표준을 지키지 않은 경우 입니다. DOCTYPE이 어디에 쓰이는지도 모른채 무작정 삽입해놓고 정작 그 밑의 코드는 엉망인 경우가 적지 않더군요. ..고생 좀 하리라 생각합니다. >보안이 강화되면서 IE6에서는 작동하던 스크립트가 IE7에서는 권한 문제로 실행이 되지 않게 된 것입니다. “ACTIVE X 실행이 안되면 이렇게 해서 설정을 바꿔 주세요” 라는 식으로 안내 페이지 리다이렉션을 또 하지 않을지 걱정입니다. -_-; 이번엔 브라우저 스크립트 권한을 바꿔달라고 할지도 모르겠군요.