오랫만에 알게된 PHP 컨퍼런스 정보가 있어서 알려드립니다.
Zend, CDNetworks, 큐브리드, 마이크로소프트웨어, 위키북스, XpressEngine 후원이네요.

바로 가기 : PHP Fest 2011  “내일을 위한 PHP”

PHP Fest 2011

“내일을 위한 PHP”

2011년 5월 28일 오후 12시 30분

숙명여자대학교 명신관 7층

주최/주관 : PHPKorea와 숙명여자대학교 SOLUX

후원 :
Zend,CDNetworks,큐브리드,마이크로소프트웨어,위키북스,XpressEngine

대상 : PHP와 웹서비스 개발이 관심있는 누구나

참가인원 : 선착순 250명

참가비 : 무료


 IBM DeveloperWorks의 문서 제목을 보던중에 재밌는 문서를 발견했습니다. 사실 발견한지는 꽤 시간이 지났지만, 테스트를 해본다는 둥, 내용을 검증 해봐야겠다는 둥... 평소에 하지 않던 짓을 하려다가 시간만 보내고 이제야 글을 올립니다. 아마도 게으름이 가장 큰 탓이겠죠.
 제목만으로는 개인적으로 아주 많이 기다려왔던 문서가 아닐까합니다. Java 애플리케이션 서버에서 PHP 프로그램을 돌릴 수 있고, Java의 클래스들을 PHP 안에서 실행시킬 수 있다는거. 아주 맘에 드네요. 자세한 내용은 원문을 보시길...
원래 레진(Resin)에 포함되어있는데 톰캣에서도 돌릴 수 있다고 합니다.

원문 : Java 기반 PHP 프레임워크 Quercus 소개

Quercus는 Java™ 기술과 PHP를 함께 사용하여 웹 서비스와 애플리케이션을 작성할 수 있는 새로운 도구입니다. Quercus 프레임워크에는 Java와 PHP가 서로 통합되어 있기 때문에 Spring, Hibernate 등의 유용한 Java 라이브러리를 애플리케이션에 쉽게 통합할 수 있습니다. 이 기사에서는 약간의 코드 샘플과 함께 이 프레임워크에 대해 간략하게 설명합니다. 간단한 HelloWorld 샘플을 사용하여 이 프레임워크의 기능과 장점을 살펴본 후 마지막으로 프레임워크 아키텍처에 대해 설명하고 실제 예제를 자세히 살펴봅니다.

소개

Quercus는 순수하게 Java로 구현된 오픈 소스 PHP 5 엔진이다. Quercus 문서에 따르면 Quercus는 Resin 애플리케이션 서버를 기반으로 실행되고 로드 밸런싱, 프록시 캐싱 등의 Resin 기능을 사용한다. 이 기사에서는 Apache Tomcat을 기반으로 Quercus를 실행하면서 그 기능에 대해 설명한다. 또한 PHP와 Java가 통합되어 있는 Quercus를 통해 웹 서비스와 애플리케이션을 쉽고 유연하게 작성하는 방법도 보여 준다.


IBM DW에 올라온 글 중에 [안전한 PHP 응용 프로그램을 작성하는 일곱 가지 습관]이라는 글을 소개합니다.
앞으로 PHP에 손댈 일이 많아질것 같아서 여기저기 뒤지다보니 찾게된 문서입니다. 혹시나 이 문서를 나중에 못 찾을까봐 즐겨찾기 해놓는 기분으로요. ^^

원문보러가기 : 안전한 PHP 응용 프로그램을 작성하는 일곱 가지 습관

PHP 응용 프로그램을 짤 때는 원격 보안과 지역 보안을 모두 고려해야 합니다. 이 기사에서는 두 가지 측면 모두에서 PHP 프로그램 보안을 높여줄 개발자를 위한 일곱 가지 프로그래밍 습관을 소개합니다.

