시작하기 전에
이 튜토리얼에서는 실시간 웹을 소개함과 동시에 실시간 웹 애플리케이션을 빌드하는 몇 가지 이유를 살펴본다. 또한, 서버 자원을 유지하면서 멋진 사용자 경험을 제공하는, 응답이 빠르고 계속해서 업데이트되는 웹 애플리케이션을 작성할 수 있는 기술을 배운다.
실시간 웹 애플리케이션에서는 정보가 발행되는 즉시 사용자가 알림을 수신할 수 있으며 업데이트하기 위해 원본 소스를 수동으로 확인할 필요가 없다. 이러한 애플리케이션은 Twitter 및 Friendfeed와 같은 소셜 알림 도구와 Google Wave와 같은 웹 기반 협업 도구, Meebo와 같은 웹 기반 대화 클라이언트로 일반화되었다.
XMPP(Extensible Messaging and Presence Protocol)는 실시간 애플리케이션을 위한 XML 기반의 기술 세트로, 데이터가 새로 작성되거나 변경될 때마다 계속해서 업데이트되는, 네트워크로 연결된 애플리케이션으로 정의된다. 이러한 애플리케이션은 원래 엔터프라이즈 환경에서 인스턴트 메시징과 인식 애플리케이션을 지원하기 위해 프레임워크로 개발되었다.
이 튜토리얼에서는 데이터가 발행될 때마다 바로 RSS 피드 업데이트를 사용하여 스스로 업데이트하는 간단한 도구인 Pingstream을 빌드하게 된다. (Pingstream 소스 코드는 다운로드를 참조한다.) 이러한 과정을 통해 다음과 같은 내용을 살펴보게 된다.
- XMPP가 웹 애플리케이션에 특히 적합한 이유를 확인한다.
- XMPP 통신 컴포넌트에 관해 배운다.
- Openfire XMPP 서버를 설치하고 구성한다.
- PHP와 XMPPHP 라이브러리를 사용하여 XMPP 서버에 연결한다.
- RSS 피드에 있는 새 항목을 확인하고 이 항목을 XMPP를 기반으로 전송한다.
- BOSH(Bidirectional-streams Over Synchronous HTTP)를 사용하여 HTTP를 기반으로 XMPP 서버에 연결하기 위해 Strophe와 jQuery를 사용한다.
- 웹 페이지에 XMPP 알림을 표시한다.
이 튜토리얼에서는 독자가 고급 프로그래밍을 해본 경험은 없다고 해도 PHP로 웹 애플리케이션을 개발하는 데 다소 익숙하다고 가정한다. 또한, HTML과 Javascript를 다룬 경험이 있어야 한다. jQuery Javascript 프레임워크에 대한 경험이 있으면 도움이 된다. XMPP나 이와 비슷한 기술에 대해 익숙할 필요는 없다.
이 튜토리얼을 따라 하려면 다음과 같은 서버 소프트웨어를 설치하고 실행해야 한다.
- PHP 5.2 이상
- Apache HTTP Server
- MySQL
이 튜토리얼을 따라 하다 보면 다음과 같은 소프트웨어와 라이브러리를 다운로드하여 설치하게 된다.
- Openfire
- jQuery
- Strophe
- XMPPHP
- Last RSS
또한, MySQL 서버 도구인 phpMyAdmin이 유용하다는 것을 알게 될 것이다. 로컬에서 실시간 웹 애플리케이션 소프트웨어를 테스트하기 위해 데스크탑 시스템을 사용하고 있는 경우에는 설치된 테스트 웹 서버 인프라를 관리하고 실행하는 데 XMAPP가 유용하다는 사실을 알 수 있을 것이다.
이러한 모든 도구에 대한 다운로드 링크는 참고자료를 확인하기 바란다.