공부/XE

14. 모듈과 페이지 이해하기

미친사람 2020. 2. 20. 18:06
반응형

 프로그램 모듈과 콘텐츠 모듈


XE 코어는 추가 설치하여 기능을 확장할 수 있는 프로그램 단위를 "모듈"이라고 합니다.

즉 게시판 모듈이라는것이 있기 때문에 게시판을 생성하고 사용할 수 있는 것입니다.

또한 모듈은 "독자적 기능을 가진 교환 가능한 구성 요소" 이기 때문에 새로운 기능을 포함한 모듈로 교체하여 사용할 수 있습니다.



관리자 페이지에서 [고급] > [설치된 모듈] > [게시판]을 들어가서 자유게시판 톱니바퀴버튼을 눌러봅시다.



게시판 모듈에서 게시판을 보면 "모듈 이름" 조금 더 내려서 고급쪽에 있는 "모듈 분류"를 보실 수 있습니다.

왜 게시판 모듈에서 생성하는 낱개의 게시판에 대해서도 "모듈" 이라고 표현할까요?


게시판 모듈에서 생성되는 게시판의 이름을 모듈이라고 표현한 의미는 프로그램 모듈(게시판)의 자식 모듈이고, 이렇게 생성된 게시판은 콘텐츠(content) 영역에

독립적으로 교환 가능한 내용변수의 값이 되기 때문입니다.



게시판 생성 후 레이아웃과 연결하지 않았다면(자동으로 연결되지만) 게시판의 독자적인 기능만 사용하게 됨으로 게시판만 출력됩니다.

하지만 레이아웃과 연결시켜주면 레이아웃 안에 있는 내용변수가 프로그램 모듈이 생성한 자식 모듈, 즉 콘텐츠 영역에 출력한 내용의 값으로 콘텐츠 모듈을

찾게 되고, 만약 존재한다면 변수로서 내용을 가져와 출력하게 됩니다.이러한 일을 담당하는 레이아웃의 내용변수 이름은 $content 입니다.

콘텐츠 영역을 제외한 헤더, 사이드바, 푸터의 모든 영역은 레이아웃이 표현하는 것입니다.


따라서 게시판 모듈, 즉 큰 단위의 프로그램 모듈이 생성한 자식 모듈, 다시말해서 콘텐츠 모듈도 부모 모듈과 같이 내용으로써 독립적인 역할을 수행하기 때문에  작은 의미의 "모듈"이라는 개념을 공유할 수 있는 것 입니다.


이러한 모듈의 개념을 더 확장한다면 페이지도 빼놓을 수 없는 콘텐츠 모듈입니다.




 문서 페이지, 위젯 페이지, 외부 페이지의 이해


특정한 프로그램 모듈은 그 기능과 역할을 생성되는 자식 모듈에게 그대로 복사하여 전달합니다.

따라서 게시판을 만들기 위한 프로그램은 게시판을 생성하겠지요. 반면에 페이지 모듈은 빈 페이지를 전달합니다.

대신 페이지를 생성하는 단계에서 어떠한 용도로 사용할 것인지 묻게 됩니다.


우선 레이아웃은 제외(A)하세요. 레이아웃은 요청에 대한 응답으로 모듈 또는 페이지가 입고 나가는 겉옷(B)과 같기 때문입니다.


Q : "만약 여러분에게 빈 페이지가 주어진다면 어떤 그림을 그리고 싶은가요?"

이 물음에 대한 대답으로 XE 코어는 다음의 3가지 유형을 미리 준비해준겁니다.

- 나는 에디터를 활용하여 콘텐츠 영역에서 직접 내용을 작성하고 싶습니다.  =  [ 문서 페이지 ]

- 나는 작은 프로그램(위젯)을 이용해 최근글 또는 댓글, 이미지 등의 목록을 만들어 예쁘게 꾸미고 싶습니다.  =  [ 위젯 페이지 ]

- 나는 다른 곳(외부 폴더)에 있는 문서나 또는 프로그램을 현재 페이지에 포함시켜 활용하고 싶습니다.  =  [ 외부 페이지 ]

