이클립스 디버깅 도구로 개발 생산성 높이기


초창기 국내에서 자바 진영을 시작으로 각광받았던 이클립스는 이제는 소스코드 IDE 개발도구로 여러 개발언어에서 가장 유명한 개발 도구가 되었습니다.

디자이너나 퍼블리셔가 담당하는 부분을 넘어서는 부분인 웹프로그래밍이나 서버쪽에서는 일명 프로그래머라하는 웹개발자나 서버개발자들이 있습니다.
퍼블리셔와는 틀리게 웹개발자들은 DB와 서버쪽인 연동된 소스 코딩을 많이 하게됩니다. 현재 국내 웹개발 분야에서는 자바 프로그래머나 PHP 프로그래머, C# 닷넷 ASP 프로그래머들이 주로 포진해있습니다.


웹개발자는 프로그램 코딩을 위해서 에디터 프로그램이나 IDE 개발도구를 이용합니다. 국내에서 많이 사용하는 에디터 프로그램는 에디트플러서(EditPlus), 울트라에디터(UltraEdit), 아크로에디터, 서브라임텍스트(주로 퍼블리셔나 디자이너가 선호) 등 여러가지가 있습니다.

에디터 프로그램이 가볍고 간단히 사용이 가능해서 많이 사용하지만 코드 어시스트나 디버깅 때문에 IDE 개발도구인 이클립스를 사용하는 것이 개발 생산성 향상에 좋습니다.

프로그램 코딩에 있어서 개발자를 괴롭히는 것 중의 하나는 디버그 작업입니다. 이클립스와 같은 자동화된 디버깅 도구가 없다면 개발자들은 언제나 System.out.println()과 같은 일종의 문자출력 프린트 명령어로 에러나는 부분은 소스상에 적어놓고 테스트를 해야는 번거로움이 있을 것입니다.

※ 이어지는 내용입니다. 아래 포스팅을 참고바랍니다.



이클립스 디버깅 도구 Xdebug


디버깅 도구로는 Xdebug나 Zend Debugger가 있습니다. 일반적으로 APM나 오토셋을 설치하면 기본적으로 Zend Debugger 가 내장되어 있습니다.
여기에서는 Xdebug와 Zend Debugger 중에서 Xdebug를 사용해서 이클립스에 연결하겠습니다.


먼저 Xdebug를 사용하기 위해서는 Xdebug 에서 제공하는 DLL 파일을 설치해야만 합니다.
현재 DLL의 종류는 현재 vc6에서 v14까지 있습니다.


Xdebug를 자신의 서버에 올바르게 설치하기 위해서는 먼저 아래의 세 가지 사항은 확인해야만 합니다.

※ Xdebug 설치전 확인 사항

첫째, VC 버전
둘째, PHP 버전
세째, TS라 부르는 Thread Safe Bulid 값

자신의 서버의 사양을 확인하는 작업은 phpinfo() 함수를 통해서 간단하게 확인을 할 수 있습니다.


phpinfo() 함수로 나의 서버에 설치할 Xdebug 사양 확인하기


먼저 이클립스를 구동합니다. 왼쪽 PHP Explorer 윈도우에서 wordpress-eclipse 폴더에서 마우스 오른쪽을 클릭해서 New > PHP File 메뉴를 클릭합니다.

 

새로운 PHP 파일을 생성할 수 있는 윈도우가 나타납니다.
서버의 정보를 확인할 phpinfo.php란 더미 파일을 하나 만들 것입니다.

파일 이름란에 phpinfo.php 를 입력하고 Finish 버튼을 클릭합니다.



phpinfo.php란 새 파일이 열립니다.



아래와 같이 PHP 소스코드를 입력하고 Ctrl+S로 해당 내용을 저장합니다.



이제 왼쪽 PHP Explorer 윈도우에서 phpinfo.php에서 마우스 오른쪽 버튼을 클릭해서 Run As > 2 PHP Web Application 메뉴를 클릭해서 웹어플리케이션을 실행합니다.




PHP 웹어플리케이션을 실행할 Launch URL이 나타납니다. OK 버튼 클릭합니다.



이클립스 화면에 phpinfo.php 화면이 열립니다. phpinfo() 함수를 사용해서 자신의 로컬서버에 대한 정보가 아래 화면과 같이 나타납니다.



화면상에서 마우스 오른쪽 버튼을 클릭해서 소스보기 메뉴를 클릭합니다.



소스보기한 HTML 소스가 나타나면 해당 소스를 Ctrl+C로 복사해둡니다. 이렇게 복사한 소스는 Xdebug 사이트 정보확인 입력창에 입력해서 적합한 Xdebug 버전을 찾는데 사용하게 됩니다.



