ie8 web develope guide 1in1

80
웹 표준 개발자의 IE 8 고려사항 NHN 오픈UI기술팀 정 찬 명

Upload: daejin-um

Post on 25-Jan-2015

829 views

Category:

Documents


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Ie8 Web Develope Guide 1in1

웹 표준 개발자의 IE 8 고려사항

NHN 오픈UI기술팀 정  찬  명

Page 2: Ie8 Web Develope Guide 1in1

목         차

1. 지구촌 IE 버전별 점유율2. 한국의 IE 버전별 점유율3. 국내외 IE 통계의 시사점4. IE의 버전별 웹 표준 지원 현황5. IE 8과 낡은 웹 사이트의 호환성 문제6. 낡은 웹 사이트를 IE 8 에서 깨지 않기7. DTD가 없는 웹 사이트 대응법8. DTD가 있는 웹 사이트 대응법9. DTD가 혼재되어 있는 웹 사이트 대응법

10. Meta 호환 코드를 서버측 응답 헤더에 적용하는 방법

11. 웹 표준 사이트와 낡은 브라우저의 호환성 문제12. IE 조건부 주석을 사용하여 호환성 문제를 해결13. 조건부 주석의 이해14. 조건부 주석의 적절한 사용법15. CSS Hack을 사용하여 호환성 문제를 해결16. IE 8의 향상된 웹 표준 활용하기

Page 3: Ie8 Web Develope Guide 1in1

지구촌 IE 버전별 점유율2009년 2월 Net Applications 보고서 기준

Page 4: Ie8 Web Develope Guide 1in1

IE8 IE7 IE6 IE5 etc

1.17% 47.32% 18.85% 0.08% 32.58%

Page 5: Ie8 Web Develope Guide 1in1

한국의 IE 버전별 점유율2009년 2월 Internet Trend 보고서 기준

Page 6: Ie8 Web Develope Guide 1in1

IE8 IE7 IE6 IE5 etc

0.34% 38.86% 59.36% 0.03% 1.41%

Page 7: Ie8 Web Develope Guide 1in1

국내외 IE 통계의 시사점

Page 8: Ie8 Web Develope Guide 1in1

IE 6, 7, 8 버전에 모두 대응할 필요가 있다.

Page 9: Ie8 Web Develope Guide 1in1

한편,

Page 10: Ie8 Web Develope Guide 1in1

0.1% 미만의 IE 5.x 점유율을 어떻게 받아들일 것인가?

Page 11: Ie8 Web Develope Guide 1in1

0.1%

미만의 점유율을 의미있게 받아들이는 경우이 문제를 해결할 방법이 전혀 없는 것은 아니지만되도록 운영체제를 업그레이드 하도록 권장하는 것이 '현실적인 타협점'.

Page 12: Ie8 Web Develope Guide 1in1

0.1%

미만의 장애인을 정상인으로 만드는 것은불가능 하기 때문에 인권 보호 차원에서 '윤리적/법적' 으로'반드시' 대응할 책임이 있다.

Page 13: Ie8 Web Develope Guide 1in1

그러나,

0.1%

미만의 장애 환경은사용자의 의지에 따라 인위적으로 개선할 수 있는 환경이므로'가능하다면' 돕는것이 좋겠다.

Page 14: Ie8 Web Develope Guide 1in1

Microsoft가

0.1% 고객의 장애환경을 개선하는데 도움이 되었으면 좋겠다.

Page 15: Ie8 Web Develope Guide 1in1

IE의 버전별 웹 표준 지원 현황Acid2 / Acid3 Test 기준

Page 16: Ie8 Web Develope Guide 1in1

Acid2 TestHTML/CSS/PNG...

Page 17: Ie8 Web Develope Guide 1in1

Acid3 TestHTML/CSS/DOM/SVG...

Page 18: Ie8 Web Develope Guide 1in1

IE 6 = "absolutely bad"

Acid2 Acid3

Page 19: Ie8 Web Develope Guide 1in1

IE 7 = "so bad"

Acid2 Acid3

Page 20: Ie8 Web Develope Guide 1in1

IE 8 = "so good"

Acid2 Acid3

Page 21: Ie8 Web Develope Guide 1in1

IE 9 = "absolutely good"

Page 22: Ie8 Web Develope Guide 1in1

IE 10 = "excellent"

Page 23: Ie8 Web Develope Guide 1in1

IE 8과 낡은 웹 사이트의 호환성 문제

Page 24: Ie8 Web Develope Guide 1in1

IE 8이 웹 표준 준수율을 

극도로 개선함으로써 미래의 웹 개발자는 자연스럽게 표준을 준수하게 될 것이고 웹 브라우저의 호환성 문제는 점차 사라질 것이다.

Page 25: Ie8 Web Develope Guide 1in1

그러나,과거에 작성된 낡은 페이지들은오래된 브라우저에최적화 되어 있기 때문에 IE 8 브라우저에서는 오히려깨질 것이다.

Page 26: Ie8 Web Develope Guide 1in1

