모듈과 모듈인스턴스 차이 이해하기.

모듈 인스턴스와 모듈과의 차이를 잘 알지 못하고 해깔려 하시는 분들이 계신 것 같아 정리해서 남겨봅니다.

1. 모듈 인스턴스와 모듈은 엄밀하게 말하면 다른 것이다.

라이믹스 및 XE(이하 RXE)에서 모듈이라고 칭하는 것은 설치폴더의 modules/ 폴더 안에 있는 폴더들의 해당되는 부분들을 뜻합니다. 모듈이라는 것은 사람으로 치면, 팔 다리 머리 몸통, 위장 소장 대장 등 각각의 열할을 하는 하나하나의 기관처럼 생각하시면 됩니다.

RXE에서도 모듈이라는 것은 각각 원하는 기능들을 담당하여 조각조각내어 이루고 있는 기관들이라 생각하시면 좀 더 편하겠지요.

그럼 모듈인스턴스라는 것은 무엇일까요

모듈인스턴스라는 것은 모듈에서 필요한 고유의 페이지를 가지는 역할을 합니다.

여러분들이 구성하는 관리자 페이지를 제외한 메인페이지, 게시판페이지 등등 그런 페이지의 기본적인 모듈정보 및 설정값들을 저장해주는 역할을 합니다.

이 친구들의 특징은 하나의 독립적인 페이지 주소를 따로 가질 수 있습니다.

e.g )

예를들어 XETown에 첫페이지는 게시판의 모듈인스턴스 입니다. ( https://xetown.com/home ) 게시판모듈에서 만들어진 인스턴스를 가지고 있죠. 그래서 주소뒤에 mid로 설정한 home 이라는 이름을 붙여서 접속하게되면 타운의 메인페이지가 뜹니다. mid 는 모듈인스턴스의 ID 입니다.

따라서 모듈인스턴스는 mid를 가지고 있으며, 독립적으로 모듈의 설정디비를 따로 가지고 있습니다. 그리고 레이아웃 및 스킨선택 설정값 및 필요한 옵션의 대한 정보를 따로 가지고 있습니다. (이는 module모듈이 담당하고 있습니다.) https://github.com/rhymix/rhymix/blob/master/modules/module/schemas/modules.xml 이 링크의 디비테이블에 모든 모듈인스턴스 정보가 저장되죠. 그래서 따로 모듈을 구성하는 스킨 설정 및 여러가지 디자인적인 요소와함께 해당 페이지에서 특별히 설정해야할 부가 설정값들까지 포함하여 저장됩니다.

모듈인스턴스를 가지고 있는 대표적인 모듈은

  • 게시판
  • 출석부
  • 누리고쇼핑몰(장바구니, 상품 등등)
  • 페이지
  • 콘텐츠판
  • 아이템샵
  • 아이콘샵

등등이 있습니다.

모듈인스턴스를 가지고 있지 않는 대표적인 모듈은

  • 알림센터 (스킨 및 레이아웃을 설정할 수 있지만 )
  • 문서
  • 댓글
  • 오류표시
  • 포인트
  • 슈퍼캐시
  • 타임라인

등등이 있습니다.

의외로 스킨설정이 가능한 몇몇 모듈이 있는데 앞서 언급한 스킨 및 레이아웃 설정과 알림센터모듈에서 스킨 및 레이아웃 설정의 차이는 무엇일까요?

앞서 설명드렸던 것중 하나의 mid를 가지고 있으며, modules테이블에 모듈인스턴스 정보가 들어간다고 했는데 알림센터는 mid도 없으며 modules/ 에 레이아웃 및 스킨의 설정을 저장하지 않고, module_config 라는 곳에 저장하게 됩니다.

mid가 없고 일부 설정값들이 필요한 모듈들이 설정값을 저장할때 쓰는 디비 테이블이 바로 module_config 입니다.

문서 라는 모듈은 말그대로 게시글 혹은 긴 문서들을 담당하고 관리해주는 모듈입니다. 우리가 글쓰고 읽는 등등의 페이지들을 담당하는 역활은 게시판 모듈에서 mid를 생성하고 만드는 것이니 해깔려 하지 마세요!! 게시판 모듈이 document의 데이터를 빌려 사용하고 있다고 생각하시면 됩니다.

이러한 차이들을 생각하고 사이트를 세팅하신다면 좀 더 관리하시는데 편하실 것 같습니다.

람보

profile
람보입니다.
  • profile
    RXE에 대해 조금씩 알아가기 시작할 때 만나게 되는 난관 중에 하나죠.
    저도 모듈은 뭐고 mid는 또 뭔지 잘 몰라서 질문을 하기조차 어려울 때가 좀 있었습니다ㅎ
    나중에야 감이 좀 잡히긴 했는데 직접 설명이라도 해야 하는 상황이면 대략 난감 ...
    말끔하게 정리해주셔서 감사합니다~~
  • profile
    감사합니다.
    공부하는데 많은 도움이 되었습니다.