Eclipse + PHPEclipse

이클립스를 이용해서 PHP를 개발할 때의 (개인적으로 느낀) 장점

  • 거의 상용 IDE 수준의 코드 트래킹을 지원한다.
  • 몇가지 코드 컴플리트 기능이 유용하다. (특히 주석 폼을 자동 생성해주는 기능은 만족스럽다. 반면에 쿼테이션이나 괄호, 브레이스는 완벽히 동작하지는 않음.)
  • 코드 아웃라인 기능도 쓸만하다.
  • 플러그-인을 통해 svn을 지원한다.

그리고 단점

  • 무겁다.
  • 가끔 원인 모를 오류로 종료된다.

IDE를 사용하면서 에딧 플러스 정도의 수준으로밖에 이용하지 못하는게 좀 민망하긴 하지만, 진중하게 코드를 만들땐 이게 꽤 괜찮은 선택인 것 같다. 물론 텍스트 편집할 때는 에딧 플러스가 정말 좋다. 빠르고, 오래 사용해서 익숙하기 때문에.

테터툴즈 플러그인, XurrencyConverter

Xurrency.com의 API를 이용한 테터툴즈용 자동 환율 변환 플러그인 입니다. 특정한 치환자를 사용하여 통화를 표기하면 자동으로 현재 환율의 원화를 오른쪽에 병기해줍니다. 그리고 통화 기호가 있는 몇몇 통화들에 대해서는 3글자의 통화 기호가 아닌 심볼마크를 이용하여 통화를 표기합니다.다운로드

설치 요구사항

  • 테터툴즈 1.0.5 버전 이상

사용방법

  • 통화 치환자는 [xc]…[/xc]입니다.
  • 복수의 통화 치환자를 지원합니다. (본문 안에서 여러 통화를 입력해도 다 변환합니다.)
  • 치환자 내부에 3자리 통화 기호와 금액을 입력합니다. 예> [xc]usd:1000[/xc]
  • 금액 입력시에는 반드시 숫자만 입력하시기 바랍니다.
  • 3자리 통화 기호 목록은 다음과 같습니다.
    1. usd (미국 달러화)
    2. krw (한국 원화)
    3. jpy (일본 엔화)
    4. eur (유럽 유로화)
    5. gbp (영국 파운드화)
    6. cny (중국 위안화)
      이하는 잘 안쓰이는 통화지만 일단 적어봅니다. 이게 어느 나라 통화인지는 저도 잘 모릅니다. -_-;;
    7. aud
    8. brl
    9. nzd
    10. cad
    11. chf
    12. dkk
    13. hkd
    14. inr
    15. lkr
    16. mxn
    17. myr
    18. nok
    19. sek
    20. sgd
    21. thb
    22. twd
    23. vef
    24. zar
    25. bgn
    26. czk
    27. eek
    28. huf
    29. ltl
    30. lvl
    31. pln
    32. ron
    33. skk
    34. isk
    35. hrk
    36. rub
    37. try
    38. php
    39. cop
    40. ars

  • 이렇게 치환자와 통화 기호, 금액을 제대로 입력했다면 $1,000 (₩1,390,000) 과 같이 변환되어 출력됩니다.
  • 매일 변화하는 환율이 자동 적용됩니다.
  • 지원하는 통화 심볼 마크는 미국 달러화, 한국 원화, 영국 파운드화, 일본 엔화, 유럽 유로화, 중국 위안화 입니다. 다른 심볼 마크는 찾을 수가 없어서… -_-;;

