1 / 17

이번 시간에는 ...

이번 시간에는. 지난 시간까지 2 회차에 걸쳐 WML 의 택스트 포맷 , 이미지 처리 , 페이지 이동 , 태스크 수행과 이벤트 처리 및 WML 사용자 Input 처리 태그 등 , WML 개발에 대해서 알아보았습니다 . 이번 시간에는 2 회차에 걸쳐 , WML 스크립트 개발에 대해서 학습해 보도록 하겠습니다. 학습 목표. 17 회차 강의에서 다루게 되는 내용은 다음과 같습니다. WMLScript 개발 - I. 이번 장의 학습 목표.

tangia
Download Presentation

이번 시간에는 ...

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 이번 시간에는... 지난 시간까지 2회차에 걸쳐 WML의 택스트 포맷, 이미지 처리, 페이지 이동, 태스크 수행과 이벤트 처리 및 WML 사용자 Input 처리 태그 등, WML 개발에 대해서 알아보았습니다. 이번 시간에는 2회차에 걸쳐, WML 스크립트 개발에 대해서 학습해 보도록 하겠습니다.

  2. 학습 목표 17 회차 강의에서 다루게 되는 내용은 다음과 같습니다. WMLScript 개발 - I 이번 장의 학습 목표 WMLScript의 사용 용도와 구성에 대해 알 수 있다. WMLScript 첫번째 예제를 통해 WML 스크립트 개발의 개념을 알 수 있다. WMLScript의 문법에 대해 알 수 있다.

  3. 무선 망 컨텐츠서버 WAP GW WAP 브라우저 문서로 작성된WMLScript 전달 WMLScript 문서를 기계어(Byte-Code)로 컴파일 WMLScript Byte-Code 전송 WAP 브라우저 기능인 WMLScript VM에서 Byte-Code 실행 WMLScript 소개 • WMLScript • WMLScript 정의 • WMLScript는 JavaScript의 표준판인 ECMA Script에 기반을 둔, WAP 컨텐츠 개발 용 순수 Client Script 언어로, 제한된 사용성을 가지고 있는 WML 에 프로그래밍적 컴퓨팅 기능을 추가하여 동적 (Dynamic) 컨텐츠 개발과 컨텐츠 이용성(Usability) 향상 • WMLScript 구성 • Procedural Logic WMLScript는 컴퓨팅 기능을 지원하기 위해 절차적 프로그래밍 언어 지원 • Script Library 다양한 기능을 Library 호출만으로 사용할 수 있도록 각종 기능 Library의 API (Application Programming Interface) 지원 • Crypto Library WMLScript로 구현 가능한 보안 기능 중 하나로, 데이터의 암호화 기능을 가진 Library 제공 • WMLScript 동작 • WAP 게이트웨이는 먼저 WMLScript를 기계어 Byte-Code로 컴파일한 후, WAP 브라우저로 전송 • WAP 브라우저는 WMLScript 실행용 애플리케이션(VM)을 포함하고 있으며, WMLScript VM에서 기계어로 컴파일된 WMLScript를 변환없이 직접 실행

  4. WMLScript 소개 • WMLScript • WMLScript 사용 목적 • 컨텐츠 관점 • 일반 프로그래밍 처럼 Procedural Logic 지원 • 이벤트 기반(Event-Based)으로 사용자, WAP 단말, 컨텐츠 서버로 부터의 이벤트에 대응하여 이용성(Usability)을 가진 동적인 (Dynamic) 컨텐츠 개발 가능 • 확장된 JavaScript의 Subset으로 개발자에게 익숙하여 개발 용이 및 Cost 절감 • 네트워크 관점 • WAP 게이트웨이는 WMLScript를 컴파일 하여, Byte-code를 WAP 브라우저에 전송 WAP 클라이언트는 기계어 실행만 하면 되고 서버에 대한 부담을 줄여, 불필요한 통신을 줄여 유선에 상대적으로 작은 Bandwidth를 가지는 모바일에 적합 • 단말기 관점 • WAP 브라우저에서 실행 가능하므로, 별도의 애플리케이션이나 환경 불필요 • 브라우저만으로도 다양한 기능 제공이 가능하며, 단말기의 소프트웨어 변경 없이 단말기 기능 확장 가능 WML Display WMLScript Computing Dynamic Interactive Content 

  5. User.wml 사용자 Input A=5 A 입력값 검증 A 제곱근=? My_Script.wmls 호출 WMLScript Library WMLScript Lang Library 호출 My_Script.wmls A 입력값 검증 A 제곱근 계산 Lang Lib Browser Lib A는 숫자? Float Lib Dialogs Lib A 루트는? Script Library 호출 URL Lib Crypto Lib Result.wml 결과 값 수신 결과 값 표시 A 제곱근 = 2.2360679775 String Lib WMLScript Float Library 호출 결과값 전달 WMLScript 구성 • WMLScript 사용 구성 • WMLScript 문서는 WML 문서와 분리하여 작성하고, “.wmls”파일로 저장 • WMLScript는 특정 컴퓨팅 작업을 수행할 함수들의 집합으로 구성 • WML 문서는 WMLScript로 작성한 기능 함수들을 호출하여 사용  WML 코드에서 WMLScript에 정의한 함수 호출 예 : <a href = “My_Script.wmls#function_name_calculate(5)”>

  6. // Square_Number.wmls// Programmer defined functionsextern function count() { // prompt for user inputvar inputNumber = Dialogs.prompt( "계산 숫자 입력", "" ); // call function square and pass it inputNumbervar numberSquared = square( Lang.parseInt( inputNumber ) ); // create output messagevar outputSquare = inputNumber + " 의 제곱은 " + numberSquared; WMLBrowser.setVar( "display_result", outputSquare ); WMLBrowser.go( "#result_page" );}// variable y gets value of inputNumberfunction square( y ){return ( y * y );} <wml> <card id="input_page" title="Input_Page"> <do type="accept" label="OK"> <go href="Square_Number.wmls#count()"/> </do> <p> Square Number 계산 </p> </card> <card id="result_page" title="Result_Page"> <do type = "accept" label = "Home" > <prev /> </do> <p><!-- display result of calculation --> $Display_result </p> </card> </wml>          Square_Number.wmls Square_Display.wml WMLScript 사용 예 • WMLScript 처음 보기 • WMLScript 사용 예 • 사용자 입력 숫자 값을 받아, 입력 값의 제곱을 계산하는 함수 count()를 가진 WMLScript와 count() 함수를 호출하는 WML 문서 예제

  7. WMLScript 사용 예 • WMLScript 처음 보기 • 사용자의 WAP 브라우저에서 Square_Display.wml 문서의 input_page WML Card가 실행되고, 휴대폰 액정 화면에 “Square Number 계산” 이 출력 되며, 사용자가 확인 버튼을 누르면, Square_Number.wmls WMLScript 문서의 count() 함수가 호출된다. • 이때 함수 호출 문법은 <go href="Square_Number.wmls#count()"/>과 같이, “WMLScript 문서명 + 점(.) + 함수명” 으로 구성된다. • WMLScript 에서 변수 사용이 가능하며 변수 선언은 “var”로 시작하고, 변수의 타입은 따로 정의하지 않으며 대신 선언한 변수의 입력 값으로 자동 결정된다. • 휴대폰 Interface 기능을 제공하는 WMLScript Library인 Dialog Library의 prompt() 함수 호출 • Dialog Library prompt(message) : 사용자 단말기의 액정에 message출력 함수 • WMLScript의 Script 기본 기능을 제공하는 Lang Library의 parseInt() 함수 호출 • Lang Library parseInt(value) : 문자로써 value값을 받아 숫자로 바꾸는 기능 함수 • Square_Number.wmls 의 square() 함수 호출 • WMLScript의 WAP 브라우저 연동 기능을 제공하는 WMLBrowser Library의 setVar() 함수 호출 • WMLBrowser Library setVar(A, B) : B변수 값을 A변수에 할당하는 함수 • WMLBrowser Library의 go() 함수 호출 • WMLBrowser Library go(url) : 현재 페이지에서 url에 명시한 링크로의 이동 기능 제공 • WMLBrowser Library go() 함수 호출로, Square_Display.wml 문서의 두번째 WML Card인 result_page로 이동 • 스텝 (7)의 WMLBrowser Library setVar()에 의해 그 값을 설정한 변수 display_result 출력

  8. WMLScript 문법 • WMLScript 문법 일반 사항 • WMLScript 작성은 JavaScript, 또는 ASP, JSP 등, 일반 유선 웹 사이트용 스크립트 페이지 작성과 유사하며, 이들과 유사한 문법으로 작성 • WMLScript 문법 규칙 • Space는 어느 길이의 Space라도 하나로 간주, Space, Tab, New Line 캐릭터 (CR+LF) 은 무시 됨 • WMLScript의 한 문장은 ; 으로 끝남 var inputNumber = 3; • Block은 { }로 처리함 – Block : 절차 언어(Procedural Language)인 WMLScript 내 하나의 함수 범위 function square( y ){return ( y * y );} • WMLScript는 대문자와 소문자 구별 –예문의 변수 NUMBER와 number는 각기 독립적인 다른 변수 임 var NUMBER = 5;var number = 15; • 한 Step의 코멘트는 // 사용, 여러줄의 코멘트는 /* 내용 */ // 한 Step Comment /* 여러줄 코멘트 ...코멘트 ... ... */

  9. { // block1 var var1; {// block2 var var2; } } Block1 범위 Block2 범위 WMLScript 문법 • WMLScript 변수 • WMLScript의 변수 선언은 var 로 선언하며, 프로그래밍 언어가 지원하는 모든 변수 타입 지원 • WMLScript 지원 변수 • Boolean : TRUE 또는 FALSE 값 • String : 문자 • Integer : 정수 숫자 범위 -2147483648 ~ 2147483647 • Float : 부동 소수 숫자 범위 1.17E(-38) ~ 3.40E(+38) • Invalid : 함수 내에서 변수로 사용하지 않을 값 var num_byunsu = 5; // Integervar float_byunsu = 3.14; // Float var string_byunsu = “Hi~~”; // String var boolean_byunsu = true; // Boolean // 변수 타입은 마지막에 설정한 값의 변수 Type으로 변경된다. // Integer에서 String으로 변수 Type 및 변수 값 변경됨 Num_byunsu = “Variable Type Changed”; • WMLScript 변수의 범위 • 예문에서 변수 A 는 블록 1 및 블록 2에 모두 적용, 변수 B는 블록 2에서만 사용 가능

  10. WMLScript 문법 • WMLScript 연산자 • WMLScript는 일반 프로그래밍 언어가 지원하는 대부분의 연산자(Operator) 기능 지원 • WMLScript Operator • 대입 (Assignment) 연산자 : = 연산 기호로 앞의 값에 뒤의 값 대입 var x = 3; // x 값을 정수 3 으로 지정 • 산술 (Arithmetic) 연산자 : +, -, *, /, div, %(나머지) 와 같은 산술 계산 연산 var x = 5 / 2; // x 값은 2.5 var y = 5 div 2; // x 값은 2 (div 경우, 값 truncating) var z+=5; z++; ++z; // 모든 프로그래밍 산술식 가능 • 논리(logical) 연산자 var x = true; // x 값은 참 (true) var y = !x; // y 값은 거짓 (false)

  11. WMLScript 문법 • WMLScript 연산자 • WMLScript Operator • 문자열 결합 : + 연산기호 사용 var msg = "Hello~~~"; // msg 값은 “Hello~~~” msg = msg + ' Worlds!'; // msg 값은 “Hello~~~ Worlds!” • 비교 (Comparison) 연산자 : 결과 값은 true 또는 false var x = (18 > 19); // 18은 19보다 작으므로 x 값은 false • 콤마(comma) 연산자 var z = x + 12, 3 + y; // z 에는 (3+y)의 값이 저장됨

  12. WMLScript 문법 • WMLScript 연산자 • WMLScript Operator • typeof 연산자 : 값으로 Return 되는 변수 Type에 따라 다음 표 값을 지정 var y = 1.3432 var z = typeof y; // z  1 (y의 타입은 Integer) z = typeof (1/0); // z  4 (y의 타입은 Invalid // : 숫자는 0으로 나눌 수 없다 • isvalid 연산자 : 변수의 유효성 검사, 결과는 true or false의 Boolean 타입 Return var x = “hello”; var y = isvalid x; // x는 유효한 String 타입, y = true var z = isvalid (1/0); // (1/0)은 invalid, z = false • 조건(conditional) 연산자 : • result = 조건식 ? ex1 : ex2 (만약 조건식이 true면 result = ex1, false면, result = ex2) var x = (5 > 9) 4 : 6; // (5>9)가 false 이므로 x 값은 6

  13. WMLScript 문법 • WMLScript 제어문 • WMLScript는 조건식 구문인 if~else 문과 for, while의 Loop 문 지원 • WMLScript 조건식 구문 if ~ else • WMLScript는 If ~ else 문 지원 (elseif, endif 는 지원하지 않음) • 다음 예제는, 만약 사용자가 입력한 나이가 19보다 클 경우, allow_adult_page로 이동하고, 그렇지 않을 경우, deny_adult_page로 이동하는 예제  사용자 입장 허용 / 불가 등, 조건식에 사용 var age = Dialogs.prompt("나이입력", ""); if (age > 19) { WMLBrowser.go(“#allow_adult_page”); visit_counter++; } else WMLBrowser.go(“#deny_adult_page”); WMLBrowser.go()는 WMLBrowser Library의 go(URL) 함수 호출로, URL로 이동 기능 제공 WMLScript Library는 다음 강좌 WMLScript-II 참조 • WMLScript Loop 구문 while • while(조건식)의 값이 true일 동한 while()의 { } 블록 내 구문을 연속 실행 var counter = 0; var total = 0; while (counter < 3) { // counter값이 3보다 클때까지 연속실행 counter++; total += c; }; // while loop 실행이 끝나면 total 값은 1+2+3인 6이 된다 var x = 2; while (x>=1) { x += 1; } 이 경우 휴대폰을 사용할 수 없게 됨  무한 Loop

  14. WMLScript 문법 • WMLScript 제어문 • WMLScript Loop 구문 for • WMLScript For Loop 구문은 for(초기값; 조건식;증가값) { do_something }의 초기 변수값이 조건식을 만족할 때까지 {} 블록 내 구문을 연속 실행 • 다음 예제는, WAP의 WTAI Library 중 전화걸기 기능인 makeCall() 함수를 이용하여 전화가 걸릴때까지 전화걸기 시도를 다섯번 반복하는 for Loop 예제 var call_not_made = 1; for (var index = 0; index < 5; index++) { count += index; if (call_not_made != 0) call_not_made = WTAPublic.makeCall("0115554367"); else break; // for loop 종료, 더이상 전화걸기 시도 안함 }; • 5번 동안 전화걸기 시도 후, 전화 걸기 실패 시에는 for loop 종료 • 전화걸기 성공시, break 문에 의해 for loop 종료 WTAI Library는 WTAI 강좌 참조 • 그 밖의 WMLScript 제어문 : break, continue, return • break : while 및 for Loop의 반복 루틴을 종료 • continue : while 및 for Loop에서 continue 구문이 사용된 이하 루틴을 실행하지 않고 건너 뛰기 • return : WMLScript 함수에서 return 값을 정하기 위해 사용 (if no return문, NULL 값 return)

  15. 요약 정리 이번 시간에 소개했던 내용을 정리해 봅시다. WMLScript의 사용 용도와 구성에 대해 알아 보았습니다. WMLScript 첫번째 예제를 통해 WML 스크립트 개발의 기본을 알아보았습니다. WMLScript의 문법에 대해 자세히 학습하였습니다. 다음 시간에는 WMLScript 개발 – II에 대하여 학습하시게 될 것입니다.

  16. 평가 하기 문제1 WMLScript의 사용 목적은 무었입니까? 정답은 다음과 같습니다. 사용성이 뛰어난 동적 컨텐츠 개발을 위해 사용 해설내용: WMLScript를 사용하는 가장 큰 장점은 유선 인터넷에서 자바 스크립트를 사용하는 것과 같이 컴퓨팅 요소를 WML 문서에 추가하여 조금 더 동적인 컨텐츠를 개발할 수 있다는 점입니다. 문제2 WML 문서에서 WMLScript에 구현한 함수 이용 방법을 말해보시오 정답은 다음과 같습니다. WMLScript 함수를 WML 링크로 연결하여 사용 해설내용: WMLScript 에는 각종 컴퓨팅 기능을 수행하는 함수를 구현하며, WML 문서는 WMLScript에 구현한 함수를 링크 방식으로 호출하여 사용하게 됩니다.

  17. 평가 하기 WMLScript가 지원하는 변수 타입에 대해서 말해 보시오 문제3 정답은 다음과 같습니다. Boolean, String, Integer, Float, Invalid 변수 타입 지원 해설내용: WMLScript가 지원하는 변수 타입은 Boolean 타입, 문자 String, 정수 숫자 및 부동 소수 숫자 (Integer & Float), 그리고 사용 불가능한 변수를 지칭하는 Invalid 변수를 지원합니다.

More Related