Tech/HTML52012. 6. 4. 14:57


제목에는 일단 오차가 발생하다고 했지만, 표현이 좀 이상하네요.


여튼, 요즘은 HTML5 관련 작업을 하고 있는데,

마주한 문제가 발생했을 때마다 기록해보려고 합니다.


크롬에서 Video, Audio 태그를 사용하여 미디어를 재생하는 중에 Pause했다가, 다시 바로 Play를 시키면,

currentTime, 즉 재생 시간이 0.8 ~ 1.0초 뒤로 점프하는 경우가 생깁니다.

예를 들어, 1.0초에서 Pause시킨 뒤, 바로 Play를 하면 2.0초쯤에서 재생이 시작됩니다.

처음엔 잘 몰랐는데, 황당한 경우가 발생한거죠;


딱히 해결책을 찾기 어려워서, Seek를 해봤습니다. 즉 재생 콘트롤러에서 드래깅하여 재생 시간을 이동한 뒤 재생을 시작해보니 제시간에 재생을 하더군요.


혹시나해서, Pause했을 때 currentTime을 0으로 설정했다가 다시 미디어 시간을 적용한 뒤 재생하니 점프하는 경우 없이 재생합니다.




이렇게 처리한 경우, 문제가 하나 있습니다.

Video 태그의 경우, Pause 했을 때 화면이 0초로 왔다 다시 제시간으로 돌아가는 모습을 볼 수 있습니다. -_-;

(꼼수는 꼼수일 뿐... )


Posted by 알 수 없는 사용자
Tech/PHP 개발2011. 7. 28. 18:49

addon은?

  • XE가 모듈을 실행할 때 함께 실행되는 PHP 코드
  • 적용할 모듈과 실행 시점을 지정할 수 있다.
    • 예) board 모듈이 실행될 때, 레이아웃을 화면에 출력하기 직전에 실행
    • 실행 가능한 시점
      • before_module_init
      • before_module_proc
      • after_module_proc
      • before_display_content

   

XE 기본 counter 애드온을 예로 들어 설명하겠습니다.

  • 기능: counter 애드온은 해당 모듈의 접근 횟수를 기록하는 애드온입니다.
  • 구성:

    conf/info.xml<클래스_이름>.addon.php 이 기본 구성 파일입니다.

    • info.xml:

      애드온의 기본 정보를 담고 있습니다. 관리자의 기능 설정>애드온 메뉴에 보여집니다.

    • counter.addon.php:

      모듈의 로드와 함께 실행될 코드가 작성되는 부분입니다. 주로 if문을 이용해 특정 시점에만 실행되도록 제한을 가합니다. 아래 코드는 addon이 설치되어 있고, admin 모듈이 아니고, 반환 대상이 HTML인 경우(view의 경우 대개 HTML이겠고 controller라면 XML/JSON인 경우가 많겠죠), 모듈이 초기화되기 전에 코드를 실행하겠다는 의미입니다.

     

그럼 이제 hello_world라는 간단한 애드온을 직접 작성해 봅시다.

hello_world 애드온은 page모듈의 상단에 hello world를 출력하는 애드온입니다.

   

우선 addons 폴더 안에 기본적으로 갖춰야 할 파일들을 생성합니다.

   

info.xml을 다음과 같이 작성합니다.

이외에도 addon 설정에 이용되는 extra_vars 등을 지정할 수 있지만, 지금은 필요하지 않습니다.

   

hello_world.addon.php도 가장 기본적인 내용을 작성합시다. HTML 코드를 생성한 뒤에 조작해야 하니, 모듈이 실행된 이후에 애드온이 실행되도록 합니다.

   

이제 실제로 hello world를 프린트하는 부분을 작성해야겠죠. 이 부분은 JavaScript로 작성해 봅시다.

hello_world 폴더 아래에 js라는 폴더를 만들고 hello_world.js를 생성해 줍시다. 지금은 똑같이 쓰긴 했지만, 자바스크립트 파일 이름은 애드온 이름과 달라도 됩니다 :)


hello_world.js 에서는 jQuery를 이용해 <body> 의 맨 뒷부분에 'hello world'를 추가하면 되겠죠?

   

자, 이제 page 모듈이 실행될 때 이 js파일을 실행시키도록 hello_world.addon.php 을 수정해 줍시다.

   