보안을 고려할 때는 실제 플랫폼과 운영체제 보안뿐만 아니라 응용 프로그램 보안 유지도 중요하다. 즉, 프로그래머는 안전한 프로그램을 짜야 한다. PHP 프로그램을 작성한다면 다음 일곱 가지 습관으로 프로그램 보안을 최대로 높여보자.

  • 입력을 검증하라.
  • 파일 시스템을 보호하라.
  • 데이터베이스를 보호하라.
  • 세션 정보를 보호하라.
  • XSS(Cross-Site Scripting) 취약점을 방어하라.
  • 폼 정보를 보호하라.
  • CSRF(Cross-Site Request Forgeries)를 방어하라.
  지난번에 소개한 "PHP 프레임워크, Part 1 많이 사용하는 프레임워크"에 이어서 "Part 2: 간단한 응용 프로그램 만들기"를 소개합니다. 실제로 간단한 응용 프로그램을 만드는 내용이구요. 그다지 자세하진 않습니다.
예전에 소개한 "PHP를 사용하여 인터랙티브한 제작 방식의 위키 만들기" 처럼 자세하다면 좋을텐데... 조금 아쉽긴해도 어느정도 삽질을 해야 자기것으로 만들수 있겠죠. ^^; 이런말하면서도 뭔가 만들어보진 못하고 있습니다. ^^;

 PHP로 만든 웹 메일 서버 관리를 하면서 PHP로 리눅스  메일 서버의 계정 및 조직도 정보를 관리하면서 느낀 거지만, PHP라는게 참 쓸만하다는 겁니다. 쓸만한 프레임워크가 많아져서 더욱더 광범위하게 사용되면 좋겠다는 생각을 해봅니다. 그런 의미에서 이 문서가 많은 분들에게 읽혀지길 바랍니다. ^^


원본 : PHP 프레임워크, Part 2: 간단한 응용 프로그램 만들기(Zend, symfony, CakePHP로 Blahg 구현하기)



이번 "PHP 프레임워크" 연재 기사에서는 널리 쓰이는 PHP 프레임워크 세 개(Zend, symfony, CakePHP)를 살펴봅니다. 각 프레임워크에서 간단한 응용 프로그램을 구현하고 확장하면서 유사성과 차이점을 비교합니다. Part 1에서는 전반적인 기사 범위를 정하고 앞으로 필요한 환경을 설정했습니다. 이번 Part 2에서는 각 프레임워크에서 간단한 응용 프로그램을 작성합니다.

Part 1에 서는 전반적인 기사 범위를 정하고 앞으로 필요한 환경을 설정했다. 이번 Part 2에서는 세 가지 프레임워크에서 각각 간단한 프로그램을 작성한다. 이어질 기사에서는 이번에 작성한 프로그램을 확장하고, 예외 상황을 살펴보고, Ajax를 추가하고, 외부 프로그램과 통합하는 등 다양한 모험이 기다린다.

이번 기사에서는 Blahg라는 예제 응용 프로그램을 세 가지 프레임워크에서 작성한다. 젠드 프레임워크(Zend Framework), 심포니(symfony), CakePHP에서 간단한 응용 프로그램을 구현하는 방식을 처음부터 단계적으로 살펴본다.

Part 1에서 각 프레임워크를 설치하고 기본 환경을 설정했다. 아직 하지 않았다면 지금 끝내기 바란다.

이 연재 기사에서는 독자들이 PHP와 응용 프로그램 설계, 데이터베이스 사용법에 어느 정도 익숙하다고 가정한다. 프레임워크를 사용한 경험은 없어도 좋으나, 배우겠다는 의욕은 필수다.



 오랫만에 PHP에 관한 글을 소개하려합니다. PHP의 다음 버전인 버전 6에 대한 얘기네요. 제가 PHP를 한창 사용할때만해도 4.x대의 PHP를 사용했었습니다. 5.0이 주로 사용될때는 PHP보다 JSP로 개발을 하던때구요. 몇년되지 않았는데 6 버전이 나왔네요.
 저는 PHP를 이용해서 웹 사이트 개발과 메일 서버의 계정관리, MySQL DBMS 관리 등을 했으며, 리눅스 서버의 파일 관리(메일 서비스 관리 할때입니다.)에도 일부 사용했었습니다. PHP가 참 다양한 일에 쓰인다는걸 알게 되었죠. 이제 새 버전이 나온다고 하니 어떤 기능이 추가 되었는지 한번 관심을 가져보려합니다.
흠... 이번에는 유니코드 지원이 강화되었다고 하네요.


원문 : PHP의 미래(PHP V6에서 등장할 새로운 기능과 PHP 스크립트에서 달라질 부분을 살펴보자)