Xdebug 사이트에서 내 서버의 플러그인 DLL 사양 확인하기


Xdebug 사이트로 이동해서 사용할 DLL 사양을 확인해야 합니다. Xdebug 사이트에 접속합니다.
Xdebug 사이트에 접속하면 아래와 같이 HTML 소스를 입력하는 창이 나타납니다. 이 창에 조금전에 복사한 phpinfo HTML 코드를 붙여넣으면 됩니다.



아래 화면과 같이 붙여넣은 다음에 output 버튼을 클릭합니다.     




아래와 같이 서버에 대한 정보가 나타납니다. 오렌지 박스로 표시한 세 부분이 중요합니다. 
현재 사양은 VC11 이고 PHP 버전은 5.6, TS는 Yes입니다.





이제 Xdebug 사이트에서 아래 download 메뉴를 클릭해서 dll 파일을 다운받는 웹페이지로 이동합니다.



저의 경우 VC11, PHP 5.6.0 이고 TS yes이고 64 bit이기 때문에 다운받는 페이지에서 PHP 5.6 VC11 TS(64 bit)를 내려받으면 됩니다.
조금전에 조사한 방법으로 자신의 서버 사양에 맞는 dll을 다운로드 하면 됩니다.



다운로드 링크를 클릭하니 아래와 같이 파일이 로컬에 다운로드되었습니다.


이 파일을 서버가 있는 오토셋의 dll 관리 폴더에 복사해야 합니다.
php_xdebug-2.4.0-5.6-vc11-x86_64.dll 파일을 AutoSet9 > server > bin > ext 로 이동해서 아래 화면과 같이 붙여넣기를 합니다.








php.ini 파일에서 XDebug 정보 세팅


이제는 서버의 php.ini 파일을 열어서 설정을 해야합니다.
AutoSet9 > server > conf 폴더로 이동해서 php.ini 파일을 오픈합니다.




php.ini 파일을 열어서 맨 마지막 라인에 추가합니다. 포트는 기존에 사용하지 않는 포트인 9001번을 넣었습니다.







이클립스에서 디버그 환경 설정하기


이클립스를 열어서 Window > Preference 메뉴를 클릭합니다.




Preferences 화면에서 PHP >  Executables 메뉴를 선택한 뒤에 Add 버튼을 클릭합니다.




새로운 PHP Executable 작성할 수 있는 화면이 나타납니다.



이름 란에 아래와 같이 Xdebug라 입력하고 Browse 버튼을 클릭해서 아래와 같이 php 실행 파일과 환경 파일을 선택합니다. 선택이 완료되면 Finish 버튼을 클릭합니다.



Finish 버튼을 클릭하면 아래와 같이 Xdebug가 만들어진 것을 확인할 수 있습니다. Xdebug를 선택합니다.



Xdebug 이름 선택하면 Edit 버튼이 활성화 됩니다. Edit 버튼을 클릭합니다.



두번째 Debugger 탭을 클릭합니다.



Connection Setteings 항목에서 Port 부분을 9001로 바꾸고 OK 버튼을 클릭합니다.



이제는 PHP > debug 메뉴를 클릭합니다. PHP Debug 화면에서 오른쪽에 오렌지 동그라미 부분의 PHP Servers... 링크를 클릭해서 Debuger 설정합니다.



설정이 완료되면 아래와 같이 Debugger에 XDebug가 나타납니다. 




Break at First Line 체크를 해제하고 서버와 excutable 항목을 아래와 같이 선택한 뒤에 Apply 버튼을 클릭하고 OK 버튼을 클릭합니다.




디버그 환경설정 - Debug Configuration


아래 화면에서 벌레 모양을 클릭하면 나타나는 Debug Configuration 메뉴를 클릭합니다.



디버그 환경설정 화면에서 아래와 같이 이름을 Xdebug로 바꿉니다.



Xdebug로 바꾼고 Browse 버튼을 클릭해서 index.php 파일을 선택하고 apply 버튼을 클릭합니다.
index.php 파일을 선택하는 것은 디버깅을 시작할 때 이 파일로 시작한다는 의미입니다.



Apply 버튼을 클릭하니 왼쪽 메뉴에서 Xdeubg가 생성됩니다. Close 버튼으로 화면을 닫습니다.



벌레모양 아이콘을 클릭한 뒤에 Xdebug 메뉴를 클릭해서 디버깅을 시작합니다. 



디버그가 시작되고 아래와 같이 화면이 나타나는 것을 확인할 수 있습니다. 아직 Break point는 설정하지 않았지만 디버그 수행시 소스코드에 설정하면 편리하게 디버깅 작업을 할 수 있습니다.





+ Recent posts