개선해야 할 사안

  • SOAP 라이브러리로 nusoap(http://sourceforge.net/projects/nusoap/)를 사용하고 있습니다. 하지만 라이브러리 자체의 성능인지, xurrency.com과의 커넥션 문제인지 약간의 딜레이가 있습니다. PHP 네이티브 soapClient 익스텐션을 사용하면 이 딜레이가 약간 줄기는 하지만, 이 익스텐션의 경우 추가로 설치해야 될 경우가 있을 수 있음을 감안해서 nusoap을 사용하기로 했습니다.
  • 현재 국내 포털들의 openapi 경쟁(?)이 심한데 환율 정보도 openapi로 제공했으면 하는 바람입니다. 그럼 좀 더 빨라질 수 있겠죠.
  • 현재는 단순하게 각종 외국 통화를 한국 원화로 변환하는 기능 밖에는 없습니다만, 추후에는 각 통화로의 자유로운 변환이 가능하도록 하겠습니다. (요청이 있다면…)

권하는 블로그

  • 사실 각종 얼리어댑터나 가젯 사이트들에서 제품 가격을 현지 통화로 적는 경우가 많아서 원화로 하면 얼마일까 하고 매번 검색하는게 귀찮았습니다. 그런 쪽에 포스팅이 많으신 분들이 사용하면 좋겠네요. ^^;;

PHP 잡담

지난 8월 8일, 4.4.9 버전을 마지막으로 PHP의 4.X 버전대의 릴리즈가 공식 종료되었다. 2000년 5월 첫번째 stable 버전이 릴리즈 된 이후로 8년 동안 릴리즈 된 셈이다. 링크의 기사를 보니 ‘징하도록 오래 살았다(long live)’가 헤드라인으로 되어 있어서 나도 모르게 조금 웃었다.

내가 PHP를 처음 시작했던 것이 2003년인가 4년인가 였으니 4년 넘게 써온 셈인데, 그동안 참 우여곡절도 많았고 지금 보면 얼굴 벌게지도록 창피한 코드들도 많고 (아마도 그 탓인지 예전에 작업한 소스는 맨날 날려버린다. ㅎㅎ) 또 앞으로 배워야 할 것들도 산더미란 생각이 든다.

나의 태생적인 한계 (비전공자라는) 때문에 PHP 자체의 어려움 보다는 ‘프로그래밍 랭귀지’에 대한 접근이 쉽지가 않았다. 디자인 패턴, MVC, 데이터베이스 모델링, 재귀 구조, 참조, 정규 표현식, TDD, 프레임웤, 클래스, 오브젝트, 상속, 추상화… 대체 책을 봐도 기본 지식이 없으니 개념을 잡기가 너무 힘이 들었다. 또, 난 뭘 배울때 돈을 들이는걸 너무 싫어해서 남이 써 놓은 조각글을 통해서 조금조금씩 나아갔으니, 이것 또한 장님 코끼리 다리 만지는 식이었던 것이다.

그래도 프로그래밍의 문턱에서 더듬더듬 벽을 만지며 나아간게, 지금 되돌아 보니 돈 안들이고 배운 것 치고는 그럭저럭인 듯 싶어서 내 자신을 작게 칭찬한다. 조만간 다른 언어를 하나 더 배워 볼 생각이다. 파이썬, 말이지…

아무튼 PHP. PHP 5를 쓰기 시작한게 엊그제 같은데 벌써 PHP 6에 대한 이야기들이 여기저기서 나돌고 있다. (죽어도 국내 PHP 관련 포럼들에선 그런 얘기 안나온다.) PHP 6이 출시되면 (그리고 시간이 좀 지나서 stable해지면) 나는 당연히 PHP 6로 옮겨 갈 것이고, 또 배울게 산더미처럼 생길 것이다. 네임스페이스는 대체 뭐냐….

그런데 정말 국내엔 쓸만한 PHP 문서들이 없다. 이를테면 ‘고수’도 없는 것 같다. 있어도 은둔해 있던지… 가장 크다는 모 커뮤니티 질답란에 자주 들어가서 답변을 쓰고 있긴 하지만, 기억에 탄성을 내지르는 질문을 본 적도 없다. 맨날 쌩기초, 쌩기초… 팁란도 예전엔 그럭저럭 테크니컬한 팁들이 꽤 올라오곤 했는데, 요즘엔 자기가 만든 라이브러리를 팁이랍시고 올리는게 전부다. 라이브러리는 자료실에 올리던가…

전태일이가 그토록 소망했던게 법전을 설명해 줄 대학생 친구였다지. 나는 진짜 프로그래밍 고수랑 가까운 사이였으면 좋겠다. 내게 맥을 짚어 줄 수 있는 그런 사람…

소스 관리를 안하다가 (나한텐 필요 없는거라 생각했지), 이번에 서버 작업 후에 subversion을 깔아서 사용하고 있다. 놀랍도록 편하다. 맨날 에디트플러스로 작업하다가 이클립스를 쓰기 시작했다. 놀랍도록… 아니 아직 이클립스는 편한 줄 (좋은 줄) 모르겠다.

내게 프로그래밍은 새로운 것에 대한 거부감을 없애고 계속적으로 자기 내부로 그것을 끌어 들이는 것이다. 난 이걸로 족해, 그런건 필요 없어… 하다가는 릴리즈가 종료된 PHP 4처럼 어느 사이엔가 바보가 되고 말 것이다.

제로보드XE 위젯 클래스에서..

사이트 하나를 제작 중인데, 그냥 하드 코딩했던 것을 익숙해 질 겸 해서 제로보드XE로 변환하고 있다.
static 페이지 같은 경우는 뭐라 할 것도 없이 너무 편하게 작업 할 수 있었다. 확실히 제로보드XE는 단순한 게시판이 아닌 통합 사이트 빌더로 진화하고 있는 모양이다. (일전에 이와 비슷한 솔루션을 엄청난 돈을 받고 판매하는 회사를 본 적이 있는데, 이제는 오픈소스로 제로보드XE가 나왔으니 그 회사엔 빨간불이 켜지겠지.)

아무튼 dynamic 페이지가 문제였다. 이걸 어떻게 옮길까 하고 고민하다가, 제로보드XE에서 새로 도입된 ‘위젯’이란 기능을 이용해서 옮겨보기로 했다.

기존 코드를 변환해서 붙여봤더니… 안된다.
뭐가 문제지.. 한참 들여다봐도 뭐가 문젠지도 모르겠다.
단위 테스트도 안되고 에러메세지도 안나온다. 그냥 안된다.

그렇게 한 서너시간을 보냈다. 시간도 없는데 갑자기 마음이 급해졌다.

결국 문제를 발견했다. 젠장… 어째서 위젯 클래스 내에서 require_once가 먹질 않는건지…
데이터베이스에 접근해야 하는데, 새로 모델을 만들고 할 시간이 없어서 그냥 생짜로 PEAR DB를 이용해서 작업을 하려다 보니 문제가 된거였다. 아니 그건 그런데, 어째서 저 함수가 먹질 않는 것인가!!
(eval 함수도 안먹음..)

그래서 써본지 십만년도 더 된 것 같은, php에서 제공하는 네이티브 데이터베이스 함수를 써서 해결했다.
하고 나니 너무 허탈하다..

그런데 문제는 개발관련 문서들이 전무하다는 것이다. 하다못해 기본적인 명세도 없다. 그냥 디렉토리 구조랑, 스킨 템플릿 문법 약간… 내가 못찾는건가?

아무튼 나라도 시간되면 조금씩 정리해야겠다..  

쉘 스크립트로써의 PHP cli

펄이나 파이썬보다는 아직 부족할지 몰라도, PHP cli는 PHP에 익숙한 프로그래머라면 꽤나 생산성 있는 쉘 스크립트 입니다.

http://kirrie.springnote.com/pages/689575

한번 쉘 스크립트에 대해서 써봐야지 하다가 아예 작정하고 오늘 시간을 내서 문서를 작성했습니다.

궁금한 점이 있다면 답글이나 메일로 해주세요.
물론 아무도 없겠지만. -_-;;

헌책, 무식하게 찾아버리자!! alpha version

주변에 책 좋아하시는 분들이 많으니, 살짜쿵 공개해봅니다.
원래 필요해서 혼자 쓰려고 만들었는데, 혼자만 즐거우면 뭐합니까. 함께 즐거워야지요.

http://kirrie.pe.kr/playground/used_book_search/

간단한 도서명으로 각종 인터넷 헌책방에서 검색결과를 빨아오기 해서 출력해줍니다.
그러고보니 인터넷 헌책방도 꽤나 많아졌네요.
검색 가능한 헌책방들은 추후에 천천히 추가하도록 하겠습니다. 현재는 12개의 인터넷 헌책방에서 검색이 가능합니다.

사용하시다가 문제 생기면 코멘트 남겨 주시거나 메일주세요.

—>
2005년 11월 27일 추가된 사항
1. 현재 17개의 인터넷 헌책방에서 검색 가능
2. 검색결과 화면 정리 (맨 마지막에 종합 검색결과 정보가 뜹니다.)