Skip to content
TUWLAB.com
모든 게시물에 대하여 '링크'
방식의 퍼가기만 허용합니다.
한양대학교 전자통신컴퓨터공학부
바라미
  • 385
  • 2587275
DNS Powered by DNSEver.com
XE

XE 요소 개발을 쉽고 빠르게 - XE Wizard

Posted 2013. 03. 13 Updated 2017. 06. 02 Views 13923 Replies 2
Atachment
첨부

지난 2개월간 일련의 XE 관련 프로젝트들을 진행하면서 XE 구성요소들에 대한 다방면의 지식을 습득할 수 있었습니다.

다른 CMS와는 달리 XE는 구성요소들이 레이아웃, 모듈, 위젯, 애드온 등으로 세분화되어 구성되어 있으며, 각 요소들도 기능별, 성격별로 구성 파일들이 세분화되어 있습니다.

XE 개발을 처음 시작하려고 마음먹은 개발자가 처음 맞닥들이게 되는 난관은 수많은 디렉토리와 파일들에 대한 부담감입니다.

저도 역시 처음에 그랬습니다. 참조를 하려고 게시판 모듈을 뜯어봤는데, conf에 lang, queries 등등 정체불명의 디렉토리들과 board.admin.model.php은 무엇이며... [...]

초반 갖은 삽질을 통해 각 파일 및 디렉토리의 용도를 파악했다고 하더라도 곧바로 또 다른 불편함을 느끼게 되는데, 바로 프로젝트 시작의 지루함(?)입니다.

XE의 가장 큰 구성요소라 할 수 있는 모듈 제작에 착수하려면 기본적으로 처음 세팅에 다음 요소들이 필요합니다.

  • conf 디렉토리 : 모듈정보 및 환경설정 파일을 저장
  • lang 디렉토리 : 언어 관련 파일을 저장
  • tpl 디렉토리 : 뷰(View) 표시를 위한 HTML 템플릿 파일을 저장
  • module.class.php : 모듈 최상위 클래스
  • module.admin.view.php : 관리자 뷰(View)를 관장하는 클래스
  • module.admin.controller.php : 관리자 제어를 관장하는 클래스

여기에 DB라도 쓸라 하면, queries 디렉토리와 schemas 디렉토리도 추가됩니다. 폼 유효성 검증 기능을 사용하려면 ruleset 디렉토리도 생성해야 합니다.

당연히 위에 나열된 요소들은 모듈에 따라 서로 다르게 구현되어 있지만, 기본적으로 같은 공통 요소가 있습니다. 예를 들어, 관리자 페이지에서 모듈 목록을 보여주고 삽입/수정/삭제 하거나 권한설정, 스킨설정 등의 부분이 공통된 요소이며, 이들은 모든 모듈에 공통적으로 들어가는 기능들이라고 할 수 있습니다.

처음 몇 번은 이미 만든 모듈을 복사해서 모듈명만 바꿔 사용을 했으나, 이내 이런 단순반복성 노가다를 자동화 할 필요를 느끼게 되었습니다. (저는 어렵고 힘든 일보다 단순하고 지루하고 반복적인 일을 극도로 싫어합니다...)


보통 윈도 MFC 프로그래밍과 같은 대규모(?) 프로젝트를 시작하는데, 메모장을 열고 하나부터 열까지 필요한 내용을 다 써 나가는 개발자는 없을 것입니다. 보통 Visual Studio에서 프로젝트를 생성하고, 자동 생성된 템플릿 파일에 만들려는 프로그램의 성격에 맞도록 코드를 수정하고 추가해 가면서 프로젝트를 진행해 나갈 것입니다.

여기에 착안하여 XE버전의 Visual Studio.. 만큼은 아니더라도, 기본 템플릿 정도는 자동으로 생성해 주는 프로그램을 만들어 보기로 작정했습니다.

기본 틀만이라도 자동으로 생성해주면, 생각을 구현으로 옮기기까지 시간이 그만큼 단축되어 생산성이 향상되는 효과를 기대할 수 있기 때문입니다.

