슬라이드 1

Download Report

Transcript 슬라이드 1

차세대 모바일 디지털 컨텐츠
이번 시간에는...
17. WMLScript 개발 - I
지난 시간까지 2회차에 걸쳐 WML의 택스트 포맷, 이미지 처리, 페이지 이동, 태스크 수행과 이
벤트 처리 및 WML 사용자 Input 처리 태그 등, WML 개발에 대해서 알아보았습니다.
이번 시간에는 2회차에 걸쳐, WML 스크립트 개발에 대해서 학습해 보도록 하겠습니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
학습 목표
17. WMLScript 개발 - I
17 회차 강의에서 다루게 되는 내용은 다음과 같습니다.
WMLScript 개발 - I
이번 장의 학습 목표
한국산업기술대학교
1)
WMLScript의 사용 용도와 구성에 대해 알 수 있다.
2)
WMLScript 첫번째 예제를 통해 WML 스크립트 개발의 개념을 알 수 있다.
3)
WMLScript의 문법에 대해 알 수 있다.
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 소개
17. WMLScript 개발 - I
 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를 변환없이 직접 실행
컨텐츠서버
문서로 작성된
WMLScript 전달
한국산업기술대학교
WAP GW
WMLScript 문서를
기계어(Byte-Code)로
컴파일
무선 망
WMLScript
Byte-Code 전송
WAP 브라우저
WAP 브라우저 기능인
WMLScript VM에서
Byte-Code 실행
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 소개
17. WMLScript 개발 - I
 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
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 구성
17. WMLScript 개발 - I
 WMLScript 사용 구성
• WMLScript 문서는 WML 문서와 분리하여 작성하고, “.wmls” 파일로 저장
• WMLScript는 특정 컴퓨팅 작업을 수행할 함수들의 집합으로 구성
• WML 문서는 WMLScript로 작성한 기능 함수들을 호출하여 사용  WML 코드에서 WMLScript에 정의한
함수 호출 예 : <a href = “My_Script.wmls#function_name_calculate(5)”>
User.wml
My_Script.wmls 호출
사용자 Input A=5
A 입력값 검증
A 제곱근=?
A는 숫자?
WMLScript
My_Script.wmls Lang Library 호출
Lang Lib
Browser Lib
Float Lib
Dialogs Lib
URL Lib
Crypto Lib
A 입력값 검증
A 루트는?
A 제곱근 계산
Script Library
호출
String Lib
Result.wml
결과 값 수신
WMLScript Library
결과값 전달
WMLScript
Float Library 호출
결과 값 표시
A 제곱근 =
2.2360679775
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 사용 예
17. WMLScript 개발 - I
 WMLScript 처음 보기
• WMLScript 사용 예
• 사용자 입력 숫자 값을 받아, 입력 값의 제곱을 계산하는 함수 count()를 가진 WMLScript와 count()
함수를 호출하는 WML 문서 예제
// Square_Number.wmls
// Programmer defined functions
<wml>
extern function count()
{
// prompt for user input
var inputNumber = Dialogs.prompt( "계산 숫자 입력", "" );


// call function square and pass it inputNumber
var numberSquared = square( Lang.parseInt( inputNumber ) );


// create output message
var outputSquare = inputNumber + " 의 제곱은 " + numberSquared;

WMLBrowser.setVar( "display_result", outputSquare );
<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 -->
WMLBrowser.go( "#result_page" );
}


// variable y gets value of inputNumber
function square( y )
{
return ( y * y );
}
Square_Number.wmls
한국산업기술대학교
$Display_result
</p>
</card>

</wml>
Square_Display.wml
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 사용 예

17. WMLScript 개발 - I
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 출력
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 문법
17. WMLScript 개발 - I
 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
/* 여러줄 코멘트 ...
코멘트 ... ... */
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 문법
17. WMLScript 개발 - I
 WMLScript 변수