한 번 잘 되나 테스트해 볼까요? 우선 관리자 페이지에서 hello_world 애드온을 사용하도록 설정해 주셔야 합니다.

   

그리고 페이지 모듈을 하나 새로 만들어서 접속해 보시면, hello world가 출력되는 걸 보실 수 있습니다!

   

잘 되나 의심되신다면 위젯을 한두개 추가해 보세요. 저는 언어 선택 위젯을 추가해 봤습니다.   

   

잘 되네요 :)

'Tech > PHP 개발' 카테고리의 다른 글

Selenium 설치 및 사용법  (0) 2011.07.04
PHPUnit 설치  (0) 2011.07.04
XE 개발, Firebug + FirePHP로 디버그하기  (0) 2011.06.30
Xdebug를 이용한 PHP 디버그  (1) 2011.06.29
Posted by 알 수 없는 사용자
Tech/iOS 개발2011. 7. 21. 11:39

Xcode 4는 이전 버전과 UI가 완전히 달라져서 힘드네요 orz

전에 EXC_BAD_ACCESS 를 디버깅하는 방법을 포스팅한 적이 있는데, 달라진 UI에 맞추어 다시 설명해보도록 하지요.

Environment 설정이 이제는 Scheme 쪽으로 통합되었습니다. 좌측 상단에 있는 시뮬레이터로 실행할지 실제 장비에서 실행할지 선택하는 부분이 Scheme 선택 UI 입니다.


여기서 Edit Scheme... 을 고릅니다.


그 후 뜨는 대화창에서 좌측의 Run <앱 이름> 항목을 선택합니다. 그리고 Arguments 탭으로 가서 Environment Variables 섹션에 NSZombieEnabled 를 추가해주면 됩니다. 한 번 추가해놓고 필요할 때에만 체크박스에 체크해서 사용하면 됩니다.


Posted by wafe
Tech2011. 7. 19. 15:26

※ Selenium 설치, 실행법은 다음 링크를 참고하세요.

http://xinics.tistory.com/entry/Selenium-설치-및-사용법

   

인터페이스

 

 

1.        작성한 테스트 스크립트가 보여지는 창

2,3,4.    명령어 입력 창. 각각 명령어, 대상, 값

5.         클릭하면 target에 지정된 엘리먼트가 highlight됩니다.

6.        클릭하면 기록 모드로 변하고, 다시 클릭하면 기록을 중지합니다. 기록 모드인 상태로 브라우저(파이어폭스)를 사용하면 실행한 행동들이 기록됩니다.

7.        테스트 실행 버튼.

8.        테스트 결과. 성공한 테스트와 실패한 테스트의 개수를 보여 줍니다.

 

튜토리얼

 

XE에서 게시판에 글을 작성했을 때 최신 댓글 위젯에 새 글이 표시되는 것을 테스트하는 테스트 스크립트를 작성해 보면서 Selenium의 사용법을 배워 보도록 하겠습니다.

튜토리얼에서 사용되거나 자주 쓰이는 명령어/셀렉터는 글 아래 부분에 정리해 두었으니 함께 보세요.

 

글이 하나, 댓글이 하나 있는 상태를 초기 상태라고 가정합시다.

 

Selenium IDE를 켜고 게시판에 접속한 뒤,

 

글 제목을 클릭해 봅시다.

 

Selenium에 open, clickAndWait 커맨드가 입력된 것을 알 수 있습니다. 그런데 clickAndWait의 대상이 글의 제목으로 설정되어 있네요. 글의 제목이 달라져도 사용할 수 있도록 target을 수정해 봅시다.

우선 Selenium의 기록 기능을 끄고,

이전 페이지로 돌아간 다음에 Firebug를 이용해 HTML 구조를 확인합니다. Firebug 콘솔의 화살표 버튼을 누른 상태로 알아볼 위치를 클릭하면 그 부분의 HTML 코드가 보입니다.

 

HTML 코드를 보니 <td class="title"> 안의 <a>태그를 클릭하면 되는 것 같습니다. target을 css=td.title > a로 수정하고 Find 버튼을 눌러 봅시다.

 

우리가 클릭하려고 했던 링크가 노랗게 highlight되는 걸 확인할 수 있습니다. 제대로 선택한 게 맞네요. 그럼 다음으로 넘어갑시다.

 

덧글을 쓰려면 덧글 텍스트 상자를 target으로 지정해야겠죠. Firebug로 다시 한 번 찾아 봅시다.

 