원문은 컨설턴트인 Nathan A. Good이 작성했으며, 박재호, 이해영님께서 한글로 옮기셨습니다.


PHP 다음 버전인 V6는 객체 지향 관점에서 사용하기 쉽도록 새로운 기능을 제공하고 문법을 개선합니다. 또한 핵심 함수에서 유니코드를 지원하는 등 다국어 지원과 안정성이 한층 높아졌습니다.

PHP는 이미 인기가 높다. (Netcfaft에 따르면) 수백만 도메인이 PHP를 사용하며, 대다수 ISP가 PHP를 지원하며, 야후!와 같이 대표적인 웹 회사에서도 PHP를 사용한다. 이에 PHP V6는 유용성과 안정성을 더욱 높여주는 새로운 기능을 제공하여 현재 성공에 박차를 가하리라 보인다. 여러분은 PHP V6를 맞이할 준비가 되었는가? 내일 당장 PHP V6로 판올림한다면 지금 스크립트가 그대로 돌아갈까? 아니면 여기저기 손봐야 할까? 이 기사에서는 PHP V6에서 달라진 내용 중에서도 현재 스크립트에 영향을 미치는 부분에 초점을 맞춘다(일부 새 기능은 PHP V5.x로 역이식되었다).

아직 PHP를 사용하지 않고 고려 중이라면 최신 기능을 살펴보기 바란다. 코어 함수 유니코드 지원에서 XML 기능에 이르기까지, 복잡한 프로그램 구현을 수월하게 만들어주는 기능이 많다.



 IBM DW의 문서중에서 PHP 프레임워크에 대한 문서를 소개합니다. PHP에서 MVC아키텍처를 지원하고, 손쉬운 개발/유지보수를 가능하게해주는 프레임워크 세가지에 대한 내용입니다. Part1에서 Part5까지로 기획된 문서로 이중에서 첫번째 문서를 소개합니다.

 PHP에서 손뗀지가 몇년되긴하지만, PHP에 대한 다양한 기술들이 소개되는걸 보니 반갑네요. 이 문서가 많은 분들에게 도움이 되길 바랍니다.


원문 : PHP 프레임워크, Part 1: 많이 사용하는 프레임워크 세 개


몇 해 전까지만 해도 PHP를 둘러싸고 자주 터져나온 비평 중 하나가 MVC 아키텍처를 지원하지 않는다는 사실이었습니다. 하지만 상황은 변했습니다. 지금은 선택할 만한 PHP 프레임워크가 상당히 많아졌습니다. 이 연재 기사에서는 많이 사용하는 PHP 프레임워크 세 가지인 젠드(Zend), 심포니(symfony), CakePHP를 소개합니다. 각 프레임워크에서 간단한 프로그램을 구현하고 확장하면서 세 프레임워크의 유사점과 차이점을 설명합니다.

이 기사에 대해

이번 기사는 다루는 내용이 상당히 많다. 그래서 정신을 바짝 차리고 따라오기 바란다. 여기서는 PHP 프레임워크 세 가지를 살펴본다. 그 세 가지가 무엇일까? 왜 하필이면 세 가지일까? 다른 프레임워크는 없는가? 다른 프레임워크가 있다면 그건 왜 살펴보지 않는가? 의문스러운 점이 아주 많으리라. 하지만 대다수 궁금증은 각 프레임워크를 설치하기 전에 해결되리라 믿는다. 프레임워크를 모두 설치한 다음에는 이 연재 기사에서 사용할 테스트 프로그램을 살펴본다. 테스트 프로그램만 봐도 각 프레임워크가 어떤 점이 다른지 혹은 어떤 점이 같은지 감이 오리라.

시스템 요구사항

