RSS

태그 보관물: 이클립스

워드프레스 실행쿼리 보기

워드프레스의 최적화된 소스를 제대로 분석하기란 쉽지 않다. 오픈소스지만 코어 해킹은 하지 않는 관행으로 통상 콘텐츠(테마)만 수정하게된다. 그러나 코어 소스를 파악하지 않은 채 주변(테마) 소스를 수정하려고 하면 여러 궁금증과 함께 답답함이 몰려온다. 특히, 데이터 셋에 어떤 쿼리가 요청되어 메모리가 채워지는지 궁금할 것이다.

프로그램 디버깅을 해본 경험이 있다면 일일이 쿼리를 찍어 보는 일이 상당히 귀찮고 번거롭다는 걸 안다. 하지만 워드프레스에서는 환경설정 파일과 디스플레이용 파일에 몇 줄의 코드만 추가하면 된다.

워드프레스의 환경설정 파일인 wp-config.php을 열어서 다음 한 줄을 추가하자.

define(“SAVEQUERIES”, true);

이 옵션을 활성화하면 데이터베이스 쿼리를 모두 전역변수에 저장해 페이지에 표시해 준다. 워드프레스가 웹 페이지를 생성할 때 호출하는 모든 쿼리를 보여줌으로써 원활한 디버깅을 할 수 있다. 테마나 플러그인 작업을 하는 중에 문제가 생기면 이 옵션을 사용하면 데이터베이스 호출 내역을 정확하게 파악할 수 있다.

자, 다음으로 요청한 쿼리를 출력할 적당한 파일을 찾아서 열어보자. 모든 페이지에 포함되는 footer.php가 괜찮을 것 같다. 아래 코드를 추가하자.

if (current_user_can(‘install_plugins’)) {
global $wpdb;
print_r($wpdb->;queries);
}

웹 페이지를 열어 디버깅 결과를 확인해보자.

define("SAVEQUERIES", true);

[define(“SAVEQUERIES”, true); 설정]

이 코드는 모두에게 열려있지는 않다. 단지 사이트 관리자가 로그인한 경우에만 출력된다. 디버깅이 끝나면 설정을 비활성화 해주는 걸 잊어선 안 된다. 불필요한 데이터가 보이기도 하지만, 해커에게 중요한 정보가 노출될 수 있기 때문이다.

define(“SAVEQUERIES”, false); /* 쿼리 디버깅 비활성화 */

쿼리 이외에 좀 더 자세한 사항들을 디버깅하고 싶다면, 즉 중단점을 걸어 더 상세하게 들춰보고 싶다면 Xdebug를 이용해야 한다. 이전에 올린 이클립스디버깅을 참고하기 바란다.

Advertisements
 
 

태그: , , ,

눈으로 보는 워드프레스 디버깅

워드프레스는 오픈 소스다.

wordpress.org에서 무료로 전체 소스를 다운 받을수 있다는 얘기다. 언제나 펼쳐보고 수정할 수 있는 오픈 소스이지만,  최적화된 소스를 이해하기란 여간 쉽지가 않다. 더군다나 이를 응용해 새로운 테마라도 만들량이면 디버깅이 필수적이다.

디버깅 방법에는 크게 두 가지가 있다.

첫째는 주로 웹 개발에서 주로 사용되는데, 변수의 값을 직접 찍어보는 거다. 빠르고 단순하게 값을 확인할 수 있다는 장점이 있다. 그러나 이곳저곳에 디스플레이를 넣는 것 자체가 귀찮은 일이고 소스가 지저분해진다.

두번째는 개발툴을 이용한 디버깅이다. MS의 비주얼스튜디오가 대표적이다. 디버깅이 필요한 소스 라인에 브레이크 포인트를 건다. 디버거가 해당 라인을 만나면 프로그램이 일시 멈춰 값을 확인 할 수 있는 방법이다. 값 뿐만 아니라 프로그램의 호출 순서며 여러 변수의 값을 동시에 볼 수 있어 한차원 높은 분석이 가능하다. 단점은 디버깅 설정 및 사용법을 배워야 한다. 어렵지는 않지만 대부분의 개발자들이 관심을 두지 않는다. 실제 웹 개발경험이 많은 개발자도 이런 기능을 모르는 경우가 많다.

이번 강좌는 바로 두번째, 개발툴에서 제공하는 디버깅을 하려고 한다. 오픈소스로 멋진 사이트 제작을 상상하며 잠시 기뻐했다가 실제 소스를 보고 좌절했다면,  이 강좌가 바로 해답이 될 것이다. 지금 당장  php용 이클립스를 다운받아 설치하라.

이클립스는 극강의 개발툴이다. 비주얼스튜디와 버금가는 강력한 디버깅에 인텔리센스 기능,  뛰어난 UI, 다양한 호환 등 뛰어나다.

강좌는 이클립스 설치, 디버깅 설정, 디버깅 방법으로 구성한다.

 
 

태그: ,