Mobile 기기를 위한 문서의 DTD
인터넷 문서를 위한 마크업 언어는 유명한 Tim Berners-Lee에 의해 1991년에 발표된 HTML1.0 을 시작으로 계속 발전되어, 현재 WWW에서는 HTML4.01, XHTML1.0 을 주로 사용하고 있으며 HTML5 와 CSS3 가 표준화 작업 중에 있습니다.
하지만 모바일 기기에서 사용할 수 있는 인터넷 어플리케이션은 비교적 최근에 활발하게 개발되기 시작했으며, 이 어플리케이션에 사용되는 마크업 언어는 모바일의 특성상 열악한 환경에서도 제대로 동작할 수 있도록 스펙이 축소되고 최적화되어 있다는 특징이 있습니다. 모바일 기기의 어플리케이션 개발에 사용하는 국제 표준을 WAP(Wireless Application Protocol) 이라고 하는데요, 크게 WAP1.x (1.0 ~ 1.3), WAP2.0 세대로 나눌 수 있습니다.
WAP1.x 에서는 XML 을 기반으로 개발된 WML 이 주요 마크업 언어로 이용되었지만, WAP 2.0 부터는 XHTML의 Subset(XHTML 풀 스펙에서 모바일 용으로 적당한 일부 스펙을 그룹화함)인 XTHML-MP 가 사용됩니다. 여기에서는 모바일 전용으로 개발된 마크업 언어들의 종류와 특징을 간략하게 소개해 보려고 합니다.
(1) WAP 1.0 & WML
WAP 의 최초 버전인 WAP1.0 의 주요 언어는 WML(wireless Markup Language)입니다. 이 언어는 휴대전화 같은 모바일 기기에 최적화된 언어로 XML기반으로 설계되어 있습니다.
보통의 데스크탑/노트북 컴퓨터 등의 PC와 달리 모바일 기기는 다음과 같은 특성을 가지는데요,
- 작은 메모리 용량
- 작은 저장 공간
- 느린 CPU
- 좁은 화면크기 (주로 320*240이내의 해상도, 2~3인치 이내의 크기)
- 입력방법의 제한 (키패드만 존재하거나, 터치스크린을 사용하여 키보드가 없음)
- 전원의 시간 제한 (밧데리의 용량이 작아 기동유지시간이 짧음)
모바일 웹 1.0 이라고도 할 수 있는 WAP 1.x 체제 아래에 있던 모바일 기기(주로 휴대전화와 초기PDA)들은 지금의 그것에 비해 성능이나 화면 등의 환경이 매우 열악하였기 때문에 WWW 에서 사용되던 HTML을 그대로 사용하는 것이 어려웠습니다. 따라서 이 시기의 모바일 어플리케이션은 주로 텍스트 중심으로 모바일 기기에 특화된 WML(wireless Markup Language)를 주요 마크업 언어로 사용하였습니다.
WML은 XML 기반으로 만들어졌기 때문에 문법 검사에 매우 엄격하다는 특징을 가지고 있습니다. 또한 PC의 웹브라우저처럼 마크업의 문법 오류를 자동으로 수정하여 렌더링할 만한 CPU 파워가 부족했기 때문에, 모바일 기기에서의 마크업은 PC 에서의 HTML 과 달리 문법을 엄격하게 적용하여 제작되어야 합니다.
WML 은 다음과 같은 DTD를 사용합니다.
<?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.</p>
</card>
</wml>
WML도 HTML과 마찬가지로 하이퍼링크와 폼 요소를 가지고 있으며 HTML과 비슷한 문법을 가지고 있습니다. 하지만, HTML과 구별되는 가장 특징적인 요소로 card 와 deck 이라는 개념이 추가되어 있는데요, card는 각각의 페이지로 보면 되고 deck는 html에서의 <HTML> 자체로 보면 됩니다. 즉, WML 문서를 가리키는 하나의 deck 안에 여러개의 card를 포함하여 하나의 문서 안에 여러 페이지를 통합할 수 있습니다. 모바일에서는 통신 비용이 매우 비싸기 때문에, 그 통신 비용을 최소한으로 줄이기 위해 WML을 이용하여 한번에 여러 페이지를 미리 다운받게 하기 위해 이러한 개념이 추가된 것으로 이해할 수 있겠습니다.
WML 은 엄밀히 말하자면 HTML 처럼 웹 문서의 DTD가 아닌 모바일 기기의 응용프로그램을 개발하기 위한 언어이기 때문에 웹브라우저에 종속되는 DTD가 아닙니다. 웹문서가 아닌 어플리케이션 개발 표준이기 때문에, 모바일 기기의 응용프로그램 개발 측면에서 화면을 구성하는 용도로 많이 사용되어 왔습니다.
현재는 1.3 까지 스펙이 완료되어 있고, WAP 2.0 체제에서 사용할 수 있는 WML 2.0 규격이 개발되고 있습니다.
(2) cHTML (compact HTML)
cHTML도 WML, XHTML-MP와 마찬가지로 모바일용 마크업언어의 표준으로서 인정받고 있는데, cHTML은 일본 DoCoMo 주도로 개발되었고, HTML2.0, HTML3.2, HTML4.0의 스펙을 기반으로 하여 모바일용으로 특화된 subset입니다. 일본에서 많이 사용되었으며, cHTML 문서의 DTD의 선언은 다음과 같습니다.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD Compact HTML 1.0 Draft//EN">
cHTML 이 HTML의 subset이기 때문에 HTML과 문법이 매우 유사합니다. 자세한 스펙은 다음 URL을 참조해주세요.
http://www.w3.org/TR/1998/NOTE-compactHTML-19980209/
(3) WAP 2.0 & XHTML-MP (mobile profile)
최근의 모바일 기기의 흐름은 WQVGA해상도(400*240)을 사용하는 비교적 고성능의 휴대전화, PDA 입니다. 최신의 스마트폰으로는 애플의 iPhone, 삼성의 옴니아, 소니에릭슨의 XPERIA X1 등이 있으며 이 기기들은 VGA(640*480), WVGA(800*480) 등의 고해상도를 사용하기도 하는데요, 이와 같이 고성능을 가지는 PDA/스마트폰에 탑재되는 웹브라우저들은 PC에서 사용하는 것과 같은 Quirks mode(DTD선언하지 않음), HTML 4.01, XHTML 1.x 를 자체적으로 지원하고 있습니다.
이들 모바일 웹브라우저에서 지원하는 문서형식은 PC 에서 사용하는 HTML을 그대로 사용할 수 있으며, 사용하는 DTD선언이나 HTML문법도 같고 HTML 에서 사용되는 요소를 모두 사용하고 렌더링 할 수 있을 정도로 발전하였습니다. 또한 자체서버를 이용하여 코드를 최적화하여 보여주는 기능, 일부 요소들을 제한하여 빠른 렌더링 위주로 화면을 보여주는 기능, 모바일에 맞는 최적화된 사용자경험(UX)과 인터페이스를 제공하는 등, 각 회사별로 특화된 기능의 웹 브라우저들이 여럿 등장하여 모바일 브라우저 시장을 선점하기 위해 경쟁하고 있습니다.
하지만, 여전히 모바일 기기는 일반적으로 사용하는 데스크탑/노트북 PC보다는 훨씬 느리기 때문에, 빠른 속도와 모바일 해상도에 최적화된 모바일 전용 어플리케이션을 제작하기 위해서는 별도의 모바일용 페이지를 모바일 전용 DTD를 사용하여 제작할 필요가 있습니다.
현재 모바일 전용으로 사용될 수 있는 DTD 는 대표적으로 XHTML-MP(Mobile Profile) 이 있는데요, XHTML-MP는 WAP 2.0 체제에서의 표준 마크업 언어이며 CSS의 모바일용 subset인 WCSS와 함께 사용할 수 있습니다.
<?xml version="1.0" encoding="ks_c_5601-1987"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN"
"http://www.wapforum.org/DTD/xhtml-mobile11.dtd">
<html>
<head>
<title>기본구조</title>
</head>
<body>
<p>텍스트</p>
</body>
</html>
XHTML-MP 는 다음과 같은 과정으로 발전되어 왔습니다.
HTML 4.0 → XHTML 1.0 → XHTML Basic (모바일 환경에 맞게 XHTML의 기본기능으로 재구성함) → XHTML Mobile Profile (XHTML basic+ 추가 태그)
XHTML-MP 는 다음과 같은 특징을 가지고 있습니다.
- XHTML 스펙에서 휴대용 단말기에 최적화된 subset
- XML 기반의 문법을 사용하므로 XHTML처럼 문법 오류에 민감함
- 모바일용 DTD 중에서 가장 표현력이 뛰어남
현재 XHTML-MP 규격은 1.0 부터 개발되어 계속 버전업되어 현재는 1.3 후보(Candidate)버전까지 나와 있는데요, 버전별 특징은 다음과 같습니다.
<!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">
- 1.0 : 모바일 전용으로 특화된 XHTML 1.0 basic 규격을 기초로 하여 모바일에 최적화된 DTD로 제작
- 1.1 : ECMAScript(자바스크립트)의 mobile profile 을 지원함 (일반적으로 이 버전 사용을 추천하고 있음)
- 1.2 : 폼과 object의 지원 추가
- 1.3 : XHTML MP 1.1을 기반으로 DOM level 3 event의 지원 추가 (후보버전)
W3C에서 정한 WAP2.0 의 마크업언어는 XHTML-MP 입니다. WAP2.0에서는 WML1.x에서 나오는 card, deck의 개념과 XHTML-MP(mobile profile) 의 <body> 시스템을 혼용하여 사용할 수 있기 때문에 두 시스템의 장점을 취합하여 표현력이 높은 응용프로그램을 개발하는 것이 가능합니다.
XHTML basic, XHTML-MP 1.x 각 버전별로 지원되는 태그들은 다음 URL을 참조해주세요.
http://mobiforge.com/designing/story/comparison-xhtml-mobile-profile-and-xhtml-basic
기존의 제한이 많았던 모바일 기기의 브라우저에 비해 최근의 모바일 브라우저들은 웹에서 지원하는 스펙을 거의 모두 제공하고 있어서, 현재는 모바일 전용 웹사이트를 제작하기 위한 특별한 기술이 필요하다던가, 특별히 다르게 제작해야 한다던가 하는 제약사항이 크게 줄어들었습니다.
하지만 아직까지 모바일 기기와 노트북/데스크탑 등의 PC 와는 성능/화면 상의 제약이 큰 편이기 때문에, 모바일용 어플리케이션과 모바일 웹브라우저에서 접속할 수 있는 사이트를 제작하고자 한다면, 현재로서는 모바일용 DTD로 가장 많이 사용되는 XHTML-MP 1.1 을 사용하여 전용 사이트를 제작하는 것이 가장 효율적이라고 판단할 수 있겠습니다.
감사합니다~