시작하기 전에 환경부터 설정하자. 요구사항은 많지 않다.

  1. 세션을 지원하는 HTTP 서버가 필요하다. mod_rewrite 모듈을 지원하면 더 좋다. — 이 연재 기사에서는 아피치 V1.3을 사용한다. mod_rewrite 모듈을 활성화했다.
  2. PHP V5.1.4 이후 버전이 필요하다 — 여기서 살펴보는 모든 프레임워크가 V5.1.4를 요구하지는 않는다. 하지만 편의상 모든 프레임워크에서 같은 PHP 버전을 사용한다. 이 연재 기사는 PHP V5.2.3으로 작성했다.
  3. 어느 정도 최신 MySQL이 필요하다 — 다른 데이터베이스를 사용해도 좋지만, 이 연재 기사와 예제 프로그램은 MySQL V5.0.37을 사용한다.
  4. PHP V5.2.4 이후 버전과 MySQL을 지원하는 운영체제가 필요하다 — 이 연재 기사에서는 리눅스(Linux®)를 사용한다. 윈도우(Windows®) 사용자라면 적절히 대응하기 바란다. 특히 프레임워크를 설치할 때 디렉터리를 만드는 방식에 주의한다.

필요한 사전 지식

이미 독자가 PHP를 알고, 응용 프로그램을 설계할 줄 알고, 데이터베이스를 사용할 줄 안다고 가정한다. 프레임워크를 사용한 경험은 없어도 좋으나, 배우겠다는 의욕은 필요하다.




 최근에 IBM DeveloperWorks에 올라온 글중에서 PHP 관련 글을 소개하려합니다.
"PHP에서 풀(pull) 방식으로 XML 구문을 분석하는 방법 (한글)  스트리밍 방식으로 메모리 효율을 높인다"라는 제목의 글은 PHP 5에서 추가된 XMLReader 라이브러리를 이용하여 글의 제목처럼 메모리 효율을 올리는 방법에 대한 글입니다.

PHP가 5 버전에 이르러서 많은 변화가 있었는데 실무에서 PHP 개발을 하지 않은지가 오래되서 그런지(요 2년사이에는 기능 수정하는 정도만 했었습니다.) XMLReader라는 라이브러리는 좀 생소하군요.

원문 : PHP에서 풀(pull) 방식으로 XML 구문을 분석하는 방법 (한글)  (부제 : 스트리밍 방식으로 메모리 효율을 높인다)

 아래는 문서의 앞부분을 발췌한 것입니다.

PHP 5는 XML(eXtensible Markup Language)을 읽는 클래스인 XMLReader를 새롭게 지원한다. SimpleXML이나 DOM(Document Object Model)과는 달리 XMLReader는 스트리밍 모드에서 동작한다. 즉, 문서를 처음부터 끝까지 읽어들인다는 뜻이다. 또한 문서를 끝까지 읽기 전에 이미 읽어들인 부분만으로도 작업이 가능하다. 따라서 속력이 매우 빠르고, 효율성이 높으며, 메모리가 크게 절약된다. 처리할 문서가 클수록 메모리 효율과 속력은 더욱 중요한 요인이다.

libxml

여기서 소개하는 XMLReader API는 Gnome 프로젝트의 C/C++용 libxml 라이브러리를 사용한다. 구체적으로 보면 libxml의 XmlTextReader API를 호출하는 PHP 레이어일 뿐이다. XmlTextReader는 .NET의 XmlTextReaderXmlReader 클래스를 모델로 삼았다(코드를 공유하지는 않는다).

푸시(push) 모델을 사용하는 SAX(Simple API for XML)와는 달리, XMLReader는 풀(pull) 모델을 사용하는 구문분석기다. 즉, 여러분이 만든 프로그램에 통제권이 있다는 뜻이다. 구체적으로 설명하자면, 구문분석기가 프로그램으로 이벤트를 밀어주는 방식이 아니라, 프로그램에서 다음 이벤트를 명시적으로 가져오는 방식이다. 프로그램이 발생하는 이벤트에 반응하기보다 프로그램에서 내용을 요청한다고 보면 된다. 디자인 패턴 관점에서 보면, XMLReader는 Observer 패턴이 아니라 Iterator 패턴을 구현한 클래스라고 하겠다.




2월 첫번째 IBM DW Bloger 활동이 되겠네요. 지난번에 이어서 Eclipse를 이용한 웹 개발에 관련된 문서를 소개하려고 합니다. 지난번엔 J2EE 개발에 이용하는 법이었고, 이번엔 PHP 개발에 사용하는 방법을 소개하고 있습니다.


원문 : 이클립스 유로파로 웹 개발하기, Part 2: PHP 개발 도구 (한글)