페이지를 생성하는 과정에서 이러한 유형은 페이지 타입의 선택 옵션으로 위젯형, 문서형, 외부 페이지형으로 구분합니다.

페이지 모듈에서 생성된 페이지도 독립적인 내용변수의 값(B)가 될 수 있기 때문에 모듈이라는 개념으로 이해할 수 있습니다.

따라서 페이지도 작은 의미의 모듈이라는 이름을 붙여주고 호출 하는 것 입니다.


위에서 레이아웃을 겉옷이라고 표현하였습니다. 왜냐하면 다음 과정에서 메뉴를 만들고 생성된 모듈과 연결하게 되는데 메뉴가 호출하는 대상은 프로그램 모듈도, 레이아웃도 아닌 생성된 콘텐츠 모듈 또는 페이지이기 때문입니다. 따라서 생성된 모듈이나 페이지 모듈은 요청에 따라 응답할 때 미리 설정된 레이아웃을 입고 나가게 되는데, 레이아웃은 자신을 가장 잘 돋보이도록 돕는 역할을 하게 됩니다.


겉옷이 있다면 속옷도 있겠지요? 그것은 모듈 스킨(skin)이 하는 일입니다. 스킨은 부모 모듈의 동작에 대한 결과값을 자식 모듈에게 전달할 때 다양한 방법으로 꾸며주는 일을 하게 됩니다. 즉 자식 모듈의 스타일링이라 말할 수 있으며 자식 모듈에게 한정되고 모듈 스스로 꾸미는 일이라 말할 수 있습니다.

따라서 레이아웃과 스킨의 설정(겉옷과 속옷)은 모듈의 생성 단계에서 자신이 선택하는 옵션값으로 존재하는 것입니다.


이 부분을 좀더 쉽게 설명하면 모듈은 스킨(skin) 폴더에 자식 모듈이 입고 나갈 옷들을 종류별로 미리 준비해두었습니다.

하지만 자식 모듈은 늘 사춘기여서 "네가 어떤 옷을 입고 나가면 좋겠다"는 말은 할 수 없습니다.

자식 모듈은 친구(메뉴)가 부를 때 자신의 스타일(레이아웃과 스킨)은 본인 스스로가 결정한다는 의미입니다.

따라서 레이아웃과 스킨은 디자인적 요소에 속합니다.



또한 이렇게 생성된 모듈과 페이지 등이 너무 많아져서 모듈을 구분하기가 어려워질 수 있습니다.

이러한 경우 [설치된 모듈] > [모듈 분류] 탭으로 들어가 미리 분류명을 등록해 두고, 모듈을 생성[예) 게시판)하고 해당 모듈 설정으로 가서 [모듈 분류]를 활용하면 연관된 모듈을 관리하는데 도움이 되는 유용한 기능입니다.

부모 모듈의 입장에서 생성된 자식 모듈이 주로 어떤 일에 연관된 모듈인지 꼬리표를 달아두는 기능입니다.

IT / 게임 이라는 카테고리가 있고 그 아래로 게시판이 주르륵 있으면 해당 게시판에 꼬리표를 달아준다고 생각하면 편합니다.




 추가적인 이야기


요즘은 옛날이랑 다르게 게시판을 [사이트 메뉴 편집] 메뉴에서 다 만들 수 있습니다.

자신이 원하는 사이트맵 쪽을 누르고 게시판을 생성하면 됩니다.


메뉴 추가를 통해 문서/위젯/외부/게시판 등을 만들 수 있게되죠.


문서 페이지는 만들고나서 설정을 통해서 자신이 적을 문서 내용을 적으면 됩니다, 대부분 이용약관 개인정보처리방침 같은걸 적어두고 사용합니다.

위젯 페이지는 만들고나서 설정을 통해서 자신이 등록한 위젯을 등록하고 설정하면됩니다, 대부분 최근글 인기글 이미지 같은걸 적어두고 사용합니다.

외부 페이지는 만들고나서 설정을 통해서 자신이 만든 html 페이지로 연결 시켜줄 수 있습니다.


자세한건 이곳에서 확인하면 됩니다.

문서 페이지 만들기 / 위젯 페이지 만들기 / 외부 페이지 만들기


반응형