26
2월
2009

모바일을 위한 DTD의 종류와 특징

모바일 기기는 다음과 같은 특성을 가집니다.

적은 메모리 용량, 적은 저장 공간, 작은 스크린 사이즈, 느린 CPU, 입력방법의 제한, 전원(밧데리)의 시간 제한

초기의 모바일 기기들은 웹을 사용하기에는 성능이나 메모리, 스크린사이즈가 매우 조악하였기 때문에 모바일 기기에 특화된 언어로 WML(wireless Markup Language)를 사용했습니다. 현재 쓰이는 HTML 과는 차이가 있으며, XML기반으로 만들어졌기 때문에 문법 검사에 매우 엄격합니다.

Deck, Card 라는 특이한 개념(페이지와 유사하여, 하나의 WML문서에 여러개의 card를 만들어 여러페이지의 문서를 만들 수 있음)을 제외하면 사용되는 태그는 HTML 과 유사한 면이 있지만, 문법검사가 XHTML과 비슷하여 xml 문법을 따르기 때문에 문법 오류가 자동 수정되지 않습니다.

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//PHONE.COM//DTD WML 1.1//EN" "http://www.phone.com/dtd/wml11.dtd" >
<wml>
<card id="main">
<p mode="wrap">This is a sample WML page.
</card>
</wml>

더 정확하게 하자면 WML 은 HTML 처럼 문서의 DTD가 아닌 모바일 기기의 응용프로그램을 개발하기 위한 플랫폼이기 때문에 DTD로 분류되기에는 좀 애매하지요.

대신 웹브라우저를 위한 문서가 아니라 모바일 앱을 개발하기 위한 DTD이면서 HTML의 장점을 가져오는 것이 가능합니다.
현재 WML 2.0 규격이 있으며 WML 1.x 규격과 XHTML-MP 의 body시스템을 혼용하여 사용할 수 있기 때문에 두 시스템의 장점을 모두 취할 수 있습니다.

위에 언급했던 것처럼, 모바일 기기의 특성 상 보통 PC의 웹브라우저들이 지원하는 Quirks mode, HTML4.01, XHTML1.0 등을 full-spec으로 폭넓게 지원하는 것이 어렵습니다.
모바일 기기에서도 PC와 마찬가지로 Quirks mode (DTD선언하지 않음), HTML4.01, XHTML1.0 을 지원하고 있지만, 모바일 브라우저에서도 각 DTD에 맞게 문서를 적절히 처리하려면 모바일용 DTD를 넣는 것이 좋습니다.

그래도 모바일용의 웹브라우저에서 표준을 지원하는 DTD가 있긴 있었는데 이것이 XHTML mobile profile 입니다. HTML5와 차세대 경쟁을 했던 그 xhtml의 모바일 버전이지요.
PC 의 그것과 비교하면 HTML 4.01 strict 에 가깝습니다.

XHTML mobile profile 규격은 세가지가 있습니다.

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN"
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd">

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN"
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd">

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN"
"http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">

각각의 차이는 다음과 같습니다.

versiondescription
1.0PC에서 사용되는 XHTML 1.0 basic 규격을 기초로 하여 모바일에 최적화된 DTD로 제작
1.1ECMAScript(자바스크립트)의 mobile profile을 지원함
1.2폼과 object의 지원 추가

W3C에서 정한 WAP2.0규격에서 사용하는 마크업언어는 XHTML-MP 입니다. WML 2.0에서는 기존 page개념을 가지고 있는 wml1.x 규격과 보통 HTML문서에서 사용되는 body 속성을 동시에 이용할 수 있습니다.
만약 모바일 웹브라우저에서 접속할 수 있는 사이트를 제작하고자 한다면 대부분의 태그와 속성을 지원하는 XHTML-MP 1.2 규격을 사용하는 것이 가장 적절합니다.

모바일 쪽의 발전은 다음과 같이 가지가 쳐져서 발전했다고 보면 됩니다.

HTML 4.0 -> XHTML1.0 -> XHTML Basic(모바일 환경에 맞게 XHTML의 기본기능으로 재구성함) -> XHTML Mobile Profile (XHTML basic+ 추가태그)

Ps. 모바일에서는 PC와는 성능 차이가 많기 때문에 스펙의 제한이 많습니다. 대표적으로 CSS속성이 지원이 안되는 것이 많기 때문에 (심지어 display:inline-block, position:fixed 같은 속성) 개발 시에 대부분의 웹브라우저가 모두 지원하는 보편적인 속성을 사용하는 것이 좋습니다.

참고 : XHTML basic, XHTML-MP 1.x 각 버전별로 지원되는 태그의 차이점 https://mobiforge.com/design-development/comparison-xhtml-mobile-profile-and-xhtml-basic

Ps 2. 이젠 이런 번거로운 규격이 없어졌고 모바일 단말기들의 성능도 훨씬 발달했기 때문에 <!doctype html> 으로 사용하면 됩니다.
스마트폰 시대와 iOS, Android의 세계가 되면서 이제 모바일용 DTD는 유명무실화 되었지요.

<!DOCTYPE HTML>

You may also like...

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

%d 블로거가 이것을 좋아합니다: