웹마스터 팁
IE6부터 IE9까지 대응하기.
2010.10.13 14:06
얼마전 IE9 베타 런칭 행사에 'IE6부터 IE9까지 대응하기' 라는 주제로 발표를 다녀왔습니다. 경쟁사 브라우저들과 비교해도 손색이 없을만큼 높은 표준 준수율로 무장한 IE9 베타를 런칭하는 자리에서 낡은 브라우저 대응 방법을 소개하는 발표를 포함시켰다는 것은 어찌보면 참 아이러니한 일입니다. 국내 현실과 청중들의 욕구를 잘 헤아렸던 한국 마이크로소프트사의 배려라고 볼 수 있겠습니다. 발표자료. 발표영상.
IE6는 아직 살아있다.
넷어플리케이션즈의 2010년 9월 최근 통계에 따르면 아직 전세계적으로 IE6 사용자는 16% 수준의 점유율을 보이고 있습니다. 인터넷트렌드의 2010년 9월 통계에 따르면 국내 IE6 사용자는 무려 36%나 됩니다. IE7과 IE8은 국내에서 각각 30% 수준의 점유율을 보이고 있습니다. 사람들은 IE6 브라우저의 장례식을 치를만큼 낡은 브라우저가 하루속히 사라져주길 원하지만 IE6는 아직 죽지 않았습니다. 웹 개발자는 IE6, IE7, IE8, IE9 브라우저에 모두 대응해야 합니다.
IE 브라우저 버전은 4개 이지만 둘로 구분할 수 있다.
IE6, IE7, IE8, IE9 브라우저 버전은 4개이나 표준 준수율 또는 버그 발생률에 따라 단 두 가지 종류로 간단하게 구분할 수 있습니다.
IE8~9 브라우저는 HTML/CSS 표준 준수 테스트 도구인 Acid2 테스트에서 모두 만점을 받은 브라우저 들입니다. 따라서 이 두 버전의 브라우저는 다른 여느 표준계열 브라우저들(크롬, 사파리, 오페라, 파이어폭스)과 어깨를 나란히 합니다. IE8 또는 IE9 브라우저에 최적화된 웹 페이지는 다른 브라우저에서도 별 문제 없이 똑같이 잘 보입니다.
그러나 IE6~7 브라우저는 표준 준수율이 상대적으로 떨어지고 버그도 많습니다. 다행인것은 IE6 브라우저와 IE7 브라우저가 그다지 큰 차이가 없다는 점입니다. IE6 브라우저에서 발생하는 문제는 IE7 브라우저에서 동일하게 발생할 확률이 높습니다. IE7 브라우저가 조금 더 나을 뿐입니다.
결국 저는 IE8~9 브라우저에 대해서는 할 말이 많지 않습니다. IE6~7 브라우저의 문제 해결을 위해서 몇 가지 팁을 소개합니다.
IE6~7 문제해결.
- IE6~7 브라우저도 표준에 따라 구현된 브라우저 입니다. 표준 DTD를 사용하면 표준에 따라 잘 렌더링 해줍니다. 반드시 표준 DTD를 사용하세요. DTD를 사용하지 않으면 모든 브라우저들이 IE5 버전의 브라우저를 흉내내는 Quirks Mode 상태가 되어 각기 다른 뷰를 출력합니다.
- 사용자에게 무엇이 더 좋은지 HTML과 XHTML의 우위를 논하는 것은 무의미 합니다. 그러나 XHTML의 엄격한 문법이 개발자에게는 더 유리할 것입니다.
- 엄격한(Strict) DTD와 호환형(Transitional) DTD 가운데 호환형 DTD를 추천합니다. 엄격함은 많은 오류를 유발할 뿐입니다.
- 마이크로소프트의 독자적인 표현방식인 hasLayout이 존재한다는 것을 알아야 합니다. hasLayout이 없으면 문제가 발생하는 경우가 많습니다. IE6~7 브라우저에서 화면에 특정 요소가 보이지 않거나 잘못된 표현을 하면 { zoom:1 } 속성을 추가로 부여하여 해결되는 경우가 많습니다. zoom 속성은 hasLayout Trigger 이며 다른 브라우저들은 해석하지 않는 속성입니다.
- float된 방향와 같은 방향의 margin이 존재하는 경우 IE6 브라우저는 margin을 두 배로 출력하는 빈도 높은 버그가 있습니다. float이 부여된 요소에 display:inline 속성을 부여하면 해결됩니다. float 처리된 요소는 display 속성이 block으로 바뀌는데 이 값은 절대로 덮어쓰기가 되지 않습니다. float된 요소에 inline 속성을 부여해도 여전히 block 이라는 뜻입니다. 그 밖에 float 요소는 마지막 텍스트 콘텐츠를 복사해서 출력하는 버그도 있는데 이 때에도 display:inline 속성을 부여하면 해결됩니다.
- zoom 속성으로 문제가 해결되지 않으면 position:relative 속성을 사용해 봅니다. display:block 으로 처리한 a 요소의 클릭 영역이 제대로 잡히지 않는 문제를 해결할 수 있습니다. 마우스 커서 모양의 잘못된 출력도 바로잡아 줍니다.
- *property:value와 같은 형식으로 속성 앞에 '*' 별표를 붙이면 IE6, IE7 브라우저만 이 속성을 해석하고 다른 브라우저는 무시합니다.
- _property:value와 같은 형식으로 속성 앞에 '_' 언더바를 붙이면 IE6 브라우저만 이 속성을 해석하고 다른 브라우저는 무시합니다.
IE6~9 브라우저에서 CSS3 사용하기.
낡은 브라우저 때문에 신기술을 사용할 수 없다는 생각은 극복할 수 있습니다. 마이크로소프트에서 이미 오래전에 브라우저에 탑재했던 기술이 CSS3 표준으로 채택(word-wrap, text-overflow, @font-face)이 되기도 했고 CSS3와 유사한 기술(filter)이 이미 IE6~8 브라우저에 구현되어 있기도 합니다. 우리는 신기술을 사용하거나 또는 모방하면서 브라우저 호환성도 유지할 수 있습니다.
IE6~9 브라우저에서 사용하거나 모방할 수 있는 CSS3에 대한 설명은 HTML5 오픈 컨퍼런스에서 발표했던 CSS3 소개 자료로 대신합니다.
요점 정리.
- 현존하는 하위 버전 브라우저에 대한 호환성을 지원해야 합니다.
- 신 기술의 사용을 두려워 할 필요가 없습니다. 좋은 도구를 선택한 사용자에게 향상된 경험을 전달해야 합니다.
- 낡은 브라우저 비난하기 보다는 새 브라우저를 추천 합시다.
다소 지루하고 딱딱한 발표였음에도 불구하고 관심을 가지고 들어주셔서 고맙습니다. IE10 런칭 행사에서는 더 이상 낡은 브라우저 이야기는 나오지 않았으면 하는 바램입니다. 아마 한국 마이크로소프트도 그런 기대를 가지고 있을 것입니다.
댓글 7
-
소렌트.
2010.10.13 14:27
-
SeoSeungHyun
2010.10.13 14:46
결국 IE6 사용하라~! 사용하지 마라~! 라고 강요할 수 없습니다.
IE6 사용자도 포용해야 하는 것이 개발자의 몫이라 생각합니다.
IE6 분명 문제가 많은 브라우저 입니다.
아직 제 주변에는 IE6 사용자들이 많더군요. (그런 컴퓨터 볼때마다, 파폭이나, 크롬을 깔고 있습니다만)
이런 문제들을 인지하지 못하는 분들도 많이 계시더군요.
혹 아시는 분들이 계셔도
IE6를 업그레이드 하지 않는 이유를 물으면 그 중 하나는
IE를 업그레이드 하면 컴퓨터 리부팅 해야하는 번거로움 때문이라고 답하십니다.
당연히 사용자 입장에서는
IE6를 사용하는데, 아무런 문제가 없다면, 구지 업그레이드 할 이유가 없습니다.
이해가 갑니다.
MS에서 좀더 확실하고, 간편한 업그레이드 툴을 제공했으면 좀더 좋지 않을까 생각해봅니다.
(크롬 설치는 굉장히 간편하고, 빠릅니다.)
-
한그림
2010.10.13 21:42
음.. PC방에서 아직도 XP와 익플6를 많이 쓰고 있다는 점이 문제를 질질끌게 되는 원인중 하나같아요.
-
현원
2010.10.15 20:47
개인적으로는 자스 성능을 따지자면 ie8은 ie9에 비해 훨씬 못하고 파폭이나 크롬에 비할바는 못된다고 판단했습니다. 물론 css나 html에 대해서는 ie8부터는 합격점이지만요..
그리고 아쉬운 문제로는 ie8까지도 였던 걸로 기억합니다만 contentType을 application/xhtml+xml로 하면 무시해버리고 xml로서 파싱하지 않는다는 것..
ie9은 합격 이라고 하겠지만 ie8은 조금 의문점이 듭니다.
그나저나 해결법은 결국 css핵.. ㄷㄷㄷ.. 마소도 어쩔 수 없는듯.. 패치라도 해주면 ㅡㅠ.. 하긴 패치하느니 걍 ie8이나 9을 설치하는게 더...
ie6, 7은.. 뭐.. 버리구요..
-
신화철
2010.10.20 18:46
IE9 런칭쇼에서 잘 들었어요~~ ㅎㅎ
좋은 웹 만들어주세요 ㅎㅎ
-
또별
2011.01.16 17:51
ie8에서 즐겨찾기 추가할때...즐겨찾기 목록이 왜 쫘~악 펼쳐지는지 모르겠네요..저는 즐겨찾기 폴더 목록이 많아서...쫘~악 펼쳐지면..
폴더 위치를 찾는데...아래위로...스콜롤 하면서 찾아야 하는게 짜증나요...즐겨찾기 목록을 기존처럼...접힌상태로 출력되게 할수 있나요?
즐겨찾기를 찾을때는 접힌상태인데...추가할때...왜 펼쳐지게 했는지...왕 짜증나요..누구좀..이문제..해결방법좀 알려주세요. -
cycix
2011.02.05 16:37
서버의 접속률을 보면 3:3:3:기타로 6, 7이 60퍼센트 이상을 차지하지요~
저는 6을 계속 쓰는 근본적인 원인을 이렇게 봅니다.
os(xp)를 설치하면 6이 기본적으로 깔리게 되는데요
이를 7이나 8로 업그레이드 하기가 생각만큼 쉽지가 않다는데 있읍니다.
다른 프로그램 설치 하는것과 비교조차 할 수 없을만큼 복잡합니다.
젊은(30대이하) 친구들이나 할수 있는일이죠
간추려보자면
7, 8버전 프로그램 파일을 구하는 시간이 오래걸립니다.
인스톨 하면 다운로드 한다고 시간을 보냅니다.
열심히 구한 프로그램 파일이 다운로드 패키지 이거나 업데이터 또는 패치파일 입니다.
가끔 컴퓨터에 뭔프로그램이 없다고 설치를 중단합니다.(실버라이트 등의 ms패키지)
설치중에 재부팅도 하고 ms인증도 받아야 된다고 하고 무엇인가를 끊임없이 요구합니다.
고난끝에 설치를 마쳐도 영문버전입니다. 급 좌절...-ㅅ-;
자동업데이트도 마찬가지더 군요
인증은 기본적으로 들어가고
여러가지 보안패치에 뭐다 뭐다 해서 브라우저는 업데이트 설치를 5~6번 끝내야 시작하더군요...-ㅅ-;;;
여타 프로그램처럼(파폭같은) 프로그램파일 다운로드 받아서 다음다음 하면 설치가 끝나는 식이면 8이 대세일텐데 말이죠
결과적으로 컴퓨터 새대 교체가 되어야 6은 없어질 겁니다.
xp와 비스타를 쓰는사람이 윈7으로 모두 넘어가야 6/7이 사라질거라고 예상됩니다.
결국 우리는 앞으로 계속 6/7에 css를 맞추어야 합니다 -ㅅ-;;;;
참고로 심지어 요즘에도 ie4/5로 접속하시는 분들도 계십니다 -ㅅ-;;;;;;;
IE7에서 본문내용이 카피라이트를 침범하길래 혹시나해서 zoom:1 을 붙여니 해결되었습니다.
좋은 내용 감사합니다!