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

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

Posted 2013. 03. 13 Updated 2017. 06. 02 Views 14193 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 Linux Ubuntu에서 GIT Client 설치 및 사용하기 TUW 2014.04.24 14065
112 Linux SCP명령어 - 초간단 파일/디렉토리 전송 TUW 2014.04.23 41623
111 Linux Ubuntu에서 저장소(Repository) 위치 변경하기 TUW 2014.04.23 24578
110 Linux 디렉토리를 다른 경로에 마운트하기 (mount --bind) TUW 2018.11.16 30243
109 일반 [Windows 7] 흔들어 전체 창 최소화(Aero Gesture) 기능 끄기 10 file TUW 2017.06.02 22243
108 일반 영어로 나타낸 수학 용어 모음 2 file TUW 2018.01.08 87201
107 일반 [사설 클라우드 구축] 자동 동기화 설정 (FreeFileSync) 2 file TUW 2017.06.02 39915
106 Linux [사설 클라우드 구축] 네트워크 드라이브 연결 (NetDrive) file TUW 2017.06.02 16748
105 Linux [사설 클라우드 구축] 삼바(SAMBA) 서버 구축, 우분투-윈도 공유폴더 구현 file TUW 2017.06.02 24948
104 Linux [사설 클라우드 구축] 기본 조건 및 아이디어 TUW 2014.04.20 13513
103 일반 File Object (<input type='file' />)에 대하여 2 file TUW 2017.06.02 51866
102 Linux [Ubuntu] SSH 초기 접속 속도 향상시키기 TUW 2014.04.23 14188
101 일반 Guided Text Input 구현 1 file TUW 2017.06.02 11239
100 일반 페이스북 글 입력 필드 분석 file TUW 2017.06.02 10668
99 XE XE 1.7.x에서 Alert 함수 재정의(Override) 해제하기 file TUW 2017.06.02 11919
» XE XE 요소 개발을 쉽고 빠르게 - XE Wizard 2 file TUW 2017.06.02 14193
목록
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