▶ Friends
EasyEclipse for PHP Developer : eclipse 에 PHPEclipse, subclicpse(SVN), Quantum DB, HTML tidy 등의 plug-in 들을 묶어서 만든 통합패키지 입니다. 플러그인 깐다고 개삽질 안해도 되도록 하나로 묶여있고, 플러그인들 간에 호환성이 보장되어 있습니다.
다운로드 : http://www.easyeclipse.org/site/distributions/index.html
XAMPP : apach, php, mysql 이 묶여져 있는 apm 서버 패키지 입니다. 간단하게 install 할 수 있고, EasyEclipse 의 PHPEclipse 에서 연동설정이 가능하기 때문에, 간단하게 사용할 수 있습니다.
다운로드 : http://www.apachefriends.org/en/xampp-windows.html
AMFPHP : AMF Remote 를 할 수 있도록 만들어진 PHP 용 framework 입니다. XML 로딩한다고 개삽질을 해대야 하는 것에 비해서 쉽고, 간단하게 데이터 입,출력이 되고, AMF 의 표준적인 방식으로 통신을 하기 때문에, jsp, asp 등으로 마이그레이션 하기도 쉬워집니다.
다운로드 : http://www.amfphp.org/
Rosa : Joseba Alonso 가 만든 Flash remoting library 입니다. 초보자도 쉽게 Remoting 을 구현할 수 있도록 간단하게 만들어져 있습니다.
다운로드 : http://code.google.com/p/rosa-as3/downloads/list
▶ 설치
EasyEclipse 와 XAMPP 는 exe installer 를 제공하므로 간단하게 설치가 가능합니다.
AMFPHP 와 Rosa 는 다운로드를 받아놓습니다.
▶ 셋팅
1 . PHPEclipse 에 XAMPP 셋팅하기
eclipse 의 preferences 를 엽니다.
그리고, 위와 같이 XAMPP 관련 부분을 자신이 설치한 내용에 맞게 수정해줍니다.
PHP perspective 에서
메뉴에 StartXAMPP 를 누릅니다.
Console 에 위와 같이 찍히면 정상적으로 설치가 된것입니다.
2 . Eclipse workspace 가 webroot 가 되도록 설정하기
XAMPP 설치 폴더로 들어간 다음 httpd.conf 를 메모장 등으로 엽니다.
그리고 위와 같이 DocumentRoot 와 <Directory> 를 자신이 사용하는 Eclipse workspace 폴더로 지정해 줍니다.
완료가 되었으면 XAMPP 를 스타트 시키고 (이미 켜져있다면 종료 후에 다시 스타트 시킵니다.)
위와 같이 Hello world 를 하나 만들어봅니다.
브라우저를 열어서 http://localhost/project_name/file_name 으로 접속해 봐서 정상적으로 나온다면 셋팅이 완료된 것입니다.
이제 eclipse 하나만으로 apm 을 컨트롤 할 수 있으니… APM start 시킨다고 개삽질을 해야하는 악몽은 떨칠 수 있습니다.
▶ AMFPHP 로 hello world 찍어보기
HelloAMFPHP 라는 프로젝트를 하나 만듭니다. (FDT 로 진행합니다.)
다운받아놓은 rosa 를 라이브러리에 추가시켜 줍니다.
아까전 다운로드 받아놓은 amfphp 를 위와 같이 복사/붙여넣기를 통해서 설치해줍니다.
(php perspective 에서) services 에 HelloWorld.php 라는 파일을 하나 만들어줍니다.
그리고, 요렇게 간단한 코딩을 해줍니다.
ActionScript 에서는 요렇게 코딩을 해줍니다.
RosaSettings 는 amfphp 의 gateway.php 의 위치를 셋팅하면 되고,
(XAMPP 의 webroot 가 eclipse workspace 에 맞춰져 있으므로 work folder 로 써주면 됩니다.)
ServiceProxy 를 만드는데는 좀 전에 만든 HelloWorld.php 안의 class name 을 써주면 됩니다.
(폴더 안에 있을 경우엔 패키지네임과 같이 packagename.Helloworld 로 써줍니다.)
그리고, 마지막으로 HelloWorld class 안에 존재하는 hello($name) 메서드를 service.hello("name") 의 형식으로 호출해 줍니다.
위와 같이 hello name 이 출력되면 정상적으로 연결이 된것 입니다.
▶ AMFPHP 좀 더 자세하게 알아보기
HelloWorld class 에 몇가지 메서드를 더 추가시켜보았습니다.
그리고, action script 도 약간 수정을 해보았습니다.
실행을 시켜보면 위와 같이
getArray() 는 array type 으로
getXML() 은 Object type 으로
getString() 은 String type 으로
isLogin() 은 Boolean type 으로 반환이 되는걸 확인할 수 있습니다.
XML 로 받아와서 파싱한답시고 삽질할 필요가 없으므로 꽤 상큼하게 사용할 수 있습니다.
▶ 쓰잘데기 없는 회의 없이 일하기...
위와 같은 방식으로 작업을 하면 일단 초기 구축시간은 좀 더 걸리는 편입니다.
하지만, 위와 같은 방식은 서로간에 작업영역이 좀 더 뚜렷하게 구분이 되므로 회의한다고
땀 뻘뻘 흘릴 시간 아낄수 있고, 무엇보다 AMF remoting 은 그 인터페이스가 확실하므로
jsp 던, php던, asp던 actionscript 의 수정이나 변경없이 작업이 가능해집니다.
무엇보다 경로 설정에 대한 부담감이 없어지므로 다량의 데이터 경로가 만들어질수록 작업이 간단해집니다.
jsp, ruby on rails, php, asp 모두 remoting 에 대한 프레임워크가 공개되어 있으므로
서버사이드 개발자들과의 협의에 있어서 간단한 교육만 진행되면 쉽게 사용이 가능합니다.
PHPDoc, ASDoc 등을 사용하면 아래와 같이 문서화 작업이 가능해지는데요.
PHP 의 경우 요런 간단한 주석작업을 통해
PHPDoc 문서의 작업이 가능하고,
ASDoc 역시 간단하게 라이브러리 문서를 구축할 수 있습니다. (귀찮아서 기존에 있던 문서를 보여드립니다.)
ASDoc 의 경우엔 10분 정도를 들여서 Ant 를 설정해놓으면 이후엔 클릭 한번으로 문서화 작성이 가능하고,
PHPDoc 의 경우에는 웹상에서 문서생성이 가능하므로
위에 보이는 바와같이 [build] 링크를 통해서 클릭 한 번으로 문서 생성이 가능합니다.
고정된 url 을 통해서 문서를 공유할 경우 작업시에 협의해야할 내용들이 상당히 적어지므로,
쓰잘데기 없는 회의를 줄이면서 일을 하는것이 가능해집니다.
그리고, 작업자가 다수가 될 경우 역시 소스코드를 열지 않고도, 설계구성에 대한 분석이 용이하므로
"사람이 늘어나면 작업시간이 길어진다." 라는 잘못된 상식의 적용에서 자유로워질 수 있죠.
다음에 시간나면 JSDoc, PHPDoc, ASDoc Friends 를 소개시켜 드리겠습니다.