이번엔 <body class="xe_content">를 선택하면 되겠네요. 확인해 봅시다.

 

그럼 이제 댓글을 작성해야겠죠? 커맨드는 type, 값은 '2등!'으로 입력해 봅시다. 작성한 명령을 더블 클릭하면 실행이 됩니다.

 

텍스트 창에 댓글이 제대로 입력되었네요. 명령이 녹색으로 변한 건 오류 없이 실행되었다는 의미입니다.

그럼 이제 마지막으로 댓글 등록 버튼을 누르면 되겠네요. 다시 Selenium의 기록 모드를 켠 다음 댓글 등록 버튼을 클릭해 봅시다.

 

 

댓글이 등록되었고, Selenium에는 clickAndWait css=input[type=submit] 이라고 잘 기록되었네요.

 

자 이제 최신 댓글 페이지로 돌아가서 댓글이 잘 등록되었나 확인해 볼까요?

open 커맨드를 이용해 최신 댓글 페이지 링크로 이동하니

 

 

댓글이 잘 작성되어 있네요. 그럼 이제 테스트를 해 봅시다. 가능한 명령어를 확인하기 위해 2등! 링크에서 오른쪽 버튼을 눌러 봅시다.

 

 

우리는 assertText를 사용할 수 있을 거 같네요. 대신 Target을 좀 손봐야 할 것 같습니다.

 

 

첫 번째 <li>의 <a> 태그니 XPath형태로 //li[1]/a 로 지정하면 되겠네요. 다시 확인해 보고,

 

 

자, 이제 테스트를 작성했으니, 실행해 볼까요? Selenium IDE의 테스트 실행 버튼을 클릭해 봅시다.

 

 

자! 모두 성공했습니다 J

 

 

명령어

 

명령어

설명

Target

Value

예제

open

페이지를 엽니다.

URL

  

open /admin

type

텍스트를 입력합니다.

엘리먼트

텍스트

type uid admin

click

클릭합니다. (페이지가 전환되지 않는 경우 clickAndWait 대신 사용하고 waitFor~ 로 기다리도록 합니다)

엘리먼트

  

click //input[@type='submit']

clickAndWait

클릭하고 페이지가 전환될 때까지 기다립니다. 페이지가 전환되지 않으면 실패합니다.

엘리먼트

  

clickAndWait //input[@type='submit']

select

<select> 태그의 리스트에서 선택합니다.

엘리먼트

select sortkey_text label=날짜 △

pause

지정한 시간 동안 멈춥니다. (밀리초)

시간

  

pause 300

assertText

텍스트를 검증합니다. 텍스트가 다르면 실패합니다.

엘리먼트

텍스트

assertText num_channel 5/6

assertElement

Present

엘리먼트가 있는 지 검증합니다. 엘리먼트가 없으면 실패합니다.

엘리먼트

  

assertElementPresent //tr[2]

assertElement

NotPresent

엘리먼트가 없는 지 검증합니다. 엘리먼트가 있으면 실패합니다.

엘리먼트

  

assertElementNotPresent //tr[2]

assertVisible

엘리먼트가 보이는 상태인지 검증합니다. 엘리먼트가 숨겨져 있다면 실패합니다.

엘리먼트

  

assertVisible newest_comments

assertNotVisible

엘리먼트가 보이지 않는 상태인지 검증합니다. (예: display: none) 엘리먼트가 보이는 상태라면 실패합니다.

엘리먼트

  

assertNotVisible newest_comments

assertConfirmation

confirm()의 메시지를 검증합니다. 해당 메시지를 가진 confirm()이 실행되지 않으면 실패합니다.

메시지

  

assertConfirmation 수정하시겠습니까?

assertAlert

alert()의 메시지를 검증합니다. 해당 메시지를 가진 alert()가 실행되지 않으면 실패합니다.

메시지

  

assertAlert 채널을 생성하였습니다.

waitForText

엘리먼트에 지정한 텍스트가 나타날 때까지 기다립니다. 시간 내에 나타나지 않으면 실패합니다.

엘리먼트

텍스트

waitForText num_channel 5/6

waitForAlert

target에 지정한 alert()가 나타날 때까지 기다립니다. 시간 내에 나타나지 않으면 실패합니다.

메시지

  

waitForAlert 제목을 입력해주세요.

 

대상