웹 개발자가 어떤 기술을 결합하여 사용하는지에 상관없이 이클립스는 생산성을 높일 수 있는 최고의 통합 개발 환경(IDE)입니다. 3회 연재인 "이클립스 유로파로 웹 개발하기" Part 1에서 최신 이클립스 유로파로 자바 웹 애플리케이션을 신속하게 개발할 수 있는 방법을 다뤘습니다. Part 2에서는 PDT(PHP Development Toolkit)라 알려진 이클립스 플러그인의 다른 세트를 사용하여 얼마나 쉽게 PHP 애플리케이션을 개발할 수 있는지를 살펴보겠습니다.

시작하기에 앞서

여 러분은 PHP 개발자인가? 그렇다면 개발 환경에 무엇을 사용하는가? vi 대 emacs 토론에 끼어들기 좋아하는 최소주의자(minimalist)일지도 모른다. 또는 IDE를 선호하나 상용 도구엔 관심이 없을 수도 있다. 어쨌든 이클립스용 PDT에 대한 관심은 높을 것이다. 그렇다. 이클립스다. 이는 더 이상 자바 개발자에만 국한된 얘기가 아니다. PHP 프로그래밍에 대한 기본 지식을 가지고 있어야 본 튜토리얼을 이해할 수 있다. 이클립스 IDE에 익숙하면 도움이 되지만 꼭 필요한 것은 아니다. 이클립스에 대한 배경 정보를 더 원한다면 참고자료를 보기 바란다.

본 연재에 대해

본 "이클립스 유로파로 웹 개발하기" 연재를 통해 어떤 언어를 선택하든 웹 개발에 이클립스가 최적의 플랫폼이라는 것을 알 수 있을 것이다. 이클립스의 유연한 플러그인 시스템은 자바 기술, PHP, 루비(Ruby)로 웹 개발을 하는 데 있어 맞춤화된 이클립스 버전을 쉽게 만들 수 있도록 해 준다. 각기 다른 플러그인을 통해 이클립스가 각 언어에 독특한 능력을 갖게 한다는 것을 알 수 있고 모든 웹 개발자가 활용할 수 있는 공통 기능에 대해 살펴볼 수 있다. 본 연재를 통해 야구 선수의 경기 데이터에 접속하고 샘플로 그 선수들의 경기 통계를 계산할 수 있는 야구 웹 애플리케이션을 만들 것이다.




 이번에도 IBM DW의 기술 문서중에서 Ajax관련 글을 소개하려합니다. 정말 Ajax가 대세...
Ajax와 XML을 이용해서 YouTube같은 멀티미디어 서비스를 제공하는 사이트에 적용된 기술을 설명하고 있습니다. PHP에 Ajax 기술을 적용해서 예를 들고 있죠.
한번쯤 읽어두면 도움이 될 거라 생각합니다. ^^

원문 : Ajax와 XML: 미디어용 Ajax (한글)(부제 : Ajax 기술을 사용하여 영화와 슬라이드 쇼 보여주기)

2007 년 12 월 18 일

광대역, 미디어, 영화, 이미지, 사운드 드라이브는 Web 2.0에 일대 혁신을 가져왔습니다. 미디어에 PHP와 Asynchronous JavaScript™ + XML (Ajax) 기술을 결합하는 방법을 배워봅시다.

웹 애플리케이션의 새로운 조류를 가장 잘 드러내는 사이트가 무엇이냐고 묻는다면, 대부분 YouTube라고 대답할 것이다. 이 사이트는 뚜렷한 방식으로 신 기술을 채택했을 뿐만 아니라, 우리가 미디어를 보는 방식과 미디어와의 관계를 변화시킨 사이트라고 할 수 있다. 주요 이야기들이 기존의 전통적인 미디어에 나타나기 전에 YouTube에서 발생하고, 그렇지 않을 때에는, YouTube는 하나의 큰 TiVo처럼 작동한다.


필자는 Jack D. Herrington이라는 20년 경력의 소프트웨어 엔지니어입니다.
 Code Generation in Action, Podcasting Hacks, PHP Hacks등의 책을쓴 사람이네요.
 이번에는 IBM DeveloperWorks의 오픈소스 관련 문서를 소개하고자합니다.