• WMLScript의 변수 선언은 var 로 선언하며, 프로그래밍 언어가 지원하는 모든 변수 타입 지원
• WMLScript 지원 변수
• Boolean : TRUE 또는 FALSE 값
• String : 문자
• Integer : 정수 숫자 범위 -2147483648 ~ 2147483647
• Float : 부동 소수 숫자 범위 1.17E(-38) ~ 3.40E(+38)
• Invalid : 함수 내에서 변수로 사용하지 않을 값
var
var
var
var
num_byunsu = 5;
float_byunsu = 3.14;
string_byunsu = “Hi~~”;
boolean_byunsu = true;
//
//
//
//
Integer
Float
String
Boolean
// 변수 타입은 마지막에 설정한 값의 변수 Type으로 변경된다.
// Integer에서 String으로 변수 Type 및 변수 값 변경됨
Num_byunsu = “Variable Type Changed”;
• WMLScript 변수의 범위
• 예문에서 변수 A 는 블록 1 및 블록 2에 모두
적용, 변수 B는 블록 2에서만 사용 가능
한국산업기술대학교
Block1
범위
{ // block1
var var1;
{ // block2
var var2;
}
}
Block2
범위
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 문법
17. WMLScript 개발 - I
 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) 연산자
operator
의미
&&
And
||
Or
!
Not
var x = true;
var y = !x;
한국산업기술대학교
// x 값은 참 (true)
// y 값은 거짓 (false)
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 문법
17. WMLScript 개발 - I
 WMLScript 연산자
• WMLScript Operator
• 문자열 결합 : + 연산기호 사용
var msg = "Hello~~~";
msg = msg + ' Worlds!';
// msg 값은 “Hello~~~”
// msg 값은 “Hello~~~ Worlds!”
• 비교 (Comparison) 연산자 : 결과 값은 true 또는 false
operator
의미
==
같다
!=
같지 않다
>
~보다 큰
>=
~보다 크거나 같은
<
~보다 작은
<=
~보다 작거나 같은
var x = (18 > 19);
// 18은 19보다 작으므로 x 값은 false
• 콤마(comma) 연산자
var z = x + 12, 3 + y;
// z 에는 (3+y)의 값이 저장됨
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 문법
17. WMLScript 개발 - I
 WMLScript 연산자
• WMLScript Operator
• typeof 연산자 : 값으로 Return 되는 변수 Type에 따라 다음 표 값을 지정
형식
값
Integer
0
Float
1
String
2
Boolean
3
Invalid
4
var y = 1.3432
var z = typeof y;
z = typeof (1/0);
// z  1 (y의 타입은 Integer)
// 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
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 문법
17. WMLScript 개발 - I
 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
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WMLScript 문법
17. WMLScript 개발 - I
 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)
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
요약 정리
17. WMLScript 개발 - I
이번 시간에 소개했던 내용을 정리해 봅시다.
1)
WMLScript의 사용 용도와 구성에 대해 알아 보았습니다.
2)
WMLScript 첫번째 예제를 통해 WML 스크립트 개발의 기본을 알아보았습니다.
3)
WMLScript의 문법에 대해 자세히 학습하였습니다.
다음 시간에는 WMLScript 개발 – II에 대하여 학습하시게 될 것입니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
평가 하기
문제1
17. WMLScript 개발 - I
WMLScript의 사용 목적은 무었입니까?
정답은 다음과 같습니다.
사용성이 뛰어난 동적 컨텐츠 개발을 위해 사용
해설내용: WMLScript를 사용하는 가장 큰 장점은 유선 인터넷에서 자바 스크립트를
사용하는 것과 같이 컴퓨팅 요소를 WML 문서에 추가하여 조금 더 동적인 컨텐츠를
개발할 수 있다는 점입니다.
문제2
WML 문서에서 WMLScript에 구현한 함수 이용 방법을 말해보시오
정답은 다음과 같습니다.
WMLScript 함수를 WML 링크로 연결하여 사용
해설내용: WMLScript 에는 각종 컴퓨팅 기능을 수행하는 함수를 구현하며, WML 문
서는 WMLScript에 구현한 함수를 링크 방식으로 호출하여 사용하게 됩니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
평가 하기
문제3
17. WMLScript 개발 - I
WMLScript가 지원하는 변수 타입에 대해서 말해 보시오
정답은 다음과 같습니다.
Boolean, String, Integer, Float, Invalid 변수 타입 지원
해설내용: WMLScript가 지원하는 변수 타입은 Boolean 타입, 문자 String, 정수 숫
자 및 부동 소수 숫자 (Integer & Float), 그리고 사용 불가능한 변수를 지칭하는
Invalid 변수를 지원합니다.
한국산업기술대학교
온라인 기술교육 교재 개발