https://web.archive.org/web/20161113051911/http://www.xeschool.com/xe/xenote_module_front_back_end

Front and back ends

프론트 엔드(front-end)와 백 엔드(back-end)는, 사용자가 접근하는 영역을 말하는데 이때 사용자는 사람이 아닌 프로그램이 될 수도 있다. 예를 들어 컴퓨터 OS의 그래픽 파일 관리자는 컴퓨터의 파일 시스템에 대한 프론트 엔드이고 사용자와 직접 상호작용을 할 수 있다. 백 엔드 응용프로그램은 보통 요구되는 자원들에 가깝게 있거나, 또는 요구되는 자원들과 교신할 수 있는 능력을 가지는 등을 통해 프론트 엔드를 간접적으로 지원하게 된다. 프론트 엔드는 사용자가 직면하고 백 엔드는 응답에서 운영 체제의 프로그램을 시작한다.

CMS(Web content management systems)에 있어서 프론트 엔드(front-end)와 백 엔드(back-end)의 의미는, 모델-뷰-컨트롤러, 데이터베이스, 사용자 및 데이터의 처리와 구성 요소에 대해 개발을 단순화하거나 유지 보수를 쉽게 하기 위해 분리의 개념(Separation of presentation and content)과 설계 방식으로, 사용자가 직접 접근 할 수 있는 뷰(View)를 출력하는 것과 구성 함수들의 모음을 프론트 엔드, 모듈의 관리를 목적으로 접근하는 관리자 뷰(Administrator View)와 구성 함수들의 모음을 백 엔드라고 표현한다.

제목 없는 데이터베이스

XE 코어의 모듈에서 뷰(View)를 출력하기 위한 클래스와 함수는 [모듈이름.admin.view.php] 파일과, [모듈이름.view.php] 파일이 관리한다. tpl 폴더는 관리자 뷰(Administrator View)를 위해 사용되는 템플릿 파일이 들어 있고, skins 폴더는 사용자를 위한 모듈의 프론트 엔드를 출력하는 스킨 파일이 들어 있다.

[예제] example 모듈을 만들고 엔드(Ends) 뷰(View) 구현하기

"end"란 "끝, 말단"이라는 뜻이다. 위에서 설명한 프론트 엔드와 백 엔드의 뜻과 더불어 사용자와 관리자 모두에게 가장 처음 또는 가장 가깝게 접근하는 영역을 엔드 뷰라고도 표현할 수 있다. 물론 프론트와 백 엔드 프로그램의 최종적인 결과물을 표시하게 된다. "end"와 비슷한 의미로 사용되는 것이 포트(port)다. 흔히 모바일 환경에서 뷰포트(Viewport)라는 메타태그를 들어봤을 것이다. 포트(Port)는 가장 먼저 접하게 되는 "대문"이기도 하면서 end와 같이 "끝, 말단"을 의미하기도 한다. 항구(seaport)와 공항(airport)을 표현 할 때도 포트(port)를 사용하는 것이 바로 그런 의미이다. 즉, 뷰포트(Viewport)란, 모바일 기기 환경에서 사용자가 가장 먼저 접하게 되는 뷰(View) 영역이면서 또한 기기와의 의사소통을 할 수 있는 창구, 대문, 화면상의 화상표시영역을 말한다.

따라서 XE 모듈의 엔드뷰(ends-view)라는 것은 사용자가 요청하는 모듈의 액션에 대한 응답과, 관리자가 백 엔드(back-end)에 요청한 내용의 결과물이라고 말할 수 있다. 당연히 사용자는 모듈의 액션(act) 이름을 모른다. 따라서 다음 과정에서 example 모듈을 예제로 만들어 보고 사용자가 접근하였을 때와 관리자가 접근할 때의 첫 결과물을 각각 나누어 보여주는 엔드뷰를 만들어 보자.

1. example 모듈의 생성과 conf/info.xml

  1. XE 코어의 모듈 폴더(modules) 안에 example 폴더를 만들고, 모듈의 설정(config) 파일을 넣을 하위폴더로서 conf 폴더를 만든다.
example
  1. 다음과 같은 info.xml 파일을 작성하여 conf 폴더 안에 추가한다.
conf/info.xmlservice

info.xml은 모듈의 제작자 정보와 설명에 대한 내용이다. 카테고리(category) 요소의 service는 관리자 메뉴에서 모듈 분류를 나타낸다. 즉 새로 추가되는 모듈의 이름을 서비스 관리 항목에 출력할 것인지 정보관리(content) 항목에 출력할 것인지 알려주는 옵션이다. 모듈의 기능과 성격에 따라 원하는 항목에 출력할 수 있다.(p.24)