[PHP로 커스텀 검색 엔진 구현하기(한글)]이라는 문서이며, [Sphinx[각주:1]를 사용하여 콘텐트를 색인하고, 텍스트를 빠르게 찾으며, 유용한 검색 결과 만들기]라는 부제가 붙어있습니다. 이번에도 한글로 된 문서네요. 번역하신 분에게 감사드립니다.

저자인 Martin Streicher는 Linux Magazine 편집장이로군요. 퍼듀 대학에서 컴퓨터 과학 석사 학위를 받았으며, 1986년부터 파스칼, C, 펄, 자바와 최근에는 루비 프로그래밍 언어로 유닉스 계열 시스템을 프로그래밍해 왔다고 합니다.

원문 : PHP로 커스텀 검색 엔진 구현하기(한글)

Google과 이와 비슷한 종류의 검색 엔진들은 그 성능이 뛰어나지만, 이러한 검색 엔진들이 모든 사이트에 잘 맞는 것은 아닙니다. 여러분의 사이트 콘텐트가 매우 특수한 것이라면 Sphinx와 PHP로 로컬 검색 시스템을 만들어 봅시다.

인터넷 시대에, 사람들은 패스트푸드와 같은 형태의 정보를 원한다. 즉각적으로 제공되고, 노력을 들이지 않아도 되며, 적당한 크기(바이트 사이즈(byte-size))로 제공되는 음식을 원한다. 실제로, 인내심 없고 배고픈 대중들의 구미에 맞추려면, 웹 사이트는 바로 효과가 나타나는 포맷을 제공해야 한다.

  • RSS는 피자 배달부이다. 방금 구운 데이터를 여러분의 문 앞으로 배달한다.
  • 웹로그는 중국 요리 테이크아웃으로서, 여러분이 좋아하는 매콤한 요리를 배달한다.
  • 포럼은 이웃과 함께 즐기는 팟럭(potluck) 음식이다. (또는 "Animal House"[각주:2]의 음식 싸움 장면에 알맞다.)
  • 검색(search)은 가까운 카페테리아에서 먹을 수 있는 음식들에 비유할 수 있다. 여러분이 원하는 음식을 쟁반에 담아서, 자리를 차지하고 앉아서 먹으면 된다.

다행히도, PHP 개발자는 광범위한 RSS, 블로그, 포럼 소프트웨어를 찾아서 사이트를 생성하거나 수정할 수 있다. Google등 검색 엔진들의 성능이 우수하지만, 이러한 검색 엔진이 모든 사이트에 잘 맞는 것은 아니다.

예 를 들어, 웹 사이트가 수십만 개의 새롭게 단장된 Porsche 부품들을 제공한다면, Google은 "Carrera parts" 같은 광범위한 검색용 사이트를 띄울 것이다. 하지만 보다 구체적인 "used 1991 Porsche 911 Targa headlight bezel"에 대한 결과는 만들 수 없다.

여러분의 콘텐트가 고도로 특화되었거나 방문자가 여러분의 검색 기능에서 기대하는 것이 실제 작업 흐름과 밀접한 것이라면, 자신의 사이트에 맞게 재단된 로컬 검색 시스템으로 웹의 글로벌 검색 엔진을 확장하는 것이 최상의 방법이다. ("수 많은 건초 더미에서 바늘 찾기")

빠 르고, 성능 좋은 오픈 소스 무료 검색 엔진을 PHP 사이트에 추가하는 방법을 알아보자. 이 글에서는 일부분만을 개발할 것이다. 대신, 초점은 효과적인 검색 결과를 제공하는데 필요한 컴포넌트(데이터베이스, 인덱스, 검색 엔진, PHP 애플리케이션 프로그램 인터페이스(API))에 맞출 것이다.



  1. 오픈 소스 검색 엔진으로서 텍스트를 매우 빠르게 검색하도록 설계되었다. Sphinx는 무료라는 점과 PHP API를 제공한다는게 강점인것 같네요.
     홈페이지 : http://www.sphinxsearch.com [본문으로]
  2. 확인은 못했지만, 존 랜디스 감독의 Animal house라는 영화를 말하는것 같습니다. 존 랜디스 감독의 1978년작 Animal house는 대학가의 문제아들이 모인 델타라는 동호회 회원들의 이야기라고 합니다. 총장이 델타를 해체시키고 회원들을 퇴학시키려는 음모를 진행하는게 내용이라고 하는군요. [본문으로]

+ Recent posts