NATE WAP Content 개발규격서 [ver4.5] 2002 년 4 월 자료배포범위본자료는 SK 텔레콤에 WAP NATE 컨텐츠제공을위한 WAP 개발자들에게공급되며 SK 텔레콤의동의없이무단으로배포및변경할수없습니다. 기술문의본개발규격서에대한기술문의사항은 wapmaster@sktelecom.com 으로해주시기바랍니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 1
문서이력 1. NATE WAP Contents 규격서 (Version 3.0) 작성및 CP 배포 : 2000 년 3 월 2. NATE WAP Contents 규격서 (Version 4.0) 작성 : 2001 년 9 월 - STI 통합관련 Cookie 변경 - 즐겨찾기추가관련 Soft 작성규격추가 - 상위메뉴연결규격추가 - 과금규격추가 3. NATE WAP Contents 규격서 (Version 4.1) 작성 : 2001 년 9 월 - 즐겨찾기및상위메뉴연결규격수정 - 상위메뉴연결 URL 명변경 (dsplstupper) - 상위메뉴연결 Parameter 명축약변경 ( SKTUPPER=>SU, SKTMENU=>SM) - 검색에서의상위메뉴예외처리추가 - 검색에서의 CP 권고안추가 4. NATE 브랜드출시에따른규격변경 (Version 4.2) - n.top -> NATE 변경 - 도메인변경 5. 나만의메뉴및즐겨찾기통합에따른규격변경 (Version 4.3) - CP 의즐겨찾기추가를나만의메뉴추가로이름변경 6. 나만의메뉴추가및즐겨찾기통합에따른규격변경 (Version 4.4) - CP 의나만의메뉴추가앞에 > 부호를넣지않도록규격변경 - CP 단에 SU 나 SM 값이 NULL 로내려갈경우,CP 역시 NULL 로리턴하도록하는내용 명시 7. 나만의메뉴추가예제변경 (Version 4.41) - Get 방식으로나만의메뉴추가시의예제변경 8. Version 4.5 - 유효하지않은 WAP 개발 Tool 설명삭제 - SU,SM 값을 CP 의모든페이지의 URL 에붙이도록규격변경 - 과금페이지를보여주지못했을때 200 OK 가아닌경우과금하지않는방법명시 - Segmentation Service 에대한간략한소개 This Document is copyrighted by SK Telecom and may not be reproduced without permission 2
3 목차 4 1.WAP 개요... 5 1.1 WAP 탄생배경...5 1.2 WAP Forum & WAP Development Group......5 1.3 WAP Programming Model...5 1.4 WAP System Architecture...6 1.5 WAP Protocol Stack...6 1.6 WAP Markup Language...7 1.7 WMLScript...7 1.8 WML Contents 기본구성...7 2. WML & WMLScript... 8 2.1 WML (Wireless Markup Language).........8 2.2 WML 사용예제...14 2.3 WMLScript...18 2.4 SKT WML Script Extension (Mandatory)...20 3. WBMP...21 4. WML컨텐츠구축방안...21 4.1 WEB SERVER설정......21 4.2 일반사항...23 4.3 do type= vnd.??? 사용을통한메뉴구성방법...23 4.4 Multi Card 구성...24 4.5 CP초기메뉴구축...25 4.6 WML 컨텐츠내용최적화...26 4.7 WAP 사용자정보제공포멧.....26 5. WAP 컨텐츠 CP 등록...27 5.1 서비스등록절차...27 5.2 외부 CP가단말의전화번호및단말모델을인식해야할필요가있는경우...28 5.3 CP의서비스 TRANSACTION성공여부 message처리에관한지침...28 6. UI(User Interface) 공통...29 6.1 상위메뉴연결규격....29 This Document is copyrighted by SK Telecom and may not be reproduced without permission 3
6.2 상위메뉴연결값....31 6.3 검색에서의상위메뉴처리 ( 예외처리 )...32 6.4 나만의메뉴... 34 6.5 나만의메뉴추가링크예......35 6.6 나만의메뉴 LINK 대상......36 7. 정보이용료과금방법......36 7.1 정보이용료과금규격...37 7.2 CP 과금 URL 적용규칙......37 7.3 CP 개발고려사항......39 8. 검색서비스활성화를위한 Contents 구성및문서수집...40 8.1 검색Robot의문서수집방법...40 8.2 검색대상에서의제외처리방법 (WAPRobot의접근제한설정 )...41 8.3 검색페이지에서사용자가 CP URL로페이지내용을확인하는경우...43 8.4 정확한검색을위한문서제목처리 ( 권고사항 )......43 This Document is copyrighted by SK Telecom and may not be reproduced without permission 4
1.WAP 개요 1.1 WAP 탄생배경 무선통신사용자의급증 Any Where, Device Limitation, Air Link Limitation 유선인터넷의급속한발전 WAP 의탄생 Powerful Device, Stable Service, Non Mobility 무선망환경과 Handheld Device 에최적화된새로운개념의통신접속기술개발필요 WAP Forum 결성 : 통신 Major 4 개社주축으로구성 (Phone.com,Ericsson,Nokia,Motorola) 1.2 WAP Forum & WAP Development Group Board Member Members Phone.com, Ericsson, Nokia, Motorola, Microsoft 이동통신관련社 : Nokia, Ericsson,... 시스템관련社 : HP, IBM, Oracle,... 보안인증관련社 : RSA, Certicom,... 소프트웨어관련社 : MS, Symbian,... 기타업체 : Visa, Amazon,... 1.3 WAP Programming Model WWW Programming Model WAP Programming Model Client : Web Browser & PC Web Server : HTML, CGI, JavaScript 지원 Client : WAE User Agent & Handheld Device Origin Server : HDML, WML, WMLScript 등지원 Gateway : Protocol Conversion (WAP <> WWW) Compact Contents Encoding This Document is copyrighted by SK Telecom and may not be reproduced without permission 5
그림 1. WAP Programming Model WAP 지원기능 무선망환경에서제한된성능의단말기와서버와의데이터통신의최적화를위한 Protocol Layer 별인증, 암호화, 압축기능등을지원 Call Control 기능, XML, Java, SIM-Card, Multimedia Contents 지원 1.4 WAP System Architecture User(WAP Client) SKT Network Internet & PSTN WAP Gateway WAP & WEB Server Phone & FAX WAP Client WAP Gateway WAP&WEB Server 1.5 WAP Protocol Stack 그림 2. WAP System Architecture 소형, 경량을고려한최소한의메모리, CPU 소모 Micro browser 와 soft key 를이용한, 편리한 UI 제공 Wireless Network 와 Internet Server 간의정보흐름제어 Proxy 및 DNS 기능수행. 가입자및과금관리기능 WML 또는 HTML 등을이용한 Contents 구성및정보제공 WAP contents provider 들의정보제공서버 This Document is copyrighted by SK Telecom and may not be reproduced without permission 6
그림 3.WAP Protocol Stack 1.6 WAP Markup Language Tag-based browsing language: Screen management (text, images) Data input (text, selection lists, etc.) Hyperlinks & navigation support W3C XML-based language Inherits technology from HDML and HTML Card metaphor (Explicit inter-card navigation model) State management and variables Reduce network traffic Results in better caching 1.7 WMLScript Scripting language: Procedural logic, loops, conditionals, etc. Optimized for small-memory, small-cpu devices Derived from JavaScript Integrated with WML Powerful extension mechanism Reduces overall network traffic Bytecode-based virtual machine Compiler in network Better network bandwidth use Better use of terminal memory/cpu 1.8 WML Contents 기본구성 This Document is copyrighted by SK Telecom and may not be reproduced without permission 7
Navigation Variables Input Elements <WML> <CARD> <DO TYPE= ACCEPT > <GO URL= #ecard /> </DO Welcome! </CARD> <CARD NAME= ecard > <DO TYPE= ACCEPT > <GO URL= /submit?n=$(n)&s=$(s) /> </DO> Enter name: <INPUT KEY= N /> Choose speed: <SELECT KEY= S > <OPTION VALUE= 0 >Fast</OPTION> <OPTION VALUE= 1 >Slow</OPTION> <SELECT> </CARD> </WML> Card Deck 그림 4. WAP Contents 2. WML & WMLScript WML 과 WMLScript 는 WAP contents 를구성하는기본 Markup Language 와 Script Language 입니다. 일반유선인터넷상의 HTML 과 VBScript 또는 JavaScript 과개념이유사하며그구조및의미는훨씬간단한형태를가집니다. 다음은각각에대한개략적인개념과 Sample 을설명하며자세한 Spec 에대한정보는 WAP Forum Site 에서 Download 받을수있습니다.(http://www.wapforum.org/what/technical.htm) 2.1 WML (Wireless Markup Language) WML 은 XML 언어에기반을둔 markup 언어입니다. WML 은컨텐츠를특징지으며또한셀룰러폰이나호출기처럼제한된성능의장치를위한사용자인터페이스를위해개발되었습니다. WML data type Character data WML 로쓰여지는모든문자 data 는 XML 데이터타입에기초하여정의됩니다. Length Length type 은화면에대해수직이나수평상의수치를숫자나 % 기호로표기하는타입입니다. 예를들어 50 이라고하면화면픽셀을나타내고 50% 라고하면기준화면의폭에서 50% 의폭을의미합니다. Vdata 변수타입. Flow,inline and layout *layout type 줄바꿈과같은텍스트의레이아웃을정의하는데쓰는타입입니다. *inline type 순수텍스트나변수가다루어지는곳에서만쓰는타입입니다. *flow type 분기나제어에관련된곳에서사용하는타입입니다. Text 일반적인문자열을의미합니다. Href 연결하는고리역할을합니다. <go href="http://wapforum.org/"/> This Document is copyrighted by SK Telecom and may not be reproduced without permission 8
Boolean 논리적인값 ( 참 / 거짓 ) 을나타냄니다. Number 숫자를나타냄니다. Emphasis 지정된문자열을꾸미기위해사용됩니다. 예를들어 underline 이나이탤릭체 등으로나타낼려고할때. WML character set XML 과 WML 을위한문서문자셋은 ISO/IEC-10646 의다국적인문자셋입니다. 현재이문자셋은 Unicode 2.0 과일치합니다. Reference Processing Model Character entities and special characters WML 문서는 HTML 4.0 에서정의된어떠한문자 encoding 으로부호화할수있습니다. 주어진문자 encoding 은문서문자셋의모든문자들을표현할수없을지도모릅니다. 그런 encoding 에대해서또는장치의특수함이유저로하여금직접어떤문서문자를입력하지못하게할때, 당신은문자엔터티를사용할지도모릅니다. 예를들어다음과같은문자엔터티를지원합니다. *Named character entities: &, < *10 진 character entities: { *16 진 character entities:  예제 <?xml version="1.0"?> WML sysntax <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml"> <wml> <card id="card_1"> <p> Numerically 5 < 10 </p> </card> </wml> 결과화면 Numerically 5 < 10 Entities 모든엔터티는 & 로시작해서 ; 으로끝납니다. 예를들어 &, ",< 등. Tags 태그는요소를묘사해주는언어입니다. 태그는 < 와 > 로둘러싸인형태를취합니다. Elements Elements 는 WML deck 에대해서모든 markup 과구조적인정보를명시합니다. Attributes WML attributes 는어떤요소에대한추가적인정보를명시합니다. attributes 는향상요소의시작태그에명시됩니다. 예를들면다음과같습니다. <tag attr="value"/> Comments 주석을처리하기위해사용합니다. 사용법은다음과같습니다. <! 주석부분 --> Variables 변수는다음과같이사용됩니다. $identifier $(identifier) $(identifier:coversion) Case sensitivity 다음에있는 attribute 값들은다릅니다. Id= Card1 This Document is copyrighted by SK Telecom and may not be reproduced without permission 9
WML 에서의첫번째단계 Id= card1 Id= CARD1 Cdata section Cdata 는 <! [cdata [ 로시작해서 ]]> 로끝납니다. Card and Deck Cards 는 decks 안으로함께묶어집니다. 한개의 deck 은서버가한사용자에보낼수있는 WML 의가장작은단위입니다. Template WML deck 는한 deck 의모든 cards 에적용되는 deck 레벨특성을정의하는 template 를포함할수있습니다. 각개별적인 card 에서당신은같은이름하에서같은특성을묘사함으로써이러한특성들을밀고나아갈수있습니다. WML and URLs WML 에서 URLs 는 navigation( 예를들어 hyperlinking) 나외부자원 ( 이미지, 스크립트 ) 을묘사할때사용됨니다. Fragment anchors WML 은한 WML deck 로각각의 WML cards 를식별하기위해 fragment anchors 를사용합니다. <go href="#next_card"/> Relative URLs WML 은 RFC2396 에명시된것과같은동류의 URLs 의사용을채택했습니다. <wml> <card> <do type="options" label="options"> <go href="/options"/> </do> <!-- rest of the card --> </card> </wml> History WML 은당신이반대편으로효율적인항해가되도록단순한항해기록모델을포함합니다. WML elements Decks and cards WML data 는 cards 의모음으로구조화됩니다. Common attributes 모든 WML 요소는두개의중요한속성, id 와 class 를가지는데이두가지는서버쪽으로의변환과같은작업을하는데사용될수있습니다. Document header 유효한 WML deck 은유효한 XML 문서입니다. 따라서 XML 선언과문서타입선언을포함해야합니다. 전형적인문서 header 는다음을포함합니다. <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml"> Wml element WML 요소는한개의 deck 를정의합니다. 또한모든정보와 deck 안에 cards 를가지고있습니다. Card element WML deck 은 cards 의모음을포함합니다. 거기에는여러종류의 card type 이있으며각각은사용자상호작용의다른방법을묘사하고있습니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 10
Template element Template 요소는그 deck 의 cards 에대한 template 를선언합니다. Template( 예를 들어 or 나 onevent 와같은 ) 에묘사된 Event binding 은그 deck 의모든 card 에 적용됩니다. template 에있는 Event binding 을묘사하는것은모든 card 에 묘사하는것과동일합니다. Head element Head 요소는전체적으로 deck 과관련된정보를포함하고있습니다. Access element Access 요소는전체 deck 을위한접근제어정보를묘사합니다. Meta element Meta 요소는 WML deck 과관련된일반적인 meta 정보를포함하고있습니다. Meta 정보는적당한이름과값으로묘사됩니다. Events WML 은 user agent events 의진행을묘사함으로써항해와이벤트를다룰수있도록몇가지요소를 포함하고있습니다. 예를들어, 어떤이벤트가발생할때연관된작업이실행될수있기위해서이벤트와 작업을연결할수도있습니다. 당신은 URL 항해와같은여러가지일들을묘사할수있습니다. 이벤트 바인딩은몇가지요소들-do 와 onevent 를포함 -에의해구현될수있습니다. Do element Do 요소는사용자에게현 card 에서의조작을실행하기위한일반적인매카니즘을 줍니다. Ontimer event Ontimer 이벤트는내부에다음과같은요소들이묘사될수있습니다.(card, template) 이벤트는타이머가만료될때발생합니다. Onenterforward Event Onenterforward 이벤트는 go task 나식별적인의미를가진수단을사용하여 card 에사용자가들어올때발생합니다. Onenterbackward event Onenterbackward 이벤트는 prev task 나식별적인의미를가진수단을사용하여 card 안으로사용자가항해할때발생합니다. Onpick event Onpick 이벤트는이벤트가묘사된아이템을사용자가선택하거나재선택할때 발생합니다. Onevent element Onevent 요소는직접포함하는요소에대해특수한본질적이벤트에 task 를 묶습니다. Postfield element Postfield 요소는 URL 요청동안원시서버로의전송을위한필드이름과값을 묘사합니다. Card and deck intrinsic events card and deck task overrride 에정의된최우선의의미론을사용하는 card 와 deck 양쪽에 onenterforward 와 onenterbackward 본질적인이벤트를설명할수있습니다. 한 card 에대해서이벤트바인딩을만들기위한여러가지요소를사용할수있습니다. Card and deck task override Tasks WML 은특별이명시된 Card 나 deck 으로의진행과같은어떤이벤트가발생할때실행될수있는 task 를설명하도록해줍니다. Go task Go 요소는지정된 URL 이나 WML card 또는 deck 를실행합니다. Prev task Prev 요소는 history stack 에있는기록을기준으로해서이전 URL 이나 WML card 또는 deck 로이동합니다. Refresh task Refresh 요소는 HTML 브라우져에서의새로고침과같은기능입니다. Noop task No operation Variables WML 변수는문자열대신사용될수있으며현재가지고있는값을실행시간에서치환됩니다. Setvar element Setvar 요소는변수의값을변경해줍니다. Naming variables WML 에서변수이름지정은다음과같이합니다. $identifier $(identifier) $(identifier:coversion) Validating variables $ 의적법한사용법. 다음은잘못된변수사용예입니다. <!-- bad variable syntx --> Balance left is $10.00 <!--bad placement (in the type attribute) --> <do type="x-$(type)" label="$type"> This Document is copyrighted by SK Telecom and may not be reproduced without permission 11
Restricting variables context Setting variables 변수값을셋팅하는방법은다양합니다. 어떤변수가셋팅되어있고브라우져 context 에정의되어있을때현재값은변경됩니다. WML 요소에서변수값을모양있는 text, option values, href attribute 로치환할수있습니다. Substituting variables Parsing the variable substitution syntax User input WML 에서사용자입력을다루는방법 Input element 사용자로부터값 ( 문자열, 숫자등 ) 을얻을수있는태그. < 일반적인형식 > <input name= 1 type= 2 format= 3 value= 4 /> 1 : 변수의이름 2: 입력되는값의 type 선언문자열이면 text 로암호면 password 로입력 3: 입력되는값의 form 선언영문대문자 or.( A ), 영문소문자 or.( a ), 숫자 ( N ), 영문대문자 ( X ), 영문소문자 ( x ) 4 : 초기값설정 < 예제 1> <input name="x" type="text" maxlength="32"/> 변수의이름은 X 이고입력되는값은문자열 (text) 이며최대길이는 32 를뜻합니다. Select element Select list 는사용자가선택사항리스트에서어떤항목을선택할수있도록해줍니다. < 예제 > 변수 I 가이전에설정되었다면 dog 와 cat option 은먼저선택되어집니다. <wml> <card> <p> Please choose <i>all</i> of your favorite animals: <select name="x" iname="i" ivalue="1;2" multiple="true"> <option value="d">dog</option> <option value="c">cat</option> <option value="h">horse</option> </select> </p> </card> </wml> Option element Option 요소는 select 구문에서선택할수있는개별항목들을묘사합니다. < 예제 > 사용자가 dog option 을선택했다면변수 X 는 D 값으로설정됩니다. <wml> <card> <p> Please choose your favorite animal: <select name="x"> <option value="d">dog</option> <option value="c">cat</option> </select> </p> </card> </wml> Optgroup element 단일항목의 option 구를그룹으로묶어처리할수있습니다. < 예제 > <wml> <card id="card1" title="country"> <p> Select a country: <select name="country" multiple="true" tabindex="2"> <optgroup title="scandinavia"> <option value="den">denmark</option> This Document is copyrighted by SK Telecom and may not be reproduced without permission 12
<option value="fin">finland</option> <option value="nor">norway </option> <option value="swe">sweden </option> </optgroup> <optgroup title="europe"> <option value ="fra">france </option> <option value ="ger">germany</option> <option value ="ita">italy </option> <option value ="spa">spain </option> </optgroup> </select> </p> <do type="accept" label="next"> <go href="#card2"/> </do> </card> </wml> Fieldset element Fieldset 요소는관련된필드와 text 를묶을수있게해줍니다. Anchors, imasges and timers Anchor element anchor 요소는다른요소로연결시켜주는역할을합니다. HTML 에서하이퍼링크와같습니다. A element 1 과 2 는같습니다. 1 <anchor>follow me <go href="destination"/> </anchor> 2 <a href="destination"> follow me</a> Img element img 요소는그림파일을보여주기위해사용합니다. < 예제 > 현재디렉토리에있는이미지파일 rainy.wbmp 를불러옵니다. <img src="rainy.wbmp" alt="rain"/> Timer element timer 요소는 card timer 를실행합니다. 그것은정지나쉬고있는시간을처리하는데사용됩니다. Text formatting White space 이것은 WML 사용자가다중의모호한 space, returns, line 을단어들사이에독립 space 로변환하는것을의미합니다. Emphasis elements 문자열따위를특별히강조하기위해사용하는요소입니다. ( 밑줄 : u, 이탤릭체 : I, 강조 : strong, 진하게 : b, 큰폰트 : big, 작은폰트 : small ) Br element 줄바꿈처리를해주기위해사용합니다. (<br/>) P element 한문단을나타내주기위해사용합니다. (<p>.. </p>) Table element 표를나타내주기위해사용합니다. 보통 <tr> 태그와 <td> 태그와함께사용됩니다. < 예제 > <wml> <card id="card1" title="weather Forecast"><p> <table columns="3"> <tr> <td>day</td><td>wthr</td><td>temp</td></tr> <tr> <td>m 6/7</td><td><img src="rainy.wbmp" alt="rain"/></td> <td>25' C</td> </tr> <tr> <td>t 6/8</td><td><img src="partcldy.wbmp" alt="partcldy"/></td> <td>27' C</td></tr><tr> <td>w 6/9</td><td><img src="cloudy.wbmp"alt="cloudy"/></td><td>24' C</td></tr> <tr> <td>t 6/10</td><td><img src="rainy.wbmp" alt="rainy"/></td> <td>28' C</td> </tr> <tr> <td>f 6/11</td><td><img src="sunny.wbmp" alt="sunny"/></td> <td>29' C</td></tr> </table> </p> </card> </wml> < 결과화면 > This Document is copyrighted by SK Telecom and may not be reproduced without permission 13
Tr element tr 요소는 table 의행을나타내주기위해사용합니다. <tr>.. </tr> Td element td 요소는한행의열 ( 셀 ) 을나타내주기위해사용합니다. <td>.. </td> 2.2 WML 사용예제 예제 1) 메뉴화면 Sample (1) WML Source <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml"> <wml> <card newcontext="true" id="start"> <do type="accept"> <go href="#services"/> </do> <p> Ericsson<br/> Wireless<br/> e-commerce </p> </card> <card id="services" newcontext="true"> <do type="options"> <go href="#start"/> </do> <p> <select name="which"> <option onpick="bank_serv.wml">banking</option> <option onpick="movie.wml">tickets</option> <option onpick="blackjack.wml">black Jack</option> <option onpick="currency.wml">currency</option> <option onpick="#load">load URL</option> </select> </p> </card> <card id="load"> <do type="accept"> <go href="$where:n"/> </do> <p> Enter URL:<br/> <input type="text" name="where"/> </p> </card> </wml> (2) WML 설명본예제는메뉴를보여주고선택시해당 WML 문서를호출하는 WML 문서입니다. <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml"> ( 설명 ): <! ~~ 설명 ~~> 는주석처리하기위한태그입니다. 주석부분을 <! 와 > 사이에입력하면됩니다. <wml>.. </wml> ( 설명 ): WML 문서는 <wml> 로시작해서 </wml> 로끝남니다. <card newcontext="true" id="start">.. </card> ( 설명 ): <card> 태그는일종의블록이라고생각하시면됩니다. 처리되는화면마다 <card> 태그로만들수있습니다. WML 문서에서 <card> 태그는한개이상나올수있습니다. <do type="accept">.. </do> This Document is copyrighted by SK Telecom and may not be reproduced without permission 14
( 설명 ): 어떤이벤트 ( 확인버튼, 옵션버튼등 ) 가발생했을때처리할내용을기술합니다. <go href="#services"/> ( 설명 ): 분기할경로로이동합니다. 보통 WML 문서나 CGI 프로그램을호출하게됩니다. 여기서는 card 태그 id 가 services 인곳으로이동합니다. <p>.. </p> ( 설명 ): 화면에나타나는 Text 를표시할때 <p> 태그를사용합니다. <br/> ( 설명 ): <br> 태그는줄만바꿔주는역할을합니다. 주의할점은 HTML 태그에서는 <br> 이라는점. <select name="which"> <option onpick="bank_serv.wml">banking</option> <option onpick="movie.wml">tickets</option> <option onpick="blackjack.wml">black Jack</option> <option onpick="currency.wml">currency</option> <option onpick="#load">load URL</option> </select> ( 설명 ): HTML 에서보면 radio button 이생각나실겁니다. radio button 기능에스크롤기능을덧붙인기능입니다. 예를들어 Tickets 을선택하시면 movie.wml 을 예제 호출합니다. <input type="text" name="where"/> ( 설명 ): HTML 태그의 <input> 태그와동일합니다. 예를들어문자나숫자를입력할때사용하는태그입니다. 2) 변수사용하기 Sample (1) WML Source <! deck1.wml --> <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml"> <wml> <card id="card1" title="first Card" newcontext="true"> <p> Card 1... <br/> <!-- The following variables will not be defined until the other cards in this deck are entered.--> card1 var1 = $(card1_var1) <br/> card2 var1 = $(card2_var1) <br/> card3 var1 = $(card3_var1) <br/> <do type="accept" label="next Card"> <go href="#card2"> <setvar name="card1_var1" value="val_1"/> </go> </do> </p> </card> <card id="card2" title="second Card"> <p> Card 2... <br/> card1 var1 = $(card1_var1) <br/> card2 var1 = $(card2_var1) <br/> card3 var1 = $(card3_var1) <br/> <do type="accept" label="first Card"> <go href="#card1"/> This Document is copyrighted by SK Telecom and may not be reproduced without permission 15
</do> <do type="accept" label="third Card"> <go href="#card3"> <setvar name="card2_var1" value="val_2"/> </go> </do> <do type="prev" label="previous Card"> <prev/> </do> </p> </card> <card id="card3" title="third Card"> <onevent type="onenterforward"> <refresh> <setvar name="card3_var1" value="val_3"/> </refresh> </onevent> <p> Card 3... <br/> card1 var1 = $(card1_var1) <br/> card2 var1 = $(card2_var1) <br/> card3 var1 = $(card3_var1) <br/> <do type="prev" label="previous"> <prev/> </do> </p> </card> </wml> (2) Source 설명이예제에서는사용자가 deck 에들어갈때다음과같은사용자인터페이스를생성합니다. 이단계에서는값을가지는변수는없다는것을주목하십시오. Options 버튼을눌러 Next Card 를선택할수있습니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 16
Next Card 를선택하기위해 Select 버튼을누르십시오. card1 var1 은값 val_1 을가지고있지만다른두변수들은아직값을가지고있지않습니다. Options 버튼을눌러 card2 에있는 do 요소가나타내는 option card 를보낼수있습니다. 당신은지금첫번째나세번째 card 를진행할수있습니다. 당신이표시하고싶은 card 를선택하기위해상하방향버튼을사용하십시오. 그리고나서 Select 하십시오. 세번째 card 에들어왔을때값을가지는세변수모두를볼수있습니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 17
Back 버튼을두번눌러서첫번째 card 로되돌아갈수있습니다. 이제첫번째 card 는세변수모두에대하여값을포함합니다. 2.3 WMLScript 1) 개요 WML Script 는 WAP 아키텍쳐에일반적인스크립팅기능을제공하기위해설계되었습니다. 구체적으로말하면 WML 을보충하기위해 WML Script 를사용할수있습니다. WML Script 는 XML 에기초를둡니다. 모빌폰처럼제한된성능의장치들을위한응용컨텐트를묘사하기위하여설계되었습니다. 게다가사용자인터페이스를더흥미있고읽기쉽게 만들기위해단순한 formatting 을이용할수있습니다. 하지만모든컨텐트는정적이며 WML 그자체를수정하는일없이언어를확장하는방법은없습니다. 다음리스트에 WML 이지원하지않는몇가지특징을포함하고있습니다. 사용자입력의적절성검사 사용자 agent 의편의기능접근. 예를들어모빌폰에서프로그래머가다음과같은것을가능하도록해줍니다. : 전화하기, 메시지보내기, 주소록에전화번호추가하기, SIM card 실행하기. 메시지와대화의일반화하기. 경고, 에러메시지, 확인등을사용자가더빨리볼수있도록해줍니다. 사용자 agent 소프트웨어에대한확장을가능하게해줍니다. 2) WML Script 상세설명 WML Script WML Script 일반적인 type, 변수, 표현식, 구문의개관을제공합니다. WML Script 와 URLs WWW 는세부분의묘사가광범위한정보처리상호운용을확실하게하는데이터베이스와장치의네트웍입니다. 통일된네이밍모델 정보를보내는표준프로토콜 표준 content type Lexical 구조 Content types Content types 는 WML Script 편집유니트, 원문, 2 진엔코딩을묘사합니다. Case sensitivity White space and line breaks 세미콜론의사용주석주석처리하기위해 // 를사용하거나 /* 와 */ 사이에주석문장을입력할 This Document is copyrighted by SK Telecom and may not be reproduced without permission 18
변수와데이터 Type 수있습니다. Literals WML Script 는문자, 정수, 소수점, 문자열, 논리값의 4 가지타임을지원합니다. Identifiers 예약어는식별자로사용할수없습니다. Reserved words( 예약어 ) 시스템에서미리정해놓은명령어 Name spaces 변수는데이터값과연관된이름입니다. 프로그램데이터를저장하고다루기위해변수를사용할수있습니다. WML Script 는내부함수를선언할때또는함수매개변수를보낼때만지역변수를지원합니다. 할당연산자 > 변수에값을지정할때사용됩니다. (=) 산술연산자 > 수학적인계산을할때사용됩니다. (+,-,*,/, div) 논리연산자 > 논리연산을할때사용됩니다. (&&,,!) 문자열연산자 > 문자열결합등의문자열대상으로연산할때사용됩니다. 비교연산자 > 크기비교연산자 (<,<=,==,>=,>,!=) 배열연산자 > 문자열을배열요소로해서작업을합니다. 콤마연산자 > 콤마는함수호출에서매개변수를분리하기위해사용됩니다. > 변수선언에서는다중변수선언을분리하기위해사용됩니다. 조건연산자 > 조건을다루는연산자입니다. Typeof 연산자 > Typeof 연산자는주어진표현식의타입을묘사하는정수형 값을되돌려줍니다. Isvalid 연산자 > 주어진표현식의타입을검사하기위해사용됩니다. 함수 WML Script 에서사용되는함수사용법입니다. < 형식 > externopt function Identifier (FormalParameterListopt) Block ;opt < 예제 > function currencyconverter (currency, exchangerate) { return currency*exchangerate; }; extern function testit() { var USD = 10; var FIM = currencyconverter(usd, 5.3); }; Statements WML Script statements 는표현식과적절한문법으로사용된키워드로 구성되어 있습니다. 여기에는 empty statement, expression statement, 블록 statement, break, continue, for, if..else, return, var, while 등이있습니다. 라이브러리 라이브러리는 논리적으로 함께 포함되어 있는 일련의 함수로 명명됩니다. Pragmas WML Script 는번역 unit level 정보를표시하는 pragmas 의사용을 지원합니다. Pragmas 는어떤함수선언이전의번역 unit 의시작부에명시됩니다. 자동 data type 변환법일반적인변환법 각 WML Script 연산자는 operand 타입의미리정해진 set 을받아 This Document is copyrighted by SK Telecom and may not be reproduced without permission 19
들입니다. 만약제공된 operand 가올바른 data 타입이아니라면 자동적인변환이발생합니다. 연산자 data type 변환법 변환법은두데이터 type 사이에서적법한변환이가능할때묘사됩니다. WML Script 연산자는이러한규칙, operand 데이터 type, 실행된연산을선택하기위한값을사용합니다. WML Script 표준라이브러리 Typographical conventions 라이브러리는다음과같은정보에의해표시됩니다. Name: 라이브러리이름. 라이브러리이름은 case-sensitive 합니다. 설명 : 라이브러리의간단한설명과사용된 conventions WML Script 따르기 명시된라이브러리함수들은 WML Script convention 과규칙을따라야만 합니다. Lang library 이라이브러리는 WML Script 언어핵심과가까이관련된일련의 함수들입니다. < 예 > abs(): 절대값, min(): 최소값, max(): 최대값.. 실수 library 이라이브러리는일련의응용프로그램이자주사용하는산술적인소수점 함수를포함합니다. < 예 > int(): 정수값, floor(): 반올림, ceil(): 완전올림수, pow(): 거듭제곱.. 문자열 library 문자열의 길이 구하기, 문자열 결합, 문자열 복사를 실행하는 라이브러리제공. < 예 > length(): 문자열길이, isempty(): 해당문자열의공백검사, charat(): 문자추출, substring(): 부분문자열, find(): 문자검색, replace(): 문자변경.. URL library 절대 URLs 와관련 URLs 를다루기위한일련의함수들을 포함하고있습니다. WML 브라우저이라이브러리는 WML Script 가관련된 WML context 를실행하기 library 위해사용되는함수들을포함하고있습니다. Dialogs library 이라이브러리는일련의전형적인사용자인터페이스함수들을 포함하고있습니다. WML Script 비표준 library Debug library 이라이브러리는 debug script 응용프로그램에도움을주는 일련의함수들이포함되어있습니다. < 예 > openfile(): 파일열기, closefile(): 파일닫기, println(): 표준출력에보내기 2.4 SKT WML Script Extension (Mandatory) Multimedia Library (Library ID : 32000) 지정된포맷의이미지데이터를다운로드후지정된위치에저장한다. 지정 된위치는단말기에정의된 나만의이미지 1 의위치를의미한다. 이경우 나만의이미지 1 은 나만의이미지 2 가되어야한다. 나만의이미지 의마 기능 지막항목은삭제된다. Image type 이 1 인경우단말기는해당하는에니메이션을저장후 kindofimage 의값에따라실행되어야한다. 단말기는이미지데이터를처리한후리턴값을반환하여야한다. WML Script setimage(url,title,kindofimage,imagetype); LibraryID/Function ID 32000 / 0 Parameters url=string: This Document is copyrighted by SK Telecom and may not be reproduced without permission 20
3. WBMP 이미지파일의절대경로를의미한다. title=string: 단말기의목록에저장될이미지파일의제목을의미한다.(Maximum Length: 20Bytes) kindofimage=int 0: 단말기 Power On 시표시이미지 1: 단말기 Power Off 시표시이미지 2: 단말기대기화면이미지 3; 단말기 RING 시표시이미지 4:WAP 모드접속시표시되는이미지 imagetype=int: 이미지파일의데이터포맷을의미한다. 0:WBMP Type 0 1: 에니메이션 Type Output int (0: 성공, 1001:Invalid_URL 1002:Not_Supported_Format 1003:Invalid_Parameter 1004:Invalid_Data_Format 1005:Overrange_Parameter 1:Undefined_Error) Example Multimedia.setImage( http://www.skt.com/pretty.wbmp, 귀여운이미지,2,0); WAP service 구축시사용가능한 image format 은 gif, jpeg, tiff, png 와 WAP Forum 에서정의한 WAP application 용 image format 인 wbmp 가있습니다. wbmp 는무선구간에최적화한 image format 으로기존 image tool 이지원하지못합니다. 따라서임의의 wbmp 파일을직접작성하거나기존 gif 및 jpg image 를 wbmp format 으로변경시키는 Tool 을이용하여 WAP contents 내에 wbmp 를사용할수있습니다. 4. WML 컨텐츠구축방안 4.1 WEB SERVER 설정 MIME Type 설정 Web server 의설정은일반적인 Web 서비스의설정과동일하며 wml, wmlscript, image 파일들을사용하기위한 MIME 형식을 web server 설정에추가하여야합니다. File Extention Mime Type File Extention Mime Type WML text/vnd.wap.wml WMLSCRIPT text/vnd.wap.wmlscript WMLC application/vnd.wap.wmlc WS text/vnd.wap.wmlscript WMLSC application/vnd.wap.wmlsc riptc WSC application/vnd.wap.wml scriptc wbmp Image/vnd.wap.wbmp WAP server Port 번호설정 SKT 무선인터넷서비스망과의연동을위하여 WAP Server Port 는 default(80) 이든, 그이외의 Port 번호든상관없다. 단보안모듈을채탹하는 CP 는지정한 Port 번호로 This Document is copyrighted by SK Telecom and may not be reproduced without permission 21
설정하여야합니다. Web server version 서비스성능개선을위해 Web Server S/W 의최신버전사용을권장합니다. WML 문서작성시 Character Set 설정한글설정부분을지원하기위해 WML 문서첫줄을아래와같이설정하여야합니다. <?xml version="1.0"?> <?xml version="1.0" encoding="ks_c_5601-1987"?> Cache 정보설정 NATE 단말기의경우 cache 기능이있으며 NATE 서비스의향상을위해 CP sever 에서제공하는 WML 컨텐츠에대한 Expires Header 를이용하며 Entity 유효시간을명시해야합니다. CP 제공컨텐츠의성격에따라 current date, last modification time,expire time 등과같은변수항목들에대한적절한유효시간을설정해주시기바랍니다. 일예로위치정보에서의친구찾기, 증권에서의관심종목등록등단말기상에서 cache 하지말아야할컨텐츠들에대해서는 HTTP Header 를다음과같이설정해야합니다. 또한과금이적용되는컨텐츠에대해서는반드시, HTTP Header 상에서 Expires 나 Cache-Control 을통해서단말 Cache, G/W Cache 가적용되지않도록 no-cache 컨텐츠를제작하여야한다. 개발표준 Content-Type : text/vnd.wap.wml Expires : Tue, 01 Feb 2000 00:00:00 GMT Cache-Control : no-cache 1) 개발 Specification WAP 서비스를위해서지원되는모든서비스는 WAP 1.1 Specification 합니다. ( http://www.wapforum.org 참조 ) 2) 개발디렉토리분류개발에사용되는 cgi 및 WML 파일디렉토리는각각의구분되는서브시스템별로구분을 을따라야 하여야하며, 이미지의경우해당 WML 서브디렉토리하부의 img 디렉토리에두는 것을기본으로합니다. 3) 단말기화면규격 ( 예 ) CP 가퀴즈풀기와퍼즐이라는서비스를제공할때, WML 디렉토리구성 : /wml/quiz/*.wml, /wml/puzzle/*.wml CGI 디렉토리구성 : /cgi/quiz/*.cgi, /cgi/puzzle/*.cgi 단말기요구사항에정의되어있는단말기의 Text 및이미지처리규격은다음과같습니다. Text 처리규격 : 1 차출시제품의경우영문 16 자 * 4 줄 차후출시되는제품의경우영문 20 자 x 6 줄이미지처리의규격 1차출시되는 WAP 단말기는 90 x 60 pixel 이상으로하며, 그이상의크기로개발된 Contents 를 Display 할경우는상하는 Scroll 키를사용하고우측은보지않는것으로처리 차후출시되는 WAP 단말기의경우 100 x 100 pixel 이상을지원, 따라서서비스를제공하는 CP 는서비스의내용이단말기화면규격에서적절히보이도록내용을 This Document is copyrighted by SK Telecom and may not be reproduced without permission 22
구성하여야합니다. 4.2 일반사항 WML 문서 size 한 WML 문서문서의 size 는 1.5K ~ 3K 정도가적당하며, 필요시더크게해도무방하다. 하지만최대 6KB 이상을넘지않도록한다. 및 image 의크기는무선망환경및단말기의 cache 효율성을위하여최대 1.5k byte 로제한을하고있으니컨텐츠작성시유의하시기바랍니다. Image 사용현재 WAP browser 는 WBMP Image Format 을지원하고있습니다. 기존의 GIF, JPG image 는 WMBP 변환 Tool 로변환시켜사용하시면됩니다. WBMP이외에 SIS, BMP도지원가능합니다. 다양한 image 를사용하셔서우수한 WAP 컨텐츠를구성하시기바랍니다. WML 문서별유료화에따른컨텐츠구성 CP 에대한유료화지불은컨텐츠 (???.wml) 별 HIT 수에따른정산을수행하므로 CP 는유료화를원하는 WML 컨텐츠를구분하여제안해야합니다. 제안한컨텐츠에대한유료화여부는 SKT 와 CP 와의협의에의해최종결정합니다. WML 문서 header field WML 문서 header field 부분을아래와같이설정해야합니다. <?xml version="1.0" encoding="ks_c_5601-1987"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN""http://www.wapforum.org/DTD /wml_1.1.xml"> 4.3 do type= vnd.??? 사용을통한메뉴구성방법보통 CP 가사이트구축시메뉴를구성할때 A tag 와 Select tag 를사용하는경우가있는데이것을 Do tag type="vnd.???" 을사용하여주어야합니다. vnd.skmn1.vnd.skmn9 라벨좌측에번호를보여주며번호키를누르면즉시해당메뉴로이동합니다. vnd.up, vnd.prev, vnd.next 각 vnd type 에대한라벨은 상위메뉴, 이전, " 다음 " 으로설정해야합니다. 라벨좌측엔,, 의특수기호가나타나며각단말기에따라설정된 Soft Key 를누르면즉시링크된 Card 또는 Deck 으로이동합니다. vnd.call 전화아이콘을보여줘사용자들이편리하게서비스를이용할수있습니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 23
화면표시예 사용시장점 상하스크롤필요없이번호키및 Soft Key 를눌러해당메뉴로즉시이동가능합니다. 물론스크롤후선택하여해당메뉴로이동할수있습니다. Sample Code <?xml version="1.0" encoding="ks_c_5601-1987"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml"> <wml> <card id="menu1" title=" 메뉴예제 "> <do type="vnd.skmn1" label=" 메뉴 1"> <go href="menu1.wml"/></do> <do type="vnd.skmn2" label=" 메뉴 2"> <go href="menu2.wml"/></do> <do type="vnd.call" label=" 전화걸기 "> <go href="wtai://wp/mc;114"/></do> <do type="vnd.prev" label=" 이전 "> <go href="aaa.wml"/></do> <do type="vnd.next" label=" 다음 "> <go href="bbb.wml"/></do> <do type="vnd.up label=" 상위메뉴 "> <go href="ccc.wml"/></do> </card> </wml> 4.4 Multi Card 구성 WML 메뉴구성시유의사항무선망환경에서 Req & Res 송수신의최소화를위해 size 가적은메뉴문서들의경우여러 WML 문서대신한 WML 문서 (Deck) 내 Multi Card 로구성해주시기바랍니다. 사용시장점 메뉴이동시 CP server 로요구하지않기때문에사용자가보다빠르게컨텐츠를사 This Document is copyrighted by SK Telecom and may not be reproduced without permission 24
용할수있습니다. 4.5 CP 초기메뉴구축초기메뉴상위링크만들기각 CP 는제공하는서비스의상황에따라자유로이링크를연결할수있지만, cgi 및기타프로그램을수행하면서단말기의 이전 또는 상위메뉴 버튼으로이전서비스또는 SKT 가제공하는상위서비스메뉴로이동할수있는링크를포함하여야합니다. 각 CP 에대한상위메뉴는 8절에서자세한규격설명이있습니다. 상위메뉴정보 : 영화 (SKT가넘긴서비스ID 정보 <- CP가할당받은 SID가아님.) CP 제공정보 : 영화.wml <wml> <do type="vnd.skmn1" label=" 극장정보 "> <go href="menu1.wml"/></do> <do type="vnd.skmn2" label=" 영화예매 "> <go href="menu2.wml"/></do> <do type="vnd.up label=" 상위메뉴 "> <go href=http://wap.nate.com/wig1/plsql/ mmwa_mm.dsplstupper?su=100013000100001&sm=11 /> </do> </card> </wml> Ontimer & timer 사용 ontimer 사용시 CP 초기메뉴에서비스내용등을효율적으로고객들에게나타낼수 있습니다. 이때 timer value 는 0.1 초단위이므로 10 으로설정하여사용자에게서 비스가지연되는느낌을주지않아야합니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 25
Sample 코드 <?xml version="1.0"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd/wml_1.1.xml"> <wml> <card id="time" newcontext="true" ontimer="#menu"> <timer value="10"/> : 1 초경과후 menu card 로이동 </card> <card id="menu" newcontext="true"> </card> </wml> 4.6 WML 컨텐츠내용최적화 상위타이틀 메뉴구성 CP 초기컨텐츠에서비스 CP 에대한 XX 포탈 등의광고문구는제공할수없습 니다. 메뉴페이지상위에타이틀등의문구는삭제해야합니다. 이전 ( ), 다음 ( ), 상위메뉴 ( ) 등의카드및 WML 문서이동에관련된항목은컨 텐츠및메뉴 list 하위에위치하도록설정합니다. 하위에위치하도록하기위해선해당항목들을메뉴 list 하위에설정해야합니다. 메뉴컨텐츠타이틀 메뉴컨텐츠에대한 Title 입력부분은메뉴선택부분을축소하므로불필요한사용 을자제합니다. Text 컨텐츠최적화 컨텐츠내텍스트들의줄바꿈및여백주기는항상 WAP browser 로최종확인해야 합니다. 4.7 WAP 사용자정보제공포멧 사용자정보이용 SKT WAP browser 는서비스방식및전화번호와같은사용자 MIN, client 관련정보를 http protocol header 에 Text 형태로전송합니다. CP 는이정보로가입자관리, 사용자서비스사용 Log 관리등을수행할수있습니다. WAP Client 정보전송 단말기는 HTTP 1.1 Protocol Header 의 User Agent Field 영역에아래와같은단말기의정보들을제공된다. 무선인터넷서비스타입정보 : WAP, PDA, WEB & SKT, STI, WAP 단말기 H/W 정보 : 단말제조사, 단말모델명, screen size as pixel, character This Document is copyrighted by SK Telecom and may not be reproduced without permission 26
WAP 단말기 S/W 정보 : browser type, version, MIN 각항목별정보는전송용량을최소화하기위해아래와같은 Format 에의해 Encoding 되어야한다. WAP browser request header Sample Accept: application/vnd.wap.wmlc Accept: application/vnd.wap.wbxml Accept: application/vnd.wap.wmlscript Accept: */* Accept-Charset: us-ascii Accept-Charset: iso-8859-1 Accept-Charset: utf-8 Accept-Charset: iso-10646-ucs-2 User-Agent:SKTXXXXXXXXXX08006020050102931117;14;2;12;124 WAP browser 전송정보 5. WAP 컨텐츠 CP 등록 5.1 서비스등록절차 SKT 에게 WAP 방식의 NATE 컨텐츠를제공하기를원하는업체는아래와같은절차를거쳐서 This Document is copyrighted by SK Telecom and may not be reproduced without permission 27
비스를등록하게됩니다. 1. SKT 에게 WAP 컨텐츠를제공하기를희망하는 CP 는 SKT 의담당자에게업체일반사항및개발관련사항과 ( CP 등록문서.xls ) 제공예정인모든 wml 파일및기타 cgi 프로그램을포함한, CP 가제공하는서비스의전체트리구조를제출하여야합니다.( WAP 서비스시나리오.ppt ) 2. SKT 담당자들은 NATE 서비스제공제안서를평가후 CP 는 CRS( 컨텐츠등록검증시스템 ) 에접속 (http://203.236.39.201) 하여 CRS 계정, 업체일반정보, 시스템정보, 서비스할메뉴등을입력하고승인요청을하여야합니다. 승인요청된내용은 SKT 담당자의승인을거치게되고승인내역은업체에메일로전송됩니다. 이때 5자리의 CID와서비스하는메뉴의 10자리 SID 를부여받으며, CID & SID 는제공하는서비스및관리상필요한부분에사용하게됩니다. CRS사용법과관련된내용은사용자매뉴얼을다운받으셔서보실수있으며그외문의사항은해당 SKT 컨텐츠담당자에게문의하시면됩니다. 3. 과금및메뉴 Navigation및통계와관련된프로그램및일반 WML 파일들에대해서는 SKT 에서제공하는규격을반드시준수하여야합니다. 5.2 외부 CP 가단말의전화번호및단말모델을인식해야할필요가있는경우 SKT 내부망을통하여외부 CP 로나가는모든 request header 의 Cookie field 에는항상사용자의 MIN (011,017제외한 MIN번호 ), PHONE_TYPE( 단말제조사및모델 ), CARRIER(011,017의국번 ) 의정보를제공하므로 cookie 를얻어서이용하여개발한다. cookie 를얻는방법은 web program 에서 cookie 를얻는것과동일한방법을사용합니다. Cookie name: MIN 5.3 CP 의서비스 TRANSACTION 성공여부 message 처리에관한지침 CP는사용자가과금할페이지를 request 했을때, 적절한페이지를보여줄수없을경우에반드시 200 OK가아닌에러코드를 Return해야한다. SK Telecom의과금시스템은 200 OK가아닌 Transection 에대해서는, 잘못된데이터로판단하여사용자에게과금하지않는다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 28
6. UI(User Interface) 공통 6.1 상위메뉴연결규격 < 요약 > CP 는서비스하는모든페이지의 URL 에 SU 와 SM 값을인자로첨부하고, 이 를이용하여상위메뉴기능을구현한다. 2001 년 10 월이후, 메뉴가더욱다양하게서비스가제공이되면서, 사용자를위한메뉴 Navigation 편이성을위해상위메뉴처리규격이더욱중요하다. 한 CP 가제공하는메뉴가하나이상이되므로, CP 에서의 NATE 내로의 [ 상위 ] 메뉴처리가문제시된다. NATE BASIC 나만의메뉴 NATE Lady (Set Menu1) NATE BIZ (Set Menu) BEST TTL 마법사 파워검색 BEST TTL 마법사 BEST TTL 마법사 n.joy Mone 이벤트 1. 그림친구 n.joy Mone 이벤트 n.joy Mone 이벤트 1. 게임 / 엔터테인먼트 2. 마이벨 1. 여성 1. 관심종목 2. 그림친구 / 마이벨 3. 관심종목 2. 쇼핑 2. 그림친구 3. 증권금융재테크 3. 그림친구 / 마이벨 3. AdultClub 4. e-book [ 그림친구 ] [ 그림친구 ] [ 그림친구 ] [ 그림친구 ] 1. 1. 1. 1. 2.. 2. 2.. 2...... [ 상위 ] 가뭐지? [ 처리방법 ] This Document is copyrighted by SK Telecom and may not be reproduced without permission 29
가 ) SKT 서비스내부의 CP Link 시, NATE 내부서비스 ID 및 Set Menu ( 초기진입메뉴구분값 ) 을 CP 초기메뉴 Parameter 로넘겨준다. 상위메뉴연결 URL : http://wap.nate.com/wig1/plsql/mmwa_mm.dsplstupper NATE 내부서비스 ID Parameter 명 : SU SetMenu : SM (SU, SM 은정해진값이없습니다.) 나 ) CP 는초기메뉴에서 NATE 내부서비스 ID 및 Set Menu parameter 값을받아서 [ 상위메뉴 ] 를링크한다. CP 의 index 파일은 HDML, WML 과같은 Static 한프로그램이면안되고, ASP,JSP,CGI,PHP 등 Dynamic 한프로그램이어야한다. NATE 내부서비스 ID 및 Set Menu parameter 값을 CP 는 Navigation File 모두에 Posting 해야한다. Index 파일에서 CP 는 NATE 내부서비스 ID 및 Set Menu parameter 값에있는주 소로 [ 상위 ] 를링크해야한다. 다 ) 상위메뉴연결 URL 예시 > 기존 ) http://wap.nate.com/wig1/plsql/mmwa_mm.dspupper?service_id=cp 의초기서비스 ID (15 자리 ) 변경 ) SKT MENU http://wap.nate.com/wig1/plsql/mmwa_mm.dsplstupper?su=skt 가넘긴 SID & SM=SKT 가 넘긴 MENU 값 <?xml version="1.0" encoding="ks_c_5601-1987"?> <!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/dtd /wml_1.1.xml"> <wml> <card id="servicelist" title=" 스포츠 / 레져 "> <p> <do type="vnd.skmn1" label=" 스포츠뉴스 "> <go href="http://wapapp.nets.com/asp/sports.asp?su=100031000300165&sm=11"/> </do> <do type="vnd.skmn1" label=" 주요뉴스 "> <go href="http://wapapp.nets.com/wml/news.wml?su=100031000300165&sm=11"/> </do> <do type="vnd.up" label=" 상위메뉴 "> <go href="http://wap.nate.com/wig1/plsql/mmwa_mm.dsplstupper? SU=100031000320169&SM=11"/></do> </p> </card> </wml> This Document is copyrighted by SK Telecom and may not be reproduced without permission 30
sports.asp 라는 CP 의 index url 파일에 SU, SM 이라는 NATE 상위 메뉴연결에필요한 Parameter 를 SKT 내부에서 CP 초기메뉴연결시 Posting 한다. wapapp.netsgo.com/wml/news.wml?su=100031000300165&sm=11 은 news.wml 이라는 Static 한프로그램이므로 SU, SM 이라는 parameter 값을얻을수없다. 따라서, CP 는.hdml,.wml 이아닌 Dynamic 한프로그램으로모든파일을구현해야한다. 6.2 상위메뉴연결값상위메뉴연결시, SU, SM Parameter 를 CP 초기 URL 호출할때같이넘겨주게된다. 1) Parameter : SM 이때, SM(SKT 가제공하는 MENU 값 ) MENU 값은유일한값이아니라다양한 value 를넘겨주게된다. 이에대해특정메뉴값에정보는아래와같다. 이중 0 ~ 9 까지는 SKT 에서제공중인특정서비스 Reserved 값이고그이후는 SKT 에서제공중인다양한메뉴 Set 이다. 메뉴값 (SM 값 ) 내용 비고 0 검색서비스 Reserved (NATE 제공특정서비스 ) 1 나만의메뉴 Reserved 2 Reserved 3 Reserved 4 Reserved 5 Reserved 6 Reserved 7 Reserved 8 Reserved 9 Reserved 10 NATE 기본메뉴 NATE 제공메뉴 11 이후 NATE Segment 메뉴세트 NATE Segmentation 메뉴에대하여 SK Telecom 의 NATE WAP 서비스는 2002 년 5 월부터사용자별요금제에따라다 른메뉴를제공하는 Segmentation 메뉴를제공한다. 이는향후에더욱다양한 Segmentation 으로세분화될예정이며, 사용자가사용하는 Segmentation 에따 라다른 SM 값이제공된다. 2) Parameter : SU, SM SU, SM 값은 CP 마다정해진값이없으며, SKT 쪽에서넘겨받은 Parameter 를받아그값 This Document is copyrighted by SK Telecom and may not be reproduced without permission 31
을그대로리턴하면된다. 이때, 사용자가단말기의 Hotkey 를이용하여나만의메뉴에서접속했을경우, 상위메뉴 SU 의값이 NULL 로내려갈경우가있는데, 이때는 SU 값에 NULL 값을그대로리턴하면된다. 즉, SU=&SM=01 과같이내려갈경우 http://wap.nate.com/wig1/plsql/mmwa_mm.dsplstupper?su=&sm=11 과같이리턴하면된다. 이는 SM 도마찬가지이다. 즉, SM 과 SU 값이내려오지않을경우에는, SM 과 SU 값에모 두 NULL 값을넣어리턴하면된다. 6.3 검색에서의상위메뉴처리 ( 예외처리 ) 향후 NATE 내에서의검색서비스가강화되어, 디렉토리및페이지검색기능등이추가가된다. 검색결과에서해당 CP 에서제공중인임의의페이지로넘어간경우의상위메뉴는위의메뉴연결규격과는별도로처리를해주어야한다. 검색서비스에서 CP 페이지로넘어간경우 ( 즉 Parameter SM 값이 0 인경우 ) CP 페이지에서는해당페이지가아닌항상 <prev/> 로해주어야한다. 검색결과 :7건결과내검색재검색 1 동호대교 2 수도권소통정보 3 출구정보 4 교량소통정보 5 동원증권압구정 6 2nd chance 7 소통정보메뉴 OK 상위 SKT 내부메뉴 http://a.com/b.cgi?su=aaa&sm=0 호출 (CP URL 분기 ) 동호대교하위페이지동호대교남단 1 This Document is copyrighted by SK Telecom 원활and 38km/h 2 may not be reproduced without permission 32 원활 28km/h 3 동호대교강변북로지점
CP 페이지 if SM == 0 인경우에 <prev/> 처리 else CP 상위메뉴처리 정리하면 CP 에서의검색을위해작업사항은 1 ) URL 을통해넘어온 SM 값이검색인경우 ( 0 ) 일경우, 상위 버튼에 <DO type= vnd.up label= 상위 ><PREV/></DO> 를적용하고, 지정값이아닌경우, 상위메뉴연결규격을적용한다. 또한이는 CP 초기페이지뿐만아니라 NATE 제공하는모든페이지에적용하여야한다. <IIS 의 ASP 사용시코딩예 > <% If Request.Querystring("SKTMENU") = "0" Then %> <DO type="vnd.up" label=" 상위 "><PREV/></DO> <% Else %> <DO type="vnd.up" label=" 상위 "> <GO href="~.asp?~&su=nnnnnnnnnn&sm=mm"/> </DO> <% End If %> 2 ) <PREV/> 는단말의 History 를이용하는것이므로, 모든서비스페이지에있는 <CARD> tag 의 newcontext= true 를모두지웁니다 newcontext= true 는폰의모든 cache(history 포함 ) 를 clear 하므로 history-back 을할수없게만듭니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 33
6.4 나만의메뉴 2001년 10월이후, 개인화메뉴및즐겨찾기기능이더욱강화되어단말의즐겨찾기기능뿐만아니라 CP가제공하는메뉴에도 SoftKey형태로즐겨찾기추가 LINK를제공하여즐겨찾기기능을활성화하려고한다. CP 가제공하는메뉴에서아래와같이 SKT 가제공하는규격대로 Link 작업을해주어야한다. ( 이때, 2002 년부터나만의메뉴와즐겨찾기가통합됨에따라, 기존에 즐쳐찾기 라명명되던내용이 나만의메뉴 로이름이변경된다. <CP 메뉴중나만의메뉴추가작성예 > - 그림친구 - 1. 오늘의새그림 2. 금주의인기짱 3. 나만의메뉴추가 호출 URL : wap.nate.com/cgi/add_favorite.cgi 가 ) GET 방식기존페이지의 URL 이 a.com/a.pgm?a1=v1&a2=v2 이고 card title 이 test 라고가정하면나만의메뉴추가의형식은 <anchor> 나만의메뉴추가 <go href= http://wap.nate.com/cgi/add_favorite.cgi?v_title=test&v_url=a.com/a.pgm?a1 =v1&a2=v2&su=1000110000&sm=11 /> </anchor> 나 ) POST 방식기존페이지의생성방식이다음과같다고가정하면, <go href= http://a.com/a.pgm method= POST > <postfield name = a1 value = v1 /> <postfield name = a2 value = v2 /> </go> This Document is copyrighted by SK Telecom and may not be reproduced without permission 34
나만의메뉴추가의형식 <anchor> 나만의메뉴추가 <go href="http://wap.nate.com/cgi/add_favorite.cgi" method="post"> <postfield name="v_url" value="a.com/a.pgm?a1=v1&a2=v2"/> <postfield name="v_title" value="test"/> </go> </anchor> v_title 과원래페이지생성시사용하던 Card Title 을그대로따른다. 이방식에있어서 value 에 &var = 가들어가서는안된다. V_url 은 CP 에서제공하는 URL 이아닌, Previous 에서넘어온 URL 그대로넣어준다. 예를들어, SKT 에서 CP 초기로넘길때추가되는 Parameter ( SU, SM) 등을그대로 v_url 에넣어준다.) SU, SM Parameter 없이나만의메뉴에추가될때에, 사용자가해당나만의메뉴목록을선택했을때의상위메뉴는 나만의메뉴 로분기되며, SU, SM 등 Parameter 를그대로나만의메뉴가추가될때에는상위메뉴연결이 CP 초기및 1Depth 메뉴에서해당상위메뉴연결구성이되므로, 사용자의편이성을고려하여, 넘겨받은 QueryString 그대로 v_url 을구성해야한다. 6.5 나만의메뉴추가링크예 This Document is copyrighted by SK Telecom and may not be reproduced without permission 35
나만의메뉴추가등록방식 SKT 내부메뉴 CP 초기메뉴 CP 1Depth 메뉴 - 주가정보 - 1 관심종목 2 현재시세 3 지수정보 GET 방식 - 지수정보 - 1 종합주가지수 2 나스닥 3 다우 나만의메뉴추가 POST 방식 - 종합주가지수 - 1. 종합주가지수 2. 코스닥지수 3. 증시현황 나만의메뉴추가 GET POST <do type= vnd.skmn3 label= 지수정보 > <go href= http://a.com/a.pgm?a1=v1&a2=v2 &SU=100001000020000&SM=1 /> </do> <do type= vnd.skmn3 label= 종합주가지수 > <go href= http://a.com/b.pgm method= POST > <postfieldname= a1 value= v1 /> <postfieldname= a2 value= v2 /> <postfieldname= SU value= 100001000020000 /> <postfieldname= SM value= v2 /> </go> </do> <anchor> 나만의메뉴추가 <gohref= http://wap.nate.com/cgi/add_favorite.cgi? v_title=test&v_url=a.com/a.pgm?a1=v1 &a2=v2&su=1000110000&sm=11 /> </anchor> <ancher> 나만의메뉴추가 <gohref="http://wap.nate.com/cgi/add_favorite.cgi" method="post"> <postfieldname="v_url" value="a.com/a.pgm?a1=v1&a2=v2"/> <postfieldname="v_title" value="test"/> </go> </anchor> 6.6 나만의메뉴 LINK 대상 나만의메뉴추가 LINK 대상은 CP 가제공하는메뉴들중초기메뉴에반드시메뉴하단에 HyperLink 로추가해주어야하며, 1Depth 에는 CP 가필요하다는판단하에 LINK 를추가한다. CP 초기메뉴 : 의무사항 CP 1Depth 메뉴 : 권고사항 7. 정보이용료과금방법 This Document is copyrighted by SK Telecom and may not be reproduced without permission 36
7.1 정보이용료과금규격 CP 의서비스 URL 과 WIG 내에등록되어있는서비스 ID, 서비스 URL 과매핑, 비교하는과금방식을취한다. 따라서정확하고신속한과금정보의구별을위해서 첫째, CGI,ASP,PHP 와같은프로그램은 SERVICE_ID 라는이름의매개변수를반드시사용 둘째, 파일의경우예를들어 _S 로시작하여실제 SERVICE_ID 를파일이름에사용한다. 과금, 비과금대상 URL 에대해통계를위해해당 URL 에해당하는 SERVICE_ID 를매개변수를반드시사용한다. 예 1) [CGI 또는프로그램의경우 ] http://wap.music011.com/cgi/top10.cgi?date=200000601&flag=2&service_id=100011000100 001 초기안의 SERVICE_ID 파라미터위치와는달리모든 URL 의끝에위치함으로변경과금정보검색의이유로필요한 SERVICE_ID=100011000100001 라는파라미터는과금 URL 에필요한경우를제외한모든경우에사용하지않는다.( 변경사유 : URL 을통한 SERVICE ID 정보와과금정보신뢰성확보를위한 MAPPING 과정중 PARSING 의오버헤드최소화의이유 ) 예 2) 일반파일 http://wap.music011.com/pop/_s100011000100002.wml 위의예와같이 URL 에과금정보인지를직접구별할수있는매개변수를사용하거나이름을사용할경우, 간단하고정확하게단말기로부터의요청중에서과금대상요청을구별해낼수있다. 7.2 CP 과금 URL 적용규칙 서비스 ID 가 URL 마지막 Parameter 에위치하여야한다. 예 > This Document is copyrighted by SK Telecom and may not be reproduced without permission 37
http://wap.music011.com/cgi/top10.cgi?date=200000601&flag=2&su=100021000210000& SM=11&SERVICE_ID=100011000100001 위와같이 SERVICE_ID=000000000000000(15 자리 ) 의 Parameter 가맨마지막에위치하여야한다. 잘못된예 > http://wap.music011.com/cgi/top10.cgi?su=100021000210000&sm=11& SERVICE_ID=100 011000100001&flag=2 서비스 URL 및 SID 매핑규칙 가. 하나의 SID 당하나의 URL 로 1:1 매핑이되어야한다. 나. 서비스 URL 이중복또는겹쳐지면안된다. 잘못등록된예 > SID URL 300013000100001 www.nate.com/a.cgi 300013000100002 www.nate.com/a.cgi?a=1 등록되어있을경우서비스 URL이겹쳐져있는경우, 패턴매칭시문제가발생한다. SID URL 300013000100001 www.nate.com/a.cgi?a=11 300013000100002 www.nate.com/a.cgi?a=1 등록되어있을경우서비스 URL이중복되어있을경우, 패턴매칭시문제가발생한다. 프로그램방식의경우, GET 방식만허용이된다. Post 방식의경우는허용이안됨. 대소문자를반드시구별하여 SKT 서비스등록을하고, 등록한 URL 그대로서비스를제공해야한다. < 서비스등록 URL> www.nate.com/cgi/a.cgi <CP 실제서비스제공 URL> www.nate.com/cgi/a.cgi 인경우과금이안됨. This Document is copyrighted by SK Telecom and may not be reproduced without permission 38
SKT 에서비스등록한 URL 그대로서비스를제공해야한다. < 서비스등록 URL> www.nate.com/cgi/a.cgi <CP 실제서비스제공 URL> 11.11.11.1/cgi/a.cgi 위의경우처럼, 서비스등록시에는 Domain Name 으로등록하고서비스제공시에는 IP Base 로제공시에는과금이안됨. 서비스 URL 등록시, Parameter 가있는경우에는반드시변수명 =Value 를등록해야한다. 고정된 URL 을등록해야한다. 예 > 한프로그램으로 Parameter 변수값의변경하면서유료서비스를제공하는경우에는고정된 URL 부분을서비스 URL 을등록하고, 이를하나의 SID 로등록한다. 잘못된서비스제공예 > 서비스내용 SID URL 다이어트 1 100001000010000 www.nate.com/cgi/a.cgi?a=1&b=1 다이어트 2 100001000010001 www.nate.com/cgi/a.cgi?a=2&b=2 다이어트 3 100001000010002 www.nate.com/cgi/a.cgi?a=3&b=3 위의예처럼각각의 Parameter 에대해서 URL 등록하기보다는고정되는 URL 부분으로통 합하고하나의 SID 로등록한다. 서비스제공예 > 서비스내용 SID URL 다이어트 100001000010000 www.nate.com/cgi/a.cgi URL 에서특수한의미를지니는문자인?, &, % 를 name=value 쌍에서사용하지 않도록한다. 그외,(comma) 도사용해서는안될문자이다. 7.3 CP 개발고려사항 This Document is copyrighted by SK Telecom and may not be reproduced without permission 39
CP 의 Contents 제작오류 과금대상 URL 에 SERVICE_ID 를빼먹거나비과금대상 SERVICE_ID 를포함시킬경우과금이부과되어야하는데도 CP 들의컨텐츠제작의잘못으로과금정보의분류과정에서누락되게된다. 이는 CP 들이책임있게과금대상 URL 에서비스 ID 를추가해야한다 사용자들의사용오류가능성은적지만사용자가서비스 URL 을알고있어서 URL 입력을통해직접서비스를이용하는경우아래와같은두가지문제가발생할수있다. 과금대상 URL 에해당 SERVICE_ID 를제외시킨경우이경우는사용자가과금대상 URL 을직접액세스하게되어과금이누락될수있다. 따라서이를방지하려면 CP 들이 CGI 와같은프로그램을개발할때, SERVICE_ID 를내부에서체크하여올바로입력이되지않으면컨텐츠를제공하지않도록해야할것이다. 파일인경우는파일이름자체에과금정보를구별하기위한문자열이포함되어있으므로, 이러한오류가발생할가능성이아예없는경우이다. 8. 검색서비스활성화를위한 Contents 구성및문서수집 8.1 검색 Robot 의문서수집방법 WAPRobot 은검색시스템의일부로서, 문서수집기능을합니다. 문서수집 은검색시스템에등록된 URL List DB 에있는 URL 들을 HTTP 방식으로접근하여문서를읽고, 이문서에있는 Link(anchor) 를다시따라다니면서문서를읽어내는방법으로이루어집니다. 문서수집 은매일저녁 3 시 ~ 6 시사이에이루어집니다. 실시간정보의제공을요 하는서비스 ( 속보성뉴스서비스 ) 는경우에따라 3 시간주기로하루 8 번행하기도합니다. 문서수집 은정책변경에따라수집주기및실행시간대가변경될수있습니다. 변경 시바로바로알려드리겠습니다. Web( 유선인터넷 ) 에서의문서수집의경우는 HTTP_USER_AGENT 값에 Mozilla/4.0 혹은검색엔진업체에서정한값을사용하지만, NATE 의 HTTP_USER_AGENT 는아래의형태와 같이구성되어있기때문에, WAPRobot 의경우 HTTP_USER_AGENT 값은아래와같습니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 40
SKT11NTMA00111281282111AC03863112;0;0;0;0 MIN 위치정보 * NT : nate * MA : master * AC : All Color CP 서비스제공시, 해당 UA 정보로문서를요청할때, 예외처리를하지않아야정확한 검색대상정보를수집할수있습니다. CP 서비스에서는 HTPP_USER_AGENT 를보고 WAPRobot 이접근하여문서수집중이라는것 을판단할수있으나특별한서비스상의문제가발생하지않는한별도처리를하지않아 야 WAPRobot 이정확한검색대상정보를수집할수있습니다.( 검색품질이좋아집니다.) 회원에게만제공되는서비스나위치정보와같이 WAPRobot 에게문서수집을허용하지않 게할부분에대해서는아래 10.2 문서수집에서의제외 방법을적용할수있습니다. 8.2 검색대상에서의제외처리방법 (WAPRobot 의접근제한설정 ) robot.txt 의사용사이트의 root(/) 에 robot.txt 파일을아래와같이하여두면 robot.txt 파일에설정한문서는검색대상에서제외됩니다. 아래예시의경우는, root 밑의 /cyberworld/map, /tmp, foo.html 에대한 WAPRobot 의접근을제한합니다. < 예시 > # robots.txt for http://www.example.com/ User-agent: * Disallow: /cyberworld/map/ # This is an infinite virtual URL space Disallow: /tmp/ # these will soon disappear Disallow: /foo.html ( 참조 ) A Standard for Robot Exclusion (http://www.robotstxt.org/wc/norobots.html) 2. <!--NO_INDEX--> ~ <!--/NO_INDEX--> 의사용 (custom tag 의사용 ) This Document is copyrighted by SK Telecom and may not be reproduced without permission 41
폴더나파일전부가아닌문서의일부분을검색대상에서제외하고자할경우아래 와같이설정하면해당부분은 WAPRobot 이문서수집처리를하지않습니다. 아래 예시의경우, card2 부분을검색대상에서제외합니다. <!--NO_INDEX-->, <!--/NO_INDEX--> 은 Comment 이므로 WML 사이즈에영향을미 치지않습니다. 위치및반복횟수에제한이없으며, 대소문자구분하지않습니다. < 예시 > <?xml version= 1.0 encoding= ks_c_5601-1987?> <wml> <card id= test title= 우리나라 > <p> 우리나라만세 <do type= vnd.skmn1 label= 다른나라 ><go href= #test2 /></do> </p> </card> <!--NO_INDEX--> <card id= test2 title= 다른나라 > ~~~ </card> <!--/NO_INDEX--> </wml> 검색예외처리대상 - 벨소리다운로드에서의실제다운로드서비스 - 그림친구다운로드등의문서처리는실제검색로봇이다운로드서비스를수행하지않도록처리한다. 8.3 검색페이지에서사용자가 CP URL 로페이지내용을확인하는경우 사용자가검색페이지에서해당 CP URL 로분기하는경우에, 검색로봇이실제검색할당시의 MIN 번호로검색페이지가출력이되지만사용자가확인을누른경우에는사용자 MIN 번호로해당페이지내용을출력할수있게구현해야한다. 검색결과 :3 건결과내검색재검색 1 짱가 2 김건모 - 짱가 3 ** 짱가는 ** 검색결과 :5 건짱가노래 : 김건모 미리듣기 다운로드 This Document is copyrighted by SK Telecom and may not be reproduced without permission 42 페이지검색메뉴 OK 상위 메뉴 OK 상위
검색에서해당 CP 임의의페이지로이동했을때, 검색로봇의 MIN 이아닌 해당사용자의 MIN 으로처리되어야한다. 예를들어, 미리듣기, 다운로드등의실제사용자서비스의과금 URL 의경우 에는사용자 UA 및 MIN 을확인하여해당기능을수행할수있도록구현해야한다. 검색로봇으로검색한결과를그대로처리한경우에는사용자과금에도문제가생길수있다. 8.4 정확한검색을위한문서제목처리 ( 권고사항 ) 일반적으로화면에출력되는문서의제목은 <card> tag 의 title attr. 값이출력됩니다. 이값은보통고정적인값, 예를들어 회원게시판 과같은형태로되어있습니다. 검색결과화면의첫화면에는아래와같이문서제목 (title) 만이나타나게되는데, 게시판이나뉴스기사등의경우정확한글의제목이나타나지않고아래와같이 회원게시판 혹은 뉴스속보 와같은형태로나타나게되어정확한의미전달이어렵습니다. 검색결과 :5 건결과내검색재검색 1 회원게시판 2 회원게시판 3 회원게시판 4 뉴스속보 5 뉴스속보 검색결과 :5 건결과내검색재검색 1 오늘번개있습니다 2Re: 나도갈래요 3 내일합시다 4 뉴욕에서 4 명구조 5 사상자많이발견 < 적용전 > < 적용후 > 이러한문제점을해결하기위해, 즉게시판의경우 글의제목, 뉴스속보의경우 기사제목 을검색결과에나타나게하려면아래와같이하면됩니다. <!--title-->, <!--/title--> 은 Comment 이므로 WML 사이즈에영향을미치지않 습니다. 페이지검색메뉴 OK 상위 페이지검색메뉴 OK 상위 여러개의 <!--title--> 이있을경우마지막 <!--title--> 를문서제목으로사용 This Document is copyrighted by SK Telecom and may not be reproduced without permission 43
합니다. 위치에제한이없으며, 대소문자구분하지않습니다. < 예시 > <?xml version= 1.0 encoding= ks_c_5601-1987?> <wml> <card id= test title= 회원게시판 > <p> 제목 : 오늘번개있습니다. <!--TITLE--> 오늘번개있습니다.<!--/TITLE--> 내용 : 오늘 9/20 일저녁 8 시에번개합니다. 장소는강남역 </p> </card> </wml> 8.4 서비스내부검색 ( URL 제한검색기능 ) 권고사항 NATE 검색서비스는기본적으로 NATE 서비스전체에대한검색을합니다. 그러나, 경 우에따라서는해당서비스내부에서만검색하는것이더효과적인검색기능일수있습니 다. - 그림친구 검색 1 오늘의새그림 2 금주의인기짱 3 CP 초기 URL 에검색기능을추가하고자한다면최상위에 형태로검색기능을아래의 URL 을 LINK 하면됨. 호출 URL : http://softbot.n.com/cgi-bin/searchin?url=$( 서비스가위치한최상위폴더 ) 나만의메뉴추가 메뉴 OK 상위 < 화면에서비스내부검색추가예 > 검색 을누르면검색어를입력받는화면이나타나고, 검색어를입력하면 url 에 설정한서비스 (URL) 에서만검색을합니다. 제공하고있는 서비스내부검색 은서비스에따라내부검색결과가좋은경우도있 고, 나쁜경우도있습니다. 따라서, 아래의 URL 을통해웹환경에서검색 Test 를해본 후, 검색결과가만족스러우면설치하시기바랍니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 44
검색결과가만족스럽고, 사용자에게검색기능을제공하길원하는 CP 는 위와같이 검색 기능을추가하여 URL 정보를 LINK 하여제공하면됩니다.( 권고사항 ) < 웹에서의서비스내부검색 Test URL> http://softbot.nate.com/cgi-bin/t_searchin 위의검색을위한 URL 은 softbot.nate.com ( 잠정 ) 이나향후 Domain 변경이있을예정 입니다. 이는따로 CA 나 SKT 담당자를통해공지를할예정입니다. This Document is copyrighted by SK Telecom and may not be reproduced without permission 45