WebApps@Korea가 개최됩니다.

6월 21일(목요일), 삼성동 코엑스 그랜드 볼륨에서 웹 어플리케이션 컨퍼런스 2007이 열립니다.

국내에서 내노라하는 웹 기술 전문가들이 대거 참여하며, 웹 어플리케이션 기술의 현재와 미래를 자세히 살펴볼 예정입니다. 참여하는 분들과 계획을 보면, 정말 알찬 컨퍼런스가 될 거라고 확신합니다. 안오시면, 후회할꺼예요!

안철수연구소에서도 공식 스폰서로 WebApps@Korea를 지원하며, 저희 고슴도치플러스에서도 OpenID 패널로 참여할 예정입니다.

WebApps 블로그에서 준비 소식을 업데이트하고 있으며, 발표자/자원봉사자 또한 모집하고 있습니다. 관심 있으신 분들은 직접 참여하시면, 더 큰 보람을 얻을 수 있을 것입니다.

그럼, 6월 21일, 코엑스에서 뵙겠습니다!

Posted by 공장장

2007/05/23 10:30 2007/05/23 10:30

PHP Profiler - Xdebug

안녕하세요 개발팀의 이창명입니다.
오늘은 php profiler에 대한 툴 소개를 할 까 합니다.

< Tool >
1.APD (Advanced PHP debugger)
    - 다운로드 페이지: http://pecl.php.net/package/apd
    - 불 필요한 부하가 적다.
    - 인터랙티브 디버깅
    - 이벤트 기반 로깅
    - 엔진 레벨 디버깅    
    -설치방법  : -pear install apd
            - apd_set_pprof_trace();를 스크립트 시작 부분에 추가한다.

    -로그 파일 :apd.dumpdir/pprof_pid.ext
    -분석 툴 : pprofp

2.XDEBUG
    - 다운로드 페이지: http://xdebug.org
    - GUI :Kcachegrind / KDE
3. 기타
    - Zend IDE
    - mod_log_config    

저는 이 중에서 XDEBUG를 사용하고 있습니다.
Kcachegrind의 화려한 면모 때문이기도 하지만 함수 실행 비용을 표시해 주고 디테일한 부분까지도 보여주기 때문에 좀더 효율적이고 빠른 디버깅을 할 수 있습니다.
특히 cakephp가 call하는 함수에 대한 순서와 비용에 대해 그래프로 볼 수 있다는 것이 저에게는 흥미로웠습니다.

windows OS 에서는 Wincachegrind를 이용하여 프로파일 분석을 할 수 있습니다.
다만 Kcachegrind 보다 디테일 하지 못하다는 단점이 있지만 기본적인 분석 툴의 기능은 갖추고 있습니다.
xdebug는 기본적으로 yum 또는 apt 패키지로 제공되고 있으니 설치법에 대해선 적지 않겠습니다. ^^

php.ini 세팅은 다음과 같이 해주시면 됩니다. 여기서 로그파일 기록 디렉토리는 임의로 세팅해 주시면 되겠습니다.

[Xdebug]
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = /tmp

자 그럼 간단한 디버깅을 통해 브라우져에서 어떡해 표시되는지 볼까요?

사용자 삽입 이미지

그밖에 Xdebug 펑션을 스크립트 내에서 활용할 수 있습니다.
자세한 레퍼런스는http://xdebug.org/docs-functions.php 에서 보실 수 있습니다.
예)
사용자 삽입 이미지
사용자 삽입 이미지

Kcachegrind 다운로드 페이지 http://kcachegrind.sourceforge.net
아래 그림은 cakephp 상에서 session.php 에 대한 frofile 입니다.
해당 펑션을 더블클릭하면 더 자세한 부분까지도 볼 수 있습니다.

session.php)
사용자 삽입 이미지


아래 그림은 cakephp의 route.php 가 실행되는 순서입니다.
route.php)
사용자 삽입 이미지
펑션 박스에 대한 소스보기 를 하시면 위 그림의 오른쪽 위와 같이 해당 소스를 보실 수 있습니다.
또한 해당 소스에서 부하가 많이 걸리는 코드도 선별해 준 답니다.
이처럼 Kcachegrind 는 디버그 용도 뿐만 아니라 최적화를 위해서도 사용될 수 있으니 개발자에게 매력적인 툴인 것만은 확실하겠죠?^^
Kcachegrind을 써보신다면 좋은 점을 아주 많이 발견하실 수 있습니다.

지금까지 저는 고슴도치 플러스 개발팀의 이창명 이었습니다.

Posted by 공장장

2007/05/13 16:54 2007/05/13 16:54

Mac으로 개발하기

안녕하세요. 개발팀의 임현수입니다. 오늘은 화요일, 바로 제가 짜파게티.. 아니 블로그에 글 쓰는 날입니다. 게을러서 제 블로그에도 글을 잘 안쓰고 있는데, 팀 블로그에 글을 쓰다니..흑흑.. (여기 쓰고, 나중에 정리해서 내 블로그에 옮겨야지)