Selenium은 대상 지정 방식으로 DOM, CSS, XPath 방식을 지원합니다.

이 글에서는 그 중 CSS, XPath 방식을 예제를 통해 간단히 설명하도록 하겠습니다.

 

튜토리얼에서 사용된 최신 댓글 위젯을 조금 간단하게 수정해 봤습니다.

   

   

   

CSS 셀렉터

Selenium의 target으로 CSS 셀렉터를 이용하기 위해서는 앞에 css= 접두어를 붙여야 합니다. (위의 튜토리얼에 사용된 예가 있으니 확인하세요)

 

엘리먼트

CSS 셀렉터

설명

#title 

id='title'인 것

p#title 

<p> 중 id='title'인 것

div#title_bar #title 

<div id="title_bar">의 자손 중 id='title'인 것

※ 원래는 둘 모두 선택되어야 하나

Selenium은 첫 번째 것만 선택

li.comment a 

<li class='comment'>의 자손인 <a>

li.comment > a 

<li class="comment">의 직계 자식인 <a>

li.comment > a[href='/746'] 

<li class="comment">의 직계 자식인 <a> 중 href='/746'인 것

a[href='/746'] 

<a> 중 href='/746'인 것

li.comment > a[href='/747'] 

<li class="comment">의 직계 자식인 <a> 중 href='/747'인 것

a[href='/747'] 

<a> 중 href='/747'인 것

img#button_hide 

<img> 중 id='button_hide'인 것

img[align=right] 

<img> 중 align='right'인 것

 

XPath 셀렉터

Selenium은 XPath가 기본으로 설정되어 있으니, XPath를 사용하는 경우에는 별도의 접두어를 붙일 필요가 없습니다.

 

엘리먼트

XPath 셀렉터

설명

//*[@id='title']

아무 태그나 id='title'인 것

//p[@id='title']

<p> 중 id='title'인 것

//div[@id='title_bar']/p[@id='title']

<div id="title_bar">의 직계 자식 중 id='title'인 <p>

※ 원래는 둘 모두 선택되어야 하나

Selenium은 첫 번째 것만 선택

//li[@class='comment']//a

<li class="comment">의 자손인 <a>들

//li[@class='comment']/a

<li class="comment">의 직계 자식인 <a>들

//li[@class='comment'][1]//a

<li class="comment"> 중 첫 번째 것의 자손인 <a>

//li[@class='comment'][1]/a 

<li class="comment"> 중 첫 번째 것의 직계 자식인 <a>

//a[@href='/746']

<a> 중 href='/746'인 것

//li[@class='comment'][2]/a

<li class="comment"> 중 두 번째 것의 직계 자식인 <a>

//li[@class='comment'][last()]/a 

<li class="comment"> 중 마지막 것의 직계 자식인 <a>

//a[@href='/747']

<a> 중 href='/747'인 것

//img[@id='button_hide']

<img> 중 id='button_hide'인 것

//img[@align='right']

<img> 중 align='right'인 것

Posted by 알 수 없는 사용자
Tech/PHP 개발2011. 7. 4. 14:41

Selenium은 웹 어플리케이션을 위한 테스팅 프레임워크입니다.

   

※ Selenium을 설치하기 전에 PHPUnit을 설치해야 합니다. PHPUnit 의 설치는 이전 블로그 글을 참고하세요.

http://xinics.tistory.com/entry/PHPUnit-설치

   

Selenium 서버 설치 및 실행

  1. http://seleniumhq.org/download/ 에서 Selenium Server를 다운받습니다. 
  2. java -jar 명령으로 다운받은 파일을 실행시킵니다. 끝!

     

Selenium IDE 설치 및 사용

  1. Selenium IDE는 파이어폭스 플러그인으로 제공됩니다.

    http://seleniumhq.org/download/

    에서 Selenium IDE의 최신 버전을 다운받습니다. 

  2. 파이어폭스의 메뉴>부가기능 창에서 톱니바퀴>파일에서 부가 기능 설치 를 선택합니다.

     

  3. 아까 다운받은 파일을 선택하면 설치가 진행됩니다.

    설치가 완료된 후 브라우저를 재시작합니다. 

  4. 테스트를 원하는 페이지에서 메뉴(Alt)>도구>Selenium IDE를 실행하고 IDE 창 우상단에 빨간색 기록 버튼이 눌려 있는 지 확인합니다. (눌려 있지 않으면 눌러서 기록을 시작해 주세요)

     

  5. 브라우저에서 자동화하기 원하는 동작을 실행하면 자동으로 Selenium IDE에 스크립트로 저장됩니다.

     

  6. 작성된 스크립트를 PHPUnit(또는 다른 테스트 프레임워크) 코드로 내보낼 수 있습니다.

     

    생성된 코드입니다.

     

  7. 이제 생성된 코드를 실행하시면 자동으로 테스트가 진행됩니다.

    (Selenium 서버가 실행되고 있어야 합니다)

