xe 오픈 세미나(2014 05) - xe 모듈 강의 - 날기

44
XE 모듈 개발 걸음마부터 날기까지 - 날기 5XE 오픈 세미나 XE 모듈 개발 걸음마부터 날기까지 날기

Upload: xpressengine

Post on 23-Jun-2015

2.387 views

Category:

Software


4 download

DESCRIPTION

발표일시 : 2014년 5월 17, 24, 31일 발표자 : 신승엽 (flyskyko, 난다날아)

TRANSCRIPT

Page 1: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

XE 모듈 개발걸음마부터 날기까지

날기

Page 2: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 달리기

5월 XE 오픈 세미나

소개

신승엽 (난다날아)NHN Entertainment

● SocialXE 개발● XE Core 개발

(2011.7 ~ 2013.6)

Page 3: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 달리기

5월 XE 오픈 세미나

이 강의는...

● 걸음마 - 개발환경 구축, XE 설치● 걷기 - XE 모듈 개념, 간단한 모듈 개발● 달리기 - 개발한 모듈 발전 시키기● 날기 - XE 디버깅 기법 및 자유토론

Page 4: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug in XEconfig/config.inc.php or config.user.inc.php

define('__DEBUG__', 1);

Page 5: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

__DEBUG__● 0(0x000): 아무 것도 출력하지 않음● 1(0x001): debugPrint() 통한 메시지 출력● 2(0x010): 실행 시간, 요청/응답 정보 출력● 4(0x100): DB 쿼리 히스토리 출력● ex

○ 3(0x011): debugPrint(), 실행시간, 요청/응답 정보○ 7(0x111): 모든 정보

Page 6: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

출력 방식config/config.inc.php or config.user.inc.php

define('__DEBUG_OUTPUT__', 0);

Page 7: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

__DEBUG_OUTPUT__● 0: files/_debug_message.php 파일● 1: HTML 출력의 하단에 주석으로 표시● 2: Firebug 콘솔에 표시

Page 8: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

__DEBUG_OUTPUT__myboard.view.php

_debug_message.php

Page 9: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Page 10: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

xdebug 원격 디버깅1. xdebug 확장 설치2. eclipse 플러그인 설치3. remote 서버, 프로젝트 설정4. 디버깅 환경 설정5. 디버깅

Page 11: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

xdebug 설치phpinfo 페이지 생성

소스보기

xdebug 설치 안내 페이지에 붙여넣기http://xdebug.org/wizard.php

Page 12: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

xdebug 설치안내에 따라 설치

Page 13: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

xdebug 설치php.ini에 xdebug 설정 추가

Page 14: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

xdebug 설치phpinfo에 xdebug 항목 확인

Page 15: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

eclipse 플러그인 설치Help > Install New Software...

Page 16: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Remote 서버 추가RSE Perspective 열기: Window > Open Perspective > Other > Remote System Explorer

서버 추가: 왼쪽 트리의 컨텍스트 메뉴에서 New > Connection...

Page 17: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Remote 서버 추가SSH Only 선택

Page 18: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Remote 서버 추가Host name 입력 후 Finish

Page 19: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Remote 서버 추가추가된 서버의 컨텍스트 메뉴에서 Connect

“ Port가 22가 아닐 경우Ssh Shells > Properties > Subsystem > Port에서 변경

Page 20: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Remote 서버 추가ID와 비밀번호를 입력하고 접속

Page 21: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Remote 프로젝트 생성Sftp Files > … > xe 폴더 컨텍스트 메뉴에서 Create Remote Project

Page 22: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

PHP 서버 추가Window > Preferences > PHP > PHP Servers > New

Page 23: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

PHP 서버 추가Name과 Base URL 입력 후 Finish

Page 24: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug 구성Run > Debug Configurations > PHP Web Application > New

Page 25: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug 구성Name 입력, PHP Server는 앞서 생성한 서버로 선택한 후 File의 Browse

Page 26: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug 구성Remote 프로젝트의 index.php 선택

Page 27: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug 구성URL의 Auto Generate 체크 해제 후 url 보정

Page 28: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug 구성Debugger 탭 > Server Debugger를 XDebug로, Break at First 체크 해제 후 Apply, Close

Page 29: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug 시작PHP Perspective 열기: Window > Open Perspective > Other > PHPindex.php에 breakpoint 설정 후 상단 Debug 버튼 클릭

Page 30: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug 시작breakpoint에서 실행이 멈춘 모습

Page 31: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

xDebug 동작 절차

Debugger Client

디버깅 시작

PHP 서버URL 요청

withXDEBUG_SESSION_START

Page 32: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

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 탭“

Page 33: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

xDebug 동작 절차

Debugger Client

ESTABLISHED

PHP 서버

ESTABLISHED접속 후 dbgp 프로토콜 통신

Page 34: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

xDebug 동작 절차

Debugger Client

디버깅 종료

PHP 서버

디버깅 종료

URL 요청with

XDEBUG_SESSION_STOP

Page 35: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug Perspective디버깅을 위한 화면 구성

Page 36: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug Perspective프로그램 흐름 제어를 위한 도구 모음

Page 37: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug Perspective스택 뷰

Page 38: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug Perspective소스 코드 뷰

Page 39: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug Perspective현재 scope의 변수 뷰

Page 40: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug Perspective설정된 breakpoint 뷰

Page 41: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Debug Perspective사용자 정의 조사식 뷰

Page 42: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

흐름 제어 도구 모음Resum(F8): 다음 breakpoint를 만나거나 종료될 때까지 프로그램 실행

Terminate(Ctrl + F2): 디버깅 종료

Step Into(F5): 현재 커서 아래 함수의 내부로 진행 (Stack push)

Step Over(F6): 현재 함수(스택)에서 진행

Step Return(F7): 현재 함수의 마지막까지 실행 호출 시점으로 진행 (Stack pop)

Page 43: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

DEMO

Page 44: XE 오픈 세미나(2014 05) - XE 모듈 강의 - 날기

XE 모듈 개발 걸음마부터 날기까지 - 날기

5월 XE 오픈 세미나

Q&A Time