이번엔 OS X와 윈도우를 사용하고 있는 제 개발환경에 대해 써보려고 합니다.

환경

아래 사진은 제 책상입니다. LCD 2대와 맥북이 놓여있죠. 책상 아래에는 윈도우가 깔려 있는 데스크탑이 있습니다. 오른쪽 LCD는 맥북과 연결되어 있고, 오른쪽 LCD는 데스크탑과 연결되어 있습니다. 즉, 1대의 랩탑과 1대의 데스크탑을 쓰고 있는 셈입니다. 2대의 컴퓨터를 Synergy를 통해 1개의 키보드/마우스로 쓰고 있습니다. 듀얼모니터의 생산성 향상에 대해서는 이미 많은 연구 결과들이 뒷받침해 주고 있습니다. 굳이 조엘 아저씨가 아니더라두요. :)

사용자 삽입 이미지

키보드는 3년동안 라이트 버전을 쓰다가, 얼마전 큰맘먹고 지른 해피해킹2프로입니다. 마우스는 개발도, 웹서핑도, FPS게임도 내 맘대로 움직여주는 MS 인텔리 옵티컬 1.1이고, 마우스패드는 위키북스 사장님이 선물해주신 X-Ray Thunder 8 입니다. :D (쓸데없는 자랑모드-_-) 벽에 붙어 있는 것은 TextMate Cheat Sheats이고, 타이머는 Perky님 등 많은 분들이 쓰고 있는 모델이죠. 뒤에 보이는 플립시계는 C2 발표회때 받은 것입니다.

마우스/키보드 같이 쓰기 : Synergy

시너지는 운영체제에 상관없이 (리눅스, 유닉스, OS X, 윈도우 등), 키보드/마우스를 공유할 수 있는 오픈소스 솔루션입니다. 이미 많은 분들이 애용하고 있죠. 맥북을 시너지 클라이언트, 데스크탑을 시너지 서버로 설정했고, 당연히 키보드/마우스는 데스크탑에 연결 했습니다. 컴퓨터가 부팅되면 시너지 서버와 클라이언트는 자동으로 실행되기 때문에, 심리스하게(-_-) 사용할 수 있습니다.

윈도우와 OS X를 시너지로 연결할 때 Super(윈도우의 윈도우키, OS X의 커멘드 키)키와 Alt키가 뒤바껴 눌릴 수 있습니다. 이땐 시너지 서버의 Configure - Screen's Edit - Modifier에서 Alt와 Super의 매칭을 바꿔주면 됩니다. OS X에서 한글 상위로 사용할 때 bus error가 날때는 이 글 을 참고하면 됩니다.

맥의 마우스 감도는 윈도우보다 많이 떨어집니다. 이를 보완할 수 있는 유틸리티나, MS/로지텍의 마우스 드라이버를 깔면 좀 괜찮아지지만, 민감한 분들은 견디기 힘들 수 있습니다. 저 역시 그래서 윈도우에 마우스를 연결했습니다. 하지만, OS X의 TextMate를 쓰는 경우에는 휠스크롤이 너무 느리게 동작한다는 문제점이 있습니다. 이는 외국에서도 몇몇 사람이 문제제기를 했으나, 아직 마땅한 해결책은 나오지 않았습니다. 이 점이 걸리신다면, 맥을 시너지 서버로 사용하는게 좋습니다.

텍스트 편집기 : TextMate

맥에는 TextMate라는 쿨-한 편집기가 있습니다. TextMate를 쓰기 위해 맥을 쓴다는 사람들이 있을만큼, 말 그대로 "The missing editor"라고 불릴만 합니다. 루비 온 레일스의 스크린캐스트 덕택에 더욱 유명해졌지요. 저 역시, 블로그 15분 만들기를 보고 사게 되었으니까요.

하지만, 한글을 제대로 표현해 주지 않는 등의 문제가 있습니다. 2바이트 언어권 문제는 레오퍼드 이후에 해결될 예정이니, 그 동안은 별도의 한글 글꼴을 사용해야 합니다.

TextMate에 대한 글들은 이곳과, Official Website의 Screencast를 보면 되겠습니다.

MAMP (Mac + Apache + Mysql + PHP)

펌핏과 IDTail은 APM(Apache, PHP, Mysql) 환경에서 개발되었습니다. 윈도우/리눅스에서 이를 APM이라 한다면, 맥에서는 앞에 Mac을 붙여 MAMP라고 합니다. 윈도우에 APM Setup이나 Autoset과 같은 APM통합 설치/운영이 있듯이, 맥에도 이러한 통합 솔루션이 있습니다. 가장 널리 사용되는 것은 MAMP와 XAMPP입니다. XAMPP는 Linux, Solaris, Windows 버전도 있지요.

