XpressEngine 개발자 매뉴얼 안내
XE는 기본 코드, 모듈, 위젯, 위젯스타일, 에디터 컴포넌트, 애드온등 여러 요소들로 구성되어 있습니다.
이런 요소들로 동작되는 XE의 전체적인 모습과 각 요소들의 동작 원리와 개발 방법등을 공유합니다
XpressEngine 개발을 위한 배경 지식
XE는 PHP4 언어를 주 언어로 하며 DBMS와 연동하여 동작하는 웹 프로그램입니다.
아래 항목들에 대한 이해가 있을때 개발하기가 더욱 수월합니다.
- 웹
웹이란 HTTP(HyperText Transport Protocol)을 근간으로 하는 환경을 의미합니다.
HTTP는 요청을 하고 응답을 받는 매우 간단한 구조로 되어 있으며 요청과 응답 동작 후에는 연결이 끊어지는 특성을 가지고 있습니다.
XpressEngine역시 웹을 근간으로 하는 프로그램이며 모든 구조와 동작은 요청을 받고 응답을 하고 끝나는 속성을 가지고 있습니다.
- PHP
PHP(PHP:Hypertext Preprocessor)는 웹프로그램을 쉽고 빠르게 만들 수 있는 웹개발에 최적화된 언어입니다.
물론 웹프로그램이 아닌 프로그램도 개발할 수 있지만 웹프로그램 개발에 더욱 뛰어난 기능과 환경을 제공합니다.
XpressEngine의 서버측의 모든 동작은 PHP4언어로 개발되고 운용됩니다.
- DBMS
DBMS(DataBase Management System)는 이름 뜻 그대로 데이터(정보)를 관리하는 시스템입니다.
다양하고 많은 데이터를 효율적으로 관리하기 위해 만들어진 시스템으로 MySQL, Oracle, PostgreSQL, Cubrid등 많은 DBMS가 개발되어 제공되고 있습니다.
XpressEngine은 이 DBMS를 XE만의 XML Query 를 통해서 제어하고 데이터를 구합니다.
또한 이 XML Query를 통해서 하나의 코드로 MySQL, SQLite, Cubrid, PostgreSQL, Firebird, MSSQL등 다양한 DBMS와 연동할 수 있습니다.
XpressEngine의 개발 방식
XE는 오픈 소스 프로젝트로 개발이 됩니다.
오픈 소스 프로젝트란 공개된 프로그램 코드를 협업하고 발전시키고 보완해 나가는 시스템을 의미합니다.
이 오픈 소스 프로젝트가 잘 그리고 원활히 유지될 수 있도록 XE의 개발은 각각의 프로젝트 단위로 관리되고 그 프로젝트 내의 IssueTracker라는 형상관리 시스템을 통해서 이루어집니다.
모든 개발에 대해서는 문제 제기와 그 문제에 대한 토론이 이루어지고 그 토론을 바탕으로 근거를 남기면서 개발하는 것을 원칙으로 합니다.
또한 이렇게 진행되는 개발은 SVN(SubVersion)이라는 버전 관리 프로그램을 통해서 그 코드가 유지되고 공유가 됩니다.
따라서 XE 프로젝트에 참여하고 또 참여한 결과를 나누기 위해서는 각 프로젝트의 wiki, 포럼, SVN, IssueTracker에 대해서 먼저 확인하시는 것을 권해드립니다.
- XE Project
XE Project 는 XE코어 및 XE 기반의 프로그램/ 스킨등을 개발하고 관리할 수 있는 위키, 포럼, SVN 저장소, 이슈트레커등의 기능을 갖춘 공간을 제공합니다. XE Core도 프로젝트로 관리되고 있습니다.
- IssueTracker
형상관리를 위해서 많은 도구들이 개발되었고 또 배포되고 있습니다.
하지만 XE는 XE 공식사이트의 회원 정보와 권한설정을 잘 연동하고 보다 쉽고 편리한 형상관리를 위해서 IssueTracker라는 XE 모듈을 통해서 관리를 하고 있습니다.
XE Core 프로젝트에서 IssueTracker를 통해 마일스톤(개발 계획)을 수립하고 또 문제나 아이디어등에 대한 의견을 받고 관리하게 됩니다.
IssueTracker에는 문제 관리, 코드 열람, 마일스톤 열람, 타임라인, 프로그램 배포등 여러 기능들이 있고 이 기능에 익숙해지시면 쉽게 형상관리가 가능합니다.
-
SVN (Subversion)
XE는 SVN을 통해서 프로그램 코드를 관리합니다.
오픈 소스 프로젝트이다 보니 다수의 개발자가 협업을 하고 이렇게 할때 발생되는 문제나 수정/추가 내역등을 SVN을 통해서 관리를 하여 문제 발생 요소를 없애고 보다 더 적극적인 협업을 할 수 있도록 합니다.
XE Core 프로젝트는 trunk, sandbox 2개의 저장소를 공식 저장소로 활용하고 있습니다.