1. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
XE 모듈 개발
걸음마부터 날기까지
날기
2. XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
소개
신승엽 (난다날아)
NHN Entertainment
● SocialXE 개발
● XE Core 개발
(2011.7 ~ 2013.6)
3. XE 모듈 개발 걸음마부터 날기까지 - 달리기
5월 XE 오픈 세미나
이 강의는...
● 걸음마 - 개발환경 구축, XE 설치
● 걷기 - XE 모듈 개념, 간단한 모듈 개발
● 달리기 - 개발한 모듈 발전 시키기
● 날기 - XE 디버깅 기법 및 자유토론
4. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug in XE
config/config.inc.php or config.user.inc.php
define('__DEBUG__', 1);
5. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
__DEBUG__
● 0(0x000): 아무 것도 출력하지 않음
● 1(0x001): debugPrint() 통한 메시지 출력
● 2(0x010): 실행 시간, 요청/응답 정보 출력
● 4(0x100): DB 쿼리 히스토리 출력
● ex
○ 3(0x011): debugPrint(), 실행시간, 요청/응답 정보
○ 7(0x111): 모든 정보
6. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
출력 방식
config/config.inc.php or config.user.inc.php
define('__DEBUG_OUTPUT__', 0);
7. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
__DEBUG_OUTPUT__
● 0: files/_debug_message.php 파일
● 1: HTML 출력의 하단에 주석으로 표시
● 2: Firebug 콘솔에 표시
8. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
__DEBUG_OUTPUT__
myboard.view.php
_debug_message.php
10. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
xdebug 원격 디버깅
1. xdebug 확장 설치
2. eclipse 플러그인 설치
3. remote 서버, 프로젝트 설정
4. 디버깅 환경 설정
5. 디버깅
11. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
xdebug 설치
phpinfo 페이지 생성
소스보기
xdebug 설치 안내 페이지에 붙여넣기
http://xdebug.org/wizard.php
12. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
xdebug 설치
안내에 따라 설치
13. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
xdebug 설치
php.ini에 xdebug 설정 추가
14. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
xdebug 설치
phpinfo에 xdebug 항목 확인
15. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
eclipse 플러그인 설치
Help > Install New Software...
16. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Remote 서버 추가
RSE Perspective 열기: Window > Open Perspective > Other > Remote System Explorer
서버 추가: 왼쪽 트리의 컨텍스트 메뉴에서 New > Connection...
17. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Remote 서버 추가
SSH Only 선택
18. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Remote 서버 추가
Host name 입력 후 Finish
19. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Remote 서버 추가
추가된 서버의 컨텍스트 메뉴에서 Connect
“Port가 22가 아닐 경우
Ssh Shells > Properties > Subsystem > Port에서 변경
20. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Remote 서버 추가
ID와 비밀번호를 입력하고 접속
21. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Remote 프로젝트 생성
Sftp Files > … > xe 폴더 컨텍스트 메뉴에서 Create Remote Project
22. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
PHP 서버 추가
Window > Preferences > PHP > PHP Servers > New
23. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
PHP 서버 추가
Name과 Base URL 입력 후 Finish
24. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug 구성
Run > Debug Configurations > PHP Web Application > New
25. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug 구성
Name 입력, PHP Server는 앞서 생성한 서버로 선택한 후 File의 Browse
26. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug 구성
Remote 프로젝트의 index.php 선택
27. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug 구성
URL의 Auto Generate 체크 해제 후 url 보정
28. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug 구성
Debugger 탭 > Server Debugger를 XDebug로, Break at First 체크 해제 후 Apply, Close
29. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug 시작
PHP Perspective 열기: Window > Open Perspective > Other > PHP
index.php에 breakpoint 설정 후 상단 Debug 버튼 클릭
30. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug 시작
breakpoint에서 실행이 멈춘 모습
31. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
xDebug 동작 절차
Debugger Client
디버깅 시작
PHP 서버
URL 요청
with
XDEBUG_SESSION_START
32. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
xDebug 동작 절차
Debugger Client
Port(9000) listening
PHP 서버
Connect to client
클라이언트로 역으로 접속
xdebug.remote_host=xx.xx.xx.xx
xdebug.remote_port=9000
xDebug session 연결이 안 되는 경우
● 방화벽 체크
● PC가 공유기(NAT) 환경일 경우 포트포워딩 설정
● ssh tunneling 고려 - Debug Configurations > Debugger 탭“
33. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
xDebug 동작 절차
Debugger Client
ESTABLISHED
PHP 서버
ESTABLISHED
접속 후 dbgp 프로토콜 통신
34. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
xDebug 동작 절차
Debugger Client
디버깅 종료
PHP 서버
디버깅 종료
URL 요청
with
XDEBUG_SESSION_STOP
35. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug Perspective
디버깅을 위한 화면 구성
36. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug Perspective
프로그램 흐름 제어를 위한 도구 모음
37. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug Perspective
스택 뷰
38. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug Perspective
소스 코드 뷰
39. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug Perspective
현재 scope의 변수 뷰
40. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug Perspective
설정된 breakpoint 뷰
41. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
Debug Perspective
사용자 정의 조사식 뷰
42. XE 모듈 개발 걸음마부터 날기까지 - 날기
5월 XE 오픈 세미나
흐름 제어 도구 모음
Resum(F8): 다음 breakpoint를 만나거나 종료될 때까지 프로그램 실행
Terminate(Ctrl + F2): 디버깅 종료
Step Into(F5): 현재 커서 아래 함수의 내부로 진행 (Stack push)
Step Over(F6): 현재 함수(스택)에서 진행
Step Return(F7): 현재 함수의 마지막까지 실행 호출 시점으로 진행 (Stack pop)