마이크로소프트의 인터넷 익스플로러 7.0이 발표된 후 여러 가지 이슈들이 블로고스피어를 달구고 있다. 윈도우 정식버전에 대한 인증 문제가 그 예이다. 오늘은 원론적인 이야기보다 인터넷 익스플로러 7.0이 본격적으로 배포되면 개발자들에게 어떤 문제가 발생할지에 대하여 간단하게 정리해 보도록 하겠다.
지금까지 많은 소개 자료에 의해 사용자 인터페이스 개선에 대한 내용은 많이 알려졌다. 즐겨 찾기, RSS 피드, 탭 브라우저, 검색 및 향상된 보안등이 표면적으로 우리가 느낄 수 있는 개선점이다. 그러나 인터넷 익스플로러 7.0이 본격적으로 배포되기 전에 웹 개발을 담당하는 개발자라면 몇 가지 개발에 대한 이슈들은 숙지하고, 자신들의 사이트를 확인하여야 할 것이다. 중요한 내용들만 정리하면 다음과 같다.
1) 웹 표준 수용에 대한 점검
인터넷 익스플로러 7.0은 웹 표준에 대하여 수용하기 위해 노력하였다고 한다. 현재 표준 모드(Strict Mode)와 쿼크 모드(Quirks Mode)를 모두 지원하며, 특히 표준 모드에 대한 많은 개선이 이루어졌다. 하지만 HTML 4.01과 CSS 2.1을 기준으로 하였으나 100%를 지원하지는 않는다고 한다. 표준 모드는 HTML 코드의 상단에 <!DOCTYPE> 태그를 입력하여 사용하는 것으로 인터넷 익스플로러 6.0에서 이를 사용할 때 발생한 버그가 이번에 많이 수정되었다. 그렇기 때문에 이전에 이들 버그를 돌아가기 위한 일명 꼼수 즉 회피(Hack or Filter)하기 위해 사용한 CSS 페이지가 있다면 필히 확인하여야 한다.
2) <SELECT> 태그 요소의 Windowless Element 변경
이전 버전에서 <SELECT>요소는 Windowed Element였기 때문에 레이어와 같은 것을 사용할 때 <SELECT> 요소가 숨겨지지 않는 문제가 있었다. 이를 해결하기 위해 Z-index를 이용하는 경우가 있었는데 이번 버전에서는 이 문제가 개선되었다. 이전 버전의 CSS를 사용한다면 직접 테스트를 해 보기 바란다.
3) 로컬리소스에 대한 접근 차단
블로그 이미지 올리기와 같은 기능을 구현할 때 자바스크립트를 이용하여 이미지를 올리기 전에 미리 보기 기능을 제공하는 사이트가 있다. 이런 경우 로컬리소스가 대한 접근이 이루어지지 않기 때문에 서버로 이미지를 전송한 후 미리 보기를 하거나, 컴포넌트를 이용한 방식으로 전환하여야 한다.
4) 주소표시줄과 상태표시줄이 항상 보임
보안강화 정책의 일환으로 주소표시줄과 상태표시줄이 항상 보이게 변경되었다. 싸이월드의 미니홈피처럼 새 창을 이용하여 페이지를 출력하는 경우 콘텐트 영역의 크기에 따른 화면 표시에 문제가 발생할 수 있다. 이를 해결하기 위해 인터넷 익스플로러 7.0에서는 dialogHeight와 dialogWidth를 이전 버전과 다르게 콘텐트 영역의 크기만을 가져오도록 변경하였다. 화면 표시 사이즈와 위의 속성을 사용하는 사이트라면 확인 작업이 선행되어야 하겠다.
이 문제를 해결하기 위해서는 콘텐트의 크기와 그 외 항목들의 크기(타이틀 바 + 상태표시줄 + 가장자리 두께)를 별도로 계산하여 소스를 변경하여야 한다. 실제 계산을 해보면 가장자리 두께가 2px, 상태표시줄이 25px, 타이틀 바가 WindowsXP에서 29px, Windows2003에서 22px정도가 된다. 이를 인터넷 익스플로러 7.0에서는 이들 값들을 뺀 크기로 하여 새 창을 띄워야 의도한 창 크기로 실행할 수 있다.
더불어 새 창의 주소표시줄이 항상 나오기 때문에 GET 방식을 이용한 중요한 정보를 전달하고 있는 사이트라면 주의를 기울어야 한다.
상태표시줄에 자신만의 특정 문자를 입력하거나 여러 정보를 표시하는 사례들이 있었다. 하지만 이번 버전부터는 상태표시줄의 내용을 스크립트를 사용하여 표시할 수 없게 된다. 즉 window.status와 window.defaultStatus를 직접 컨트롤 할 수 없게 된다.
5) 새 창 열기 방식의 수정
피싱 사이트에 대응하기 위한 새 창 열기 방식이 많이 변경되었다. 사용자가 제어할 수 없을 만큼의 작거나 혹은 큰 크기의 창을 열거나, 접근할 수 없는 위치에 창을 띄우는 방식은 더 이상 사용할 수 없게 된다.
새 창과 관련된 open(), showModalDialog(), showModelessDialog(), close() 함수들이 영향을 받게 된다. 또한 새 창은 최소 높이 150px 이상, 폭 250px 이상, 좌측 시작점 0 이상으로만 열 수 있게 된다. 그러나 이전처럼 탭 방식으로 동작하는 인터넷 익스플로러 7.0에서도 open() 혹은 showHelp() 함수를 호출할 때 resizable, menubar, location, toolbar, status, scrollbar 등을 0으로 설정하여 탭이 없는 창으로 열 수는 있다.
탭으로 열린 창에 대해서 close() 함수를 호출하는 경우나 부모 창을 닫는 경우에는 확인 창이 기본적으로 나타난다. 하지만 탭이 없는 창의 경우에는 이전처럼 그냥 종료되니 이전 방식처럼 이용할 수 있다.
이외에도 인터넷 익스플로러 7.0에는 강화된 보안정책으로 인한 불가피하게 기존 사이트를 수정하여야만 하는 경우가 있다. 대표적으로 ActiveX Opt-In 정책의 변경으로 사용자의 동의 없이 ActiveX의 다운로드, 등록, 실행이 모두 차단된다. 인터넷 익스플로러에서만 동작하는 많은 국내 인터넷 뱅킹의 상황을 생각해보면 엄청난 영향을 줄 수 있는 변경 사항이다.
그 외 <BASE> 태그 요소는 반드시 <HEAD>에서만 존재하여야 하며, SSL 2.0 대신 SSL 3.0과 TLS 1.0이 기본 설정으로 변경되었다. 자바 스크립트에서의 window.prompt() 함수가 더 이상 기본으로 실행되지 않으며, iFrame을 이용하는 방법에도 여러 변화가 발생하였다.
이처럼 인터넷 익스플로러 7.0에는 기존 많은 개발자들이 사용해온 방식에 직간접적인 영향을 주는 요소들이 아주 많이 변경되었다. 아직 국내에 많은 사용자들이 7.0으로의 전환을 하지 않은 이 시점에 자신들이 만든 사이트를 테스트 해봐야 할 것이다. 익스플로러가 브라우저 시장에서 넷스케이프를 이긴 다음 국내 개발의 초점은 IE에서만 잘 동작하면 된다는 생각이 많았다. 이는 지금도 남발되고 있는 ActiveX만 보더라도 알 수 있다. 해외 인터넷 뱅킹은 아무런 ActiveX 설치 없이 쉽게 이용할 수 있도록 지원된다. 이를 쫓아갈 필요는 없지만 개발의 편의를 위한 무분별한 사용은 이제부터라도 자제되어야 할 것이다. 더불어 아직도 많은 사이트가 파이어 폭스와 같은 브라우저를 지원하지 못하는 경우가 많이 있다. 웹 2.0에서의 웹 접근성을 위한 웹 표준 준수도 중요한 내용이지만 다양한 웹 브라우저에서 출력 유무도 앞으로는 중요한 항목으로 부각될 것이다.
오늘도 열심히 업무를 수행하는 개발자들에게 “다양한 사용자들을 위해 조금만 더 신경을 써달라”고 응원의 메시지를 보내고 싶다.
원본 링크 : http://www.smartplace.co.kr/blog_post_43.aspx
'개발노트&관련잡다구니' 카테고리의 다른 글
[MSSQL] PRIMARY 파일 그룹이 꽉 차서 '[DB명]' 데이터베이스의 '필드명' 개체에 공간을 할당할 수 없습니다 (0) | 2013.01.03 |
---|---|
[BDE] 로컬 공유하기 (0) | 2013.01.03 |
[윈도우XP] 네트워크 공유시 "리소스 권한이 없습니다" 라는 메세지 (0) | 2012.11.07 |
[MySQL] Lost connection to MySQL server during query (0) | 2010.04.15 |
[삽질] 소스 백업을 했는데 계속 윈도우 기본인증창이 나옴. (0) | 2009.08.10 |