일주일동안 퇴근 후 남는 짧막한 시간을 활용하여 XE Wizard라는 모듈을 만들어 보았습니다. 개발자 정보와 생성할 요소들을 체크하면 모듈을 자동으로 생성해 줍니다. 파일과 디렉토리 생성 뿐만 아니라, 파일 내용 기본 템플릿도 자동 생성해 주는 기능을 갖추고 있습니다.


xewizard.png
▲ XE Wizard 모듈생성 탭
(XE Wizard도 XE 내에서 동작하는 하나의 '모듈'입니다.)


xewizard_output.png
▲ 자동 생성된 디렉토리와 파일들


mymodule.admin.view.php-x.png
▲ 자동 생성된 관리자 뷰 클래스 파일(module_name.admin.view.php)


XE 1.7.x 버전에서 최적화되어 동작하도록 제작했으며, 앞으로는 1.5.x 버전이 아닌 1.7.x 버전을 베이스로 개발을 해 나갈 것이므로 하위 버전 호환성은 검증하지 않았으며, 지원할 예정은 없습니다.

추후 필요에 따라 모듈생성기능 뿐만 아니라 위젯이나 애드온, 레이아웃과 같은 다른 요소를 자동 생성해주는 기능도 추가해 갈 예정입니다.

Visual Studio 만큼의 성능은 아니더라도, 기본 템플릿을 생성해 주는 기능만으로도 충분히 생산성의 향상을 기대할 수 있을 듯 합니다.


TAG •
서비스 선택
이용중인 SNS 버튼을 클릭하여 로그인 해주세요.
SNS 계정을 통해 로그인하면 회원가입 없이 댓글을 남길 수 있습니다.
댓글
?
Powered by SocialXE

  • ?
    홈페이지 eond 2014.01.25 02:06:42
    템플릿 생성해주는게 XE에선 꼭 필요하죠 하하하;;

List of Articles
번호 분류 제목 글쓴이 최근 수정일 조회 수
113 XE XE 브라우저 제목 제어기 애드온 file TUW 2017.06.02 10403
112 Apache Apache 일별 로그파일 생성하기, 필터링 로깅하기 TUW 2014.04.23 19971
111 Linux iptables 명령을 이용하여 특정 IP대역 접속 차단하기 TUW 2014.11.17 19038
110 Linux [vsFTP] 계정별 서로 다른 루트 디렉토리 지정하기 (chroot) file TUW 2017.06.02 23817
109 Linux [vi] 기본환경설정 (줄번호 표시, 방향키활성 등) TUW 2014.04.23 11628
108 Linux [Vi/Vim] 단축키 모음 file TUW 2017.06.02 11556
107 Linux [Emacs] 주요 단축키 모음 file TUW 2017.06.02 11580
106 Apache Apache2 서버에 SSL/HTTPS 설치하기 (StartSSL) - 1 file TUW 2017.06.02 17814
105 Apache Apache2 서버에 SSL/HTTPS 설치하기 (StartSSL) - 2 file TUW 2017.06.02 20551
104 Linux Ubuntu에서 PHP 최신버전 업데이트하기 TUW 2014.04.23 11025
103 XE Social XE 댓글 위젯에 SNS 전송 옵션 추가하기 6 file TUW 2017.06.02 23632
102 Android 삼성 스마트폰 루팅하기 file TUW 2017.06.02 22887
101 Android 루팅 응용 : 스마트폰 카메라 셔터음 없애기 2 file TUW 2018.02.08 34304
100 Android 루팅 응용 : 스마트폰 부팅화면 커스터마이징 4 file TUW 2017.06.02 33822
99 XE Social XE 트위터 프로필사진 표시 문제 해결하기 3 file TUW 2017.06.02 205147
98 XE [XE] elFinderXE 모듈 24 file TUW 2019.10.14 13998
목록
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 ... 13 Next
/ 13

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5