'Tech > PHP 개발' 카테고리의 다른 글

XE 애드온(addon)개발하기  (0) 2011.07.28
PHPUnit 설치  (0) 2011.07.04
XE 개발, Firebug + FirePHP로 디버그하기  (0) 2011.06.30
Xdebug를 이용한 PHP 디버그  (1) 2011.06.29
Posted by 알 수 없는 사용자
Tech/PHP 개발2011. 7. 4. 12:25

※ 절대 PHP 설치 경로에 공백이 있으면 안됩니다. 만약 경로에 공백이 있다면 다시 설치해 주세요.

예)

C:\Program Files\PHP

X

C:\PHP

O

   

PHPUnit 설치 및 이클립스에 세팅하기

  1. php.ini 파일에서 일부 기능을 주석 처리(비활성화)합니다. 해당 dll 파일들이 실제로 PHP 설치 경로에 포함되어 있지 않기 때문에 활성화된 경우 PEAR를 설치할 때 오류가 납니다.

     

  2. (PHP를 Windows Installer로 설치하신 경우)

    일부 파일이 installer엔 없고 zip 파일에만 있어서 PEAR 설치 시 문제가 발생합니다. http://windows.php.net/download/ 에서 설치된 PHP와 같은 버전의 zip 파일을 다운받아 열고, zip 파일 안의 extras 폴더를 PHP가 설치된 경로(예: C:\PHP)에 복사해 줍니다.

     

  3. 환경 변수를 설정해 줍니다.

    제어판>시스템 및 보안>시스템 환경 변수 편집 에서 MIBDIRS라는 변수를 만들어 아까 옮긴 extras 폴더 아래 mibs라는 폴더를 가리키도록 설정합니다.

    예) c:\PHP\extras\mibs

     

  4. 윈도우 쉘을 관리자 권한으로 실행시킵니다.

     

    PHP가 설치된 경로에서 go-pear.bat 을 실행시키면 PEAR가 설치됩니다.

     

    설치가 완료되고 아래의 메시지가 나타나면

     

    아래의 파일을 더블클릭하여 레지스트리에 등록합니다.

     

  5. 관리자 권한으로 실행시킨 쉘에서 아래 커맨드를 차례로 입력해 PHPUnit을 설치합니다.

     

    잘 안되면

    하고 다시. 

  6. 설치가 완료되었으면 다음과 같은 내용을 가지는 php 파일을 만들어 테스트를 해 봅시다.

     

    쉘에서 'phpunit PHPUnit코드경로' 를 실행시켜 아래와 같은 화면이 나오면 성공입니다.

     

  7. 이클립스 플러그인으로 사용하기 위해서는

    Help>Install New Software>Add 로

    http://www.phpsrc.org/eclipse/pti 를 추가하고 설치를 진행하시면 됩니다.

     

이클립스에서 PHPUnit으로 테스트하기

  1. 이클립스에서 새 프로젝트를 만들고 SampleClass라는 클래스를 가진 php 파일을 하나 만들어서 다음과 같이 작성해 봤습니다.

     

  2. 해당 php 파일을 오른쪽 클릭하고 New>Other를 선택합니다.

     

  3. PHPUnit Test Case를 선택하고 Next를 누르고

     

  4. 나오는 화면에서 Finish를 누릅니다.

     

  5. 그러면 자동으로 PHPUnit 테스트 스크립트가 생성됩니다.

     

  6. 실제 테스트 코드를 작성하고

     

  7. 오른쪽 클릭>PHP Tools>PHPUnit>Run PHPUnit Test 로 테스트를 실행했을 때

     

  8. 아래와 같이 녹색 등이 켜지면 성공!

     

문제 해결(Troubleshooting) 레퍼런스

'Tech > PHP 개발' 카테고리의 다른 글