MAMP가 가장 편리합니다. Cocoa기반의 GUI Tool도 제공이 됩니다. 자세한 설정사항은 정목님의 블로그를 참고하세요. MySQL 최신 버전을 사용하시려면 MAMP 1.5b를 받아야 합니다. 전 Mysql/Apache의 Port를 Default Port로 변경하고, htdocs 위치를 변경하고 다른 설정은 건드리지 않았습니다. (물론 아파치 설정은 조금 바꿨지요) mysql.sock 위치를 변경하는게 번거로워서 그냥 /var/tmp에 심볼릭 링크를 만들어 쓰고 있습니다.

하지만, MAMP는 SSL을 지원하지 않습니다. 잠깐 찾아보니, MAMP에서 사용하는 Apache는 SSL이 붙을 수 없는 빌드라고 합니다. IDTail에서는 ssl을 사용하기 때문에 제 환경을 XAMPP로 바꾸고 있습니다.

Mysql GUI Tools

루비 온 레일스로 블로그 15분 만에 만들기 에 등장했던 공개SW CocoaMySQL도 너무 예쁘고, 편리한 MySQL 관리 툴이지만, MySQL '공식' 제공 툴이며, OS 상관없이 쓸 수 있는 Mysql GUI Tools를 쓰고 있습니다.

Safari, Firefox

개발을 사파리로 하고 있진 않습니다. 듀얼모니터의 이점을 살리기 위해서 입니다. 또, 맥에서 Firefox가 너무 느리고, 버그도 많아서 제대로 쓸 수도 없구요. 맥북의 LCD에는 메신저, 터미널, 콘솔, Query Browser, SVN Client 등을 띄워놓구요. 왼쪽 LCD는 TextMate를, 오른쪽 LCD(윈도우 머신)에는 firefox를 띄워놓습니다. firefox에 firebug, Web Developer를 깔아놓은 건 당연하지요. (아 이녀석들 없을 땐 대체 어떻게 개발했었는지.. 아찔합니다. -_-)

SVN

OS X를 처음 설치하면, Subversion은 1.2.x가 깔려 있습니다. 1.4.3을 사용하려면 직접 빌드하거나, OS X용으로 빌드된 녀석을 찾아야 합니다. Fink로도 최신버전을 찾을 수 없습니다. 미리 컴파일 후 패키징된 것을 까는게 편합니다.

SVN Client

터미널에서 작업하는게 더 명료하지만, 아무래도 귀찮죠. SvnX라는 괜찮은 SVN GUI Client가 있습니다. 커밋 계획을 '스마트 뷰'로 보는게 특히 편리합니다. 하지만, 한글 Log를 남기면 깨지는게 단점입니다. Zig Version이라는 맥답게 심플한 프로그램도 좋습니다. 한글도 깨지지 않아요. 하지만, diff에 연결할 에디터를 고를 수 없는 등의 단점이 있습니다. 몇몇 다른 클라이언트들도 있지만, 인터페이스가 복잡하고 좀 무겁습니다.

VI

TextMate를 쓴다고 해도 vi를 안쓸 수는 없겠죠. SVN과 마찬가지로 OS X를 처음 설치하면, vim 6.2가 깔려 있고 vim.org에서 맥용 vim 7.0을 공식 지원하진 않습니다. 이곳에서 파일을 받으면 됩니다. 따로 빌드해도 되구요. 아니면, 여기서 vim7.0.188-univ.tar.bz2 를 받고 적당한 곳에 복사를 하고, alias vi="/Applications/OA/Vim.app/Contents/MacOS/Vim" 와 같은 식으로 추가해서 써도 되겠죠.

마치며

사실 맥으로 개발한다고 해서 완벽한 웹표준, 완벽한 크로스브라우징을 지키고 있진 못합니다. IDTail역시 사파리에선 깨지는 페이지들도 아직 남아 있구요. 차차 개선해 나가야지요.

맥으로 처음 웹 개발을 해보면서 겪었던 삽질들도 앞으로 하나씩 써보겠습니다. 맥이라서 해야했던 삽질도 있겠지만, 제가 잘 몰라서 했던 삽질들도 많겠죠. 어쨋든, 저처럼 무식한 삽질을 하는 분들을 한분이라도 막기 위해서 (흑흑... 있긴 있을까) 글을 써봅니다. 아, 벌써 9시가 다되가네요. -_- 집에 가야지


 이 글을 쓴 저는 개발팀의 임현수입니다. (아이디어 고갈로 또 C2 스타일)

Posted by 공장장

2007/04/03 20:43 2007/04/03 20:43


블로그 이미지

"좋은 기업을 넘어 위대한 기업으로 (“Good to great”, Jim Collins 저)"라는 책의 내용 중에 "고슴도치 컨셉 (Hedgehog concept)"이 라는 개념이 나옵니다. 현실에서 약삭빠른 여우와 왠지 우둔해 보이는 ..

- 공장장

Notices

Calendar

«   2008/09   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30        

Bookmarks

Site Stats

Total hits:
274360
Today:
830
Yesterday:
1187