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

More Related Content

What's hot

XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기경원 홍
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선Sol Kim
 
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기승훈 오
 
[Xe con2016] 오승훈 xe3로 웹사이트 만들기
[Xe con2016] 오승훈 xe3로 웹사이트 만들기[Xe con2016] 오승훈 xe3로 웹사이트 만들기
[Xe con2016] 오승훈 xe3로 웹사이트 만들기승훈 오
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기Sungbum Hong
 
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)승훈 오
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드수정 김
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1Booseol Shin
 
AWS EC2 flask_uwsgi_nginx install guide korean
AWS EC2 flask_uwsgi_nginx install guide koreanAWS EC2 flask_uwsgi_nginx install guide korean
AWS EC2 flask_uwsgi_nginx install guide koreanJinsoo Park
 
막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)연웅 조
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js연웅 조
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 YoungSu Son
 
(SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이...
(SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이...(SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이...
(SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이...탑크리에듀(구로디지털단지역3번출구 2분거리)
 
XE로 카페 구축하기
XE로 카페 구축하기XE로 카페 구축하기
XE로 카페 구축하기2013108182
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정leejungwang
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구ajj007
 
오픈세미나 플러그인만들기
오픈세미나 플러그인만들기오픈세미나 플러그인만들기
오픈세미나 플러그인만들기승훈 오
 
Xe로 카페 만들기
Xe로 카페 만들기Xe로 카페 만들기
Xe로 카페 만들기kjh44004
 
Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1성일 한
 

What's hot (20)

XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
XECon PHPFest 2014 - 쉽고 강력한 XE 웹사이트 만들기
 
2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선2014년 02월 XE세미나 XE서버서능개선
2014년 02월 XE세미나 XE서버서능개선
 
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
XE3 a부터 z까지(1) xe3 구조와 간단한 페이지 만들기
 
[Xe con2016] 오승훈 xe3로 웹사이트 만들기
[Xe con2016] 오승훈 xe3로 웹사이트 만들기[Xe con2016] 오승훈 xe3로 웹사이트 만들기
[Xe con2016] 오승훈 xe3로 웹사이트 만들기
 
XE Open seminar 테마만들기
XE Open seminar 테마만들기XE Open seminar 테마만들기
XE Open seminar 테마만들기
 
오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)오픈세미나 플러그인만들기(한번더)
오픈세미나 플러그인만들기(한번더)
 
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
Yeoman(모던웹 개발을 위한 관리도구)설치사용가이드
 
Ubuntu에서 Flask개발 맛보기 - 1
Ubuntu에서  Flask개발 맛보기 - 1Ubuntu에서  Flask개발 맛보기 - 1
Ubuntu에서 Flask개발 맛보기 - 1
 
AWS EC2 flask_uwsgi_nginx install guide korean
AWS EC2 flask_uwsgi_nginx install guide koreanAWS EC2 flask_uwsgi_nginx install guide korean
AWS EC2 flask_uwsgi_nginx install guide korean
 
막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)막하는스터디 두번째만남 Express(20151025)
막하는스터디 두번째만남 Express(20151025)
 
막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js막하는 스터디 첫 번째 만남 Node.js
막하는 스터디 첫 번째 만남 Node.js
 
[NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기 [NEXT] Flask 로 Restful API 서버 만들기
[NEXT] Flask 로 Restful API 서버 만들기
 
(SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이...
(SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이...(SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이...
(SQL튜닝,오라클힌트강좌)구체화뷰(Materialized View)를 통한 그룹함수(SUM,MAX,MIN,AVG)의 튜닝_오라클 옵티마이...
 
XE로 카페 구축하기
XE로 카페 구축하기XE로 카페 구축하기
XE로 카페 구축하기
 
Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정Vue 뽀개기 1장 환경설정 및 spa설정
Vue 뽀개기 1장 환경설정 및 spa설정
 
Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구Cactiez 설치, 백업, 복구
Cactiez 설치, 백업, 복구
 
Node.js intro
Node.js introNode.js intro
Node.js intro
 
오픈세미나 플러그인만들기
오픈세미나 플러그인만들기오픈세미나 플러그인만들기
오픈세미나 플러그인만들기
 
Xe로 카페 만들기
Xe로 카페 만들기Xe로 카페 만들기
Xe로 카페 만들기
 
Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1Laravel 로 배우는 서버사이드 #1
Laravel 로 배우는 서버사이드 #1
 

Viewers also liked

[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들MinGeun Park
 
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅승엽 신
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드chandler0201
 
GitHub 실습 교육
GitHub 실습 교육GitHub 실습 교육
GitHub 실습 교육승엽 신
 
Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Ian Choi
 

Viewers also liked (6)

[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
[141217 박민근] Visual Studio 2013의 (잘모르는) 유용한 기능들
 
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
Vagrant를 이용한 개발환경 구축과 NetBeans를 이용한 C/C++개발과 리모트 디버깅
 
Git 입문자를 위한 가이드
Git 입문자를 위한 가이드Git 입문자를 위한 가이드
Git 입문자를 위한 가이드
 
Github 사용법
Github 사용법Github 사용법
Github 사용법
 
GitHub 실습 교육
GitHub 실습 교육GitHub 실습 교육
GitHub 실습 교육
 
Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?Git는 머꼬? GitHub는 또 머지?
Git는 머꼬? GitHub는 또 머지?
 

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

XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개Jung soo Ahn
 
Selenium and XpressEngine
Selenium and XpressEngineSelenium and XpressEngine
Selenium and XpressEngineSol Kim
 
XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기Sol Kim
 
Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2Sol Kim
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rdPark Jonggun
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개XpressEngine
 
유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기Young D
 
PHPStorm - tool for php
PHPStorm - tool for phpPHPStorm - tool for php
PHPStorm - tool for phpSungbum Hong
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XpressEngine
 
Internship backend
Internship backendInternship backend
Internship backendYein Sim
 
Introduce Yeoman
Introduce YeomanIntroduce Yeoman
Introduce Yeoman항희 이
 
Deviewsched 프로젝트 소개서
Deviewsched 프로젝트 소개서Deviewsched 프로젝트 소개서
Deviewsched 프로젝트 소개서Hyemi Ahn
 
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Dong Chan Shin
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
Selenium for-ui-test
Selenium for-ui-testSelenium for-ui-test
Selenium for-ui-test승훈 오
 
제로보드과제보고서
제로보드과제보고서제로보드과제보고서
제로보드과제보고서kth919
 

Similar to XE 모듈 개발 - 걸음마부터 날기까지 - 날기 (20)

Es6 module
Es6 moduleEs6 module
Es6 module
 
XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개XECON2014 Laravel 프레임워크 소개
XECON2014 Laravel 프레임워크 소개
 
Selenium and XpressEngine
Selenium and XpressEngineSelenium and XpressEngine
Selenium and XpressEngine
 
XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기XECon + PHPFest 2014 XE 프로젝트 이야기
XECon + PHPFest 2014 XE 프로젝트 이야기
 
Modern PHP
Modern PHPModern PHP
Modern PHP
 
Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2Xe 제주대 강의_2014_ver2
Xe 제주대 강의_2014_ver2
 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
XECon2015 :: [2-3] 홍성범 - XE3 Theme 제작 소개
 
유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기유연하게 확장할 수 있는 PHP 웹 개발 이야기
유연하게 확장할 수 있는 PHP 웹 개발 이야기
 
PHPStorm - tool for php
PHPStorm - tool for phpPHPStorm - tool for php
PHPStorm - tool for php
 
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
XECon2015 :: [1-1] 안정수 - XE3 구조 및 기본기
 
Internship backend
Internship backendInternship backend
Internship backend
 
Introduce Yeoman
Introduce YeomanIntroduce Yeoman
Introduce Yeoman
 
Electron forge
Electron forgeElectron forge
Electron forge
 
Deviewsched 프로젝트 소개서
Deviewsched 프로젝트 소개서Deviewsched 프로젝트 소개서
Deviewsched 프로젝트 소개서
 
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기Project anarchy로 3d 게임 만들기 part_2_vforge피하기
Project anarchy로 3d 게임 만들기 part_2_vforge피하기
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
Selenium for-ui-test
Selenium for-ui-testSelenium for-ui-test
Selenium for-ui-test
 
제로보드과제보고서
제로보드과제보고서제로보드과제보고서
제로보드과제보고서
 

Recently uploaded

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)Tae Young Lee
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Kim Daeun
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Wonjun Hwang
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionKim Daeun
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Wonjun Hwang
 

Recently uploaded (6)

A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 

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

  • 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
  • 9. XE 모듈 개발 걸음마부터 날기까지 - 날기 5월 XE 오픈 세미나
  • 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)
  • 43. XE 모듈 개발 걸음마부터 날기까지 - 날기 5월 XE 오픈 세미나 DEMO
  • 44. XE 모듈 개발 걸음마부터 날기까지 - 날기 5월 XE 오픈 세미나 Q&A Time