"언젠가는 넘어야 할 산"

Page 27: Ie8 Web Develope Guide 1in1

낡은 웹 사이트를 IE 8에서 깨지 않기

Page 28: Ie8 Web Develope Guide 1in1

낡은 웹 사이트라고 해서 모두 같은 것은 아니다.

Page 29: Ie8 Web Develope Guide 1in1

낡은 웹 사이트는 크게세 가지 유형으로 나뉜다.

Page 30: Ie8 Web Develope Guide 1in1

첫째,DTD가 없는 웹 사이트.

Page 31: Ie8 Web Develope Guide 1in1

둘째,DTD가 있는 웹 사이트.

Page 32: Ie8 Web Develope Guide 1in1

셋째,DTD 없는 페이지와DTD 있는 페이지가웹 사이트에 혼재되어 있는 경우.

Page 33: Ie8 Web Develope Guide 1in1

DTD가 없는 웹 사이트 대응법

Page 34: Ie8 Web Develope Guide 1in1

DTD가 없는 페이지는아무 대응을 할 필요가 없다.

Page 35: Ie8 Web Develope Guide 1in1

IE 8은 DTD가 없는 페이지를여전히 Quirks Mode로 렌더링 하기 때문에웹 사이트는 깨지지 않는다.

Page 36: Ie8 Web Develope Guide 1in1

DTD가 있는 웹 사이트 대응법

Page 37: Ie8 Web Develope Guide 1in1

DTD가 있는 페이지라고 해서 모두 같은것은 아니다.

Page 38: Ie8 Web Develope Guide 1in1

첫째, IE 5에 최적화 된 페이지.

Page 39: Ie8 Web Develope Guide 1in1

둘째, IE 6에 최적화 된 페이지.

Page 40: Ie8 Web Develope Guide 1in1

셋째, IE 7에 최적화 된 페이지.

Page 41: Ie8 Web Develope Guide 1in1

IE 5에 최적화 된 페이지 대응법.

<meta http-equiv="X-UA-Compatible" content="IE=5" />

Page 42: Ie8 Web Develope Guide 1in1

IE 6에 최적화 된 페이지는완전히 개편해야 한다.

적어도 IE 7에 최적화 시켜야 하는데그렇지 않으면 구제할 방법이 없다. 

IE 8 브라우저에 IE 6 렌더링 엔진이 없기 때문이다.

IE 6에 최적화된 페이지를 IE 7에 최적화 하는 것은 어렵지 않다.

Page 43: Ie8 Web Develope Guide 1in1

IE 6에 최적화 된 페이지는IE 7에 최적화 작업 후 다음 코드로 대응한다.

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Page 44: Ie8 Web Develope Guide 1in1

IE 7에 최적화 된 페이지 대응법.

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Page 45: Ie8 Web Develope Guide 1in1

DTD가 혼재되어 있는 웹 사이트 대응법

Page 46: Ie8 Web Develope Guide 1in1

DTD가 혼재되어 있는 웹 사이트는 

DTD가 없는 페이지와DTD가 있는 페이지를 구분하여각각 다른 방법으로 대응해야 한다.

Page 47: Ie8 Web Develope Guide 1in1

DTD가 없는 페이지는 아무런 대응을 하지 않는다.

IE 8은 DTD가 없는 페이지를 Quirks Mode로 렌더링 하기 때문에페이지는 깨지지 않는다.

Page 48: Ie8 Web Develope Guide 1in1

DTD가 있는 페이지는 IE 7에 최적화 시킨 후 다음 코드 적용.

<meta http-equiv="X-UA-Compatible" content="IE=7" />

Page 49: Ie8 Web Develope Guide 1in1

만약, X-UA-Compatable 호환 코드를 DTD가 있는 페이지에만 별도로 적용하는 것이 어렵다면

모든 페이지에 호환 코드를 추가하는 방법도 있다.

Page 50: Ie8 Web Develope Guide 1in1

DTD가 있는 페이지만 IE 7에 최적화 시킨 후모든 페이지에 다음 코드를 적용한다.

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

DTD가 없는 페이지는 여전히 Quirks Mode로,DTD가 있는 페이지는 IE 7 표준 모드로렌더링 할 것이다.

Page 51: Ie8 Web Develope Guide 1in1

Meta 호환 코드를서버측 응답 헤더에 적용하는 방법

Page 52: Ie8 Web Develope Guide 1in1

Implementing the META Switch on IIS.<?xml version="1.0" encoding="utf-8"?><configuration> <system.webServer> <httpProtocol> <customHeaders> <clear /> <add name="X-UA-Compatible" value="IE=EmulateIE7" /> </customHeaders> </httpProtocol> </system.webServer></configuration>

Implementing the META Switch on Apache.X-UA-Compatible:IE=EmulateIE7

Page 53: Ie8 Web Develope Guide 1in1

웹 표준 사이트와 낡은 브라우저의 호환성 문제

Page 54: Ie8 Web Develope Guide 1in1

웹 표준사이트는

IE 8에 별도로 대응할 필요가 없다.