XE 애드온(addon)개발하기  (0) 2011.07.28
Selenium 설치 및 사용법  (0) 2011.07.04
XE 개발, Firebug + FirePHP로 디버그하기  (0) 2011.06.30
Xdebug를 이용한 PHP 디버그  (1) 2011.06.29
Posted by 알 수 없는 사용자
Tech/PHP 개발2011. 6. 30. 12:45

Firebug + FirePHP 설치

  1. Firefox를 다운받아 설치합니다.

    http://www.mozilla.com/firefox

  2. 도구>부가 기능에 들어가서

    Firebug와 FirePHP를 검색해 설치하고 브라우저를 재시작합니다.

  3. 브라우저 우하단의 벌레를 클릭합니다.

  4. Firebug 메뉴에서 Net 탭을 클릭하고 Enable을 눌러 Net 패널을 활성화시킵니다.

   

Firebug를 이용해 XE 디버그하기

  1. XE 프로젝트에서 /config/config.user.inc.php 를 만들어서 열고 다음과 같이 설정합니다.

    각 설정값에 대해서는 /config/config.user.php 에 자세히 설명되어 있으나, 간략히 설명하면 다음과 같습니다.

    __DEBUG__ == 1: debugPrint() 함수를 통해 메시지 출력

    __DEBUG_OUTPUT__ == 2: Firebug 콘솔에 출력

    __DEBUG_PROTECT__ == 0: 모든 IP에서 디버그 메시지 확인 가능

  2. 디버깅 메시지를 출력하고 싶은 php 파일을 열고 다음과 같이 debugPrint() 함수에 메시지를 설정합니다.

  3. Firefox에서 해당 페이지에 접속하면 설정해 둔 메시지가 Firebug 콘솔에 출력되는 것을 확인할 수 있습니다.

  4. 만약 Firebug가 아니라 파일에 메시지를 출력하고 싶다면 /config/config.user.inc.php 에서 __DEBUG_OUTPUT__을 0으로 설정합니다. 그러면 메시지가 Firebug 콘솔 대신 /files/_debug_message.php 파일에 저장됩니다.

'Tech > PHP 개발' 카테고리의 다른 글

XE 애드온(addon)개발하기  (0) 2011.07.28
Selenium 설치 및 사용법  (0) 2011.07.04
PHPUnit 설치  (0) 2011.07.04
Xdebug를 이용한 PHP 디버그  (1) 2011.06.29
Posted by 알 수 없는 사용자
Tech/PHP 개발2011. 6. 29. 18:31

Xdebug는 PHP 프로그램을 한 줄씩 실행시키며(line by line) 디버깅할 수 있는 PHP 확장 프로그램입니다.   

Xdebug 설치

  1. phpinfo() 를 실행시킵니다. 아래와 같은 코드를 포함하는 PHP 파일을 작성해서 브라우저에서 접속하면 됩니다.

       

       

  2. 위와 같은 화면을 확인했으면 그 페이지의 소스 코드(HTML)를 복사합니다.

       

  3. Xdebug 홈페이지의 '맞춤 설치' 페이지에 접속합니다.
    http://www.xdebug.org/find-binary.php

       

  4. 흰 텍스트박스에 아까 복사한 코드를 붙여 넣고, 아래의 Analyse my phpinfo() output 버튼을 누릅니다.   

       

  5. 결과 페이지의 아래에 다운받아야 하는 파일과 설치 방법이 설명되어 있으니 따라 하시면 됩니다.   

       

    로컬 머신에서 작업한다고 가정했을 때, php.ini 에 디버깅을 위해 추가로 작성해야 하는 설정은 다음과 같습니다.   

       

  6. (IIS) 서버를 재시작하신 뒤 다시 phpinfo()의 결과를 확인했을 때, 아래와 같이 'with Xdebug…'라는 문구가 있으면 설치 성공입니다.   

   

이클립스에서 디버깅하기

  1. 디버그하려는 프로젝트에서 Run>Debug Configurations 를 엽니다. (이클립스 Helios 버전 기준입니다. 버전에 따라 메뉴가 다른 곳에 위치할 수 있습니다)   

       

  2. PHP Web Page 메뉴에서 New 를 선택합니다.   

       

  3. 새 페이지가 만들어지면
    Server Debugger: XDebug
    File: (처음) 실행할 php 파일
    으로 설정하고 Apply를 누릅니다.   

       

  4. 이제부턴 F11 또는 메뉴의 벌레 버튼를 이용해서 디버그 모드를 실행하실 수 있습니다.
    (처음 실행하시면 'debug perspective를 사용할 거냐'라고 물어보는데, Yes 하시면 됩니다)   

    디버그 모드   


'Tech > PHP 개발' 카테고리의 다른 글

XE 애드온(addon)개발하기  (0) 2011.07.28
Selenium 설치 및 사용법  (0) 2011.07.04
PHPUnit 설치  (0) 2011.07.04
XE 개발, Firebug + FirePHP로 디버그하기  (0) 2011.06.30
Posted by 알 수 없는 사용자
Tech/Silverlight2011. 6. 22. 16:52

Silverlight 5에는 3D 그래픽 기능이 추가되었습니다. (기존에는 Silverlight에서 자체적으로 지원하지는 않고 서드파티 라이브러리만 있었습니다Silverlight 5 3D 그래픽은 XNA 그래픽 라이브러리를 사용하며 GPU 가속이 지원됩니다.

XNA는 
내부적으로 DirectX의 일부 기능을 사용하기 때문에 사용 환경에 제약이 있습니다.
 

  • DirectX 9.0 이상
  • Windows XP 이상 (XP, Vista, 7)
     

사용법은 직접 다루지는 않고 링크로 대체하도록 하겠습니다.

3D
튜토리얼

http://silverlight.bayprince.com/tutorials.php

 

3D 데모

http://david.blob.core.windows.net/babylon/Babylon.html

마우스를 이용해 카메라 시점을 변경할 있고 키보드 화살표를 이용해 이동할 있습니다.

 

Silverlight 3D 참고 자료: http://msdn.microsoft.com/en-us/library/gg197424(v=XNAGameStudio.35).aspx

Posted by 알 수 없는 사용자
Tech/Silverlight2011. 6. 22. 15:58

Silverlight 5에는 동영상을 재생할 하드웨어(GPU; 그래픽카드 ) 이용해 CPU 부하를 줄이는 기술이 추가되었습니다.

 

하드웨어 가속을 사용하는 법은 간단합니다.

실버라이트 파일(.xap) 파일을 명시한 <object> 태그 안에 <param>으로 enableGPUAcceleration 속성을 주면 됩니다.


enableGPUAcceleration 자체는 Silverlight 5 이전에도 원래 있었던 속성이고, 바뀐 점은 속성을 켰을 동영상 재생 GPU 가속을 사용하게 되었다는 점입니다.


Silverlight 5 Beta 이뤄진 간단한 성능 테스트입니다.

번째 사진은 Silverlight 없이 미디어 플레이어로 동영상을 재생했을 ,

번째 사진은 GPU 가속 없이 Silverlight 동영상을 재생했을 ,

번째 사진은 GPU 가속을 켜고 Silverlight 동영상을 재생했을 ,

번째 사진은 GPU 가속과 함께 BitmapCache 사용했을 때의 CPU 사용도입니다.

(높이가 낮을 수록 좋고, 좌우 길이는 성능과 관계 없습니다)


번째 사진과 비교했을 , GPU 가속을 것과 켜지 않은 것의 차이가 생각보다 크지 않은 것을 있습니다. 하지만, BitmapCache 사용했을 때는 CPU 사용도가 크게 낮아진 것을 확인할 있습니다.

BitmapCache 동영상 디코딩 자체에 영향을 주지는 않습니다만 GPU 가속을 사용할 함께 사용하면 이점이 있다고 합니다. (자세한 것은 아래의 원문을 참고하세요)

출처: http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2011/05/03/silverlight-5-beta-rough-notes-hardware-decoded-h-264.aspx

하드웨어 가속 디코딩에 대해서는 정식 릴리즈가 나올 때까지 많은 개선이 이루어질 거라고 생각하기 때문에, 이후 정식 버전을 기대해 봐야겠습니다.


 MediaElement BitmapCache 적용하는 방법은 다음과 같습니다.
 


캐시에 대한 다른 의견도 있습니다. 저사양 컴퓨터에서 MediaElement 캐시를 사용하면 성능이 하락한다는 의견인데 확인해 필요가 있을 같습니다.

출처: http://msdn.microsoft.com/en-us/library/ee309563(v=VS.96).aspx#1

Posted by 알 수 없는 사용자