Archive for July, 2007

네이버 블로그 에피소드2 오픈!!

드디어 오픈했다. T^T

스마트 에디터라 이름지어진(사실 개인적으로는 너무 식상한 이름같지만) 에디터까지 포함하면 대체 여기에 바친 내 청춘(?)이 몇개월인지… 저번달까지만 해도 이러다 짤리는거 아닌가 싶을정도로 긴장하며 빡세게 작업했는데, 어쨌거나 오픈했다.

나를 비롯한 우리팀이 작업한 것은 이번 ep2의 핵심(…이겠지?)이 되는 바로 이것들!

blog_s2_ep2.jpg

정말 감개무량, 무한감격, 눈물이 주룩주룩 T^T

그나저나 잠도 제대로 못자고 4시부터 계속 깨어있었더니 이제 눈꺼풀이 무거워지는구나 =_=;;

XDebug를 이용한 PHP 디버깅 – 3

이번엔 프로파일링 기능을 살펴보겠습니다. 프로파일링 기능을 이용하면 어떤 함수에서 부하가 걸렸는지 또는 어느 정도의 빈도로 실행되었는지 등을 점검할 수 있어 보다 최적화된 코드를 만들 수 있습니다.
XDebug에는 프로파일링 기능을 사용하는 두 가지 방법이 있습니다.

  1. 모든 스크립트에 대해서 자동으로 프로파일링을 하고 싶을 경우
    php.ini 파일에 xdebug.profiler_enable = 1 로 설정하면 됩니다.
  2. 특정 파일에 대해서만 프로파일링을 하고 싶을 경우
    php.ini 파일에서 xdebug.profiler_enable_trigger = 1 로 설정하고 GET 혹은 POST 방식으로 XDEBUG_PROFILE 이라는 파라미터를 전송하기만 하면 됩니다. 예를 들어 프로파일링 기능을 사용하려면, 다음과 같이 URL을 호출합니다.
    [code type=console]http://example.com/sample.php?XDEBUG_PROFILE=1[/code]

위의 두 방법 모두 공통으로 xdebug.profiler_output_dir 을 설정해야 합니다. 설정하지 않으면 기본으로 /tmp 가 지정되는데, 지금 우리가 보고 있는 것은 윈도우이므로 /tmp 가 유효하지 않으므로 경로를 수정해줘야 합니다.

프로파일링 파일은 CacheGrind 의 파일 포맷과 호환되도록 되어있습니다. 따라서 CacheGrind 파일을 읽을 수 있는 어플리케이션이 있으면 되는데, Linux의 KDE 환경에서는 KCacheGrind 가 있고, Windows 환경에는 WinCacheGrind가 있습니다. 기능이나 디자인 면에서는 KCacheGrind가 더 낫다고 하는데 아쉬운 대로 WinCacheGrind 를 쓰도록 하겠습니다. ^^

Read more

XDebug를 이용한 PHP 디버깅 – 2

기본기능 (link)

우선 간단한 기본 기능부터 살펴보도록 하겠습니다. 기본기능은 http://xdebug.org/docs/basic 의 문서를 참고로 작성했습니다. 각 함수에 대한 레퍼런스는 관련 링크를 참고하시기 바랍니다.
테스트할 debug.php 파일을 작성합니다.

function sample($str) {
  echo 'Called @ '.
    xdebug_call_file().
    ':'.
    xdebug_call_line().
    ' from '.
    xdebug_call_function();
}
 
$ret = sample(array('Derik'));

브라우저에서 실행한 결과는 다음과 같습니다.

Called @ C:\Program Files\xampplite\htdocs\debug.php:11 from {main}

자 이번엔 debug2.php 파일을 작성해보겠습니다.

include 'debug.php';
 
function caller_sample($str) {
  sample($str);
}
 
echo "<br />";
sample('gony');
 
echo "<br />";
caller_sample('taegon');
?>
Called @ C:\Program Files\xampplite\htdocs\debug.php:11 from {}
Called @ C:\Program Files\xampplite\htdocs\debug2.php:5 from {main}
Called @ C:\Program Files\xampplite\htdocs\debug2.php:5 from caller_sample

예제만 봐도 이해가 되죠? ^^ 어느 파일에서, 몇번째 라인에서, 어떤 클래스 혹은 어떤 함수가 해당 함수를 호출했는지 찾아낼 수 있는 기능입니다. 그 외에는 메모리 사용량을 알아볼 수 있는 xdebug_memory_usage() 와 최대 순간 메모리 사용량을 알아볼 수 있는 xdebug_peak_memory_usage() 등이 유용합니다. xdebug_time_index() 를 이용하면 실행 경과 시간을 체크하기에도 용이합니다.

Read more

Page 2 of 512345