Page 55: Ie8 Web Develope Guide 1in1

IE 8이

웹 표준을 잘 지원하고 있기 때문에.

Page 56: Ie8 Web Develope Guide 1in1

그러나,웹 표준을 잘 지킨 사이트는낡은 브라우저에서 깨질 것이다.

낡은 브라우저는 웹 표준을 완전히 지원하지 않기 때문이다.

Page 57: Ie8 Web Develope Guide 1in1

또한,낡은 브라우저라고 해서 다 같은 브라우저가 아니다.

Page 58: Ie8 Web Develope Guide 1in1

IE 7, IE 6, IE 5세 가지 버전의 브라우저 엔진은지원하는 표준의 범위가 다르기 때문에렌더링도 각각 다르다.

Page 59: Ie8 Web Develope Guide 1in1

렌더링이

제각기 다르기 때문에각각의 브라우저에 대응하는 CSS 코드도 달라야 한다.

Page 60: Ie8 Web Develope Guide 1in1

IE 조건부 주석을 사용하여 호환성 문제를 해결

Page 61: Ie8 Web Develope Guide 1in1

조건부 주석이란,

IE를 제외한 브라우저는 주석으로 처리하나IE 브라우저는 버전에 따라실제 콘텐츠로 인식하는 주석.

Page 62: Ie8 Web Develope Guide 1in1

조건부 주석을

활용하면 IE 7, IE 6, IE 5각각의 브라우저에 최적화된 코드를각각 다르게 적용할 수 있다.

Page 63: Ie8 Web Develope Guide 1in1

UI 개발자는

IE 7, IE 6, IE 5 브라우저에 각각 대응하는별도의 CSS 코드를 작성하고각각을 파일로 분리한다.

default.cssie7.cssie6.cssie5.css

Page 64: Ie8 Web Develope Guide 1in1

IE 조건부 주석의 이해

Page 65: Ie8 Web Develope Guide 1in1

조건부 주석은

다음과 같은 형식을 갖는다.

<!--[if expression ]> HTML <![endif]-->

IE를 제외한 브라우저는 '<!--' 부터 '-->' 까지를 모두 주석으로 처리 하고

IE는 'HTML '을 실제 콘텐츠로 인식하고 파싱한다.

Page 66: Ie8 Web Develope Guide 1in1

IE 조건부 주석의 적절한 사용법

Page 67: Ie8 Web Develope Guide 1in1

<link rel="stylesheet" type="text/css" href="default.css" />

<!--[if IE 7]> <link rel="stylesheet" type="text/css" href="ie7.css" /><[endif]-->

<!--[if IE 6]> <link rel="stylesheet" type="text/css" href="ie6.css" /><[endif]-->

<!--[if IE 5]> <link rel="stylesheet" type="text/css" href="ie5.css" /><[endif]-->

Page 68: Ie8 Web Develope Guide 1in1

CSS Hack을 사용하여 호환성 문제를 해결

Page 69: Ie8 Web Develope Guide 1in1

CSS Hack은

브라우저의 버그를 이용하여 문제를 해결하는 방법이다.

버전별로 CSS 파일을 각각 작성하지 않아도 간편하게 낡은 브라우저에 대응할 수 있지만CSS 문법 규격에 맞지 않는것이 흠이다.

Page 70: Ie8 Web Develope Guide 1in1

CSS Hack은

미래의 다른 브라우징 장치에서 오류로 취급하지 않는다는 보장이 없기 때문에항상 주의가 필요하다.

Page 71: Ie8 Web Develope Guide 1in1

IE 5 ~ IE 7 대응#selector { property:value; *property:value; }

문서의 DTD와 무관하게 작용함.

Page 72: Ie8 Web Develope Guide 1in1

IE 5 ~ IE 6 대응#selector { property:value; _property:value; }

DTD가 없는 문서는 IE 7에도 작용함.

Page 73: Ie8 Web Develope Guide 1in1

IE 5 대응#selector { property:value; _property /**/:value; }

DTD가 표준모드인 경우에만 작용함.

Page 74: Ie8 Web Develope Guide 1in1

IE 8의 향상된 웹 표준 활용하기

Page 75: Ie8 Web Develope Guide 1in1

IE 8이

등장 했지만 낡은 브라우저와의 호환성을유지하기 위하여 향상된 표준 코드를 사용하지 않는 것은바보같은 짓이다.

Page 76: Ie8 Web Develope Guide 1in1

IE 8이

지원하는 표준 CSS 코드를얼마든지 사용할 수 있다.

Page 77: Ie8 Web Develope Guide 1in1

향상된브라우저에 향상된 스타일을 제공하고더 나은 사용자 경험을 제공 해야 한다.

Page 78: Ie8 Web Develope Guide 1in1

단,표준 코드가 낡은 브라우저에 대하여콘텐츠를 차별하는 형태로 구현되어서는 안된다.

Page 80: Ie8 Web Develope Guide 1in1

감사합니다.http://naradesign.net/

dece24앳gmail.com정찬명