Skip to content
TUWLAB.com
모든 게시물에 대하여 '링크'
방식의 퍼가기만 허용합니다.
한양대학교 전자통신컴퓨터공학부
바라미
  • 103
  • 2590041
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 OrCAD [OrCAD 16.3] Capture 부품 이동하며 자동 연결 옵션 설정하기 file TUW 2021.12.28 12358
112 AVR [MP3 Project] 산 넘어 산이라더니... TUW 2014.04.16 7091
111 AVR [MP3 Project] MP3 코딩중 file TUW 2021.12.28 7629
110 일반 [Make 튜토리얼] Makefile 예제와 작성 방법 및 기본 패턴 2 file TUW 2018.11.21 236359
109 Linux [Linux] Sudo 명령의 Secure Path TUW 2015.04.24 8115
108 Linux [Linux] Screen 터미널 에뮬레이션 프로그램 사용하기 TUW 2015.08.19 3044
107 Linux [Linux] fdisk 활용 외: 파티션 생성, 배드블록 검사, 파일시스템 생성 TUW 2015.04.24 8250
106 일반 [HTML] 페이지 자동 이동 - Redirect TUW 2014.03.19 23839
105 일반 [GIT] 임시 저장소 사용하기: stash TUW 2015.11.27 4775
104 일반 [GIT] 실행취소와 Commit 삭제: reflog, reset, checkout, revert TUW 2019.04.28 64624
103 일반 [GIT] 병합하고 Commit 재정렬하기: cherry-pick, rebase, merge file TUW 2017.06.02 32266
102 일반 [GIT] 로컬 저장소 정보 조회하기: status, show, log, diff, blame file TUW 2017.06.02 7231
101 일반 [GIT] 기본 환경 설정 및 작업 시작하기: config, clone, init, pull, fetch, remote TUW 2019.01.30 12853
100 일반 [GIT] Submodule (Nested Repository) 사용하기 file TUW 2020.08.28 10935
99 일반 [GIT] Patch 만들기 및 적용하기: format-patch, am TUW 2015.01.10 41114
98 일반 [GIT] GIT이란 무엇인가, GIT에 대하여 file TUW 2017.06.02 27729
목록
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