묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
모듈에 관한 원천적인 질문( 모듈과 모듈연결?)
2010.12.30 05:06
제목을 맞게 썼는지 모르겠네요.
이제 XE 시작단계에서 원천적인 질문하나 할께요.
자료실보면 각종 모듈과 애드온 등이 많잖아요?
기본 XE코어에서 지원하지 못하는 기능을 추가적으로 만든게 모듈과 위젯, 애드온이겠죠?
예를들어서 설명드릴께요.
XE의 기본 게시판모듈이 있어요.
한데 이 기본게시판 모듈에는 첨부파일기능이 없다! 고 가정하기로 해요.
하지만 XE를 사용하다가 게시판의 첨부파일기능이 꼭 필요하겠죠?
그렇다고 지속적으로 업데이트되는 XE 정식코어를 수정할 수도 없겠죠.
그래서 첨부파일기능을 넣은 모듈을 만들었겠죠?
그럼 그 첨부파일기능을 넣은 모듈은 기존XE정식 게시판모듈의 내용 + 첨부파일기능 을 넣어서 만드는건가요?
아니면 순수한 첨부파일기능을 넣고, 정식게시판모듈을 참조나 링크형식으로 하는건가요.
만일 전자의 경우처럼 정식게시판모듈+추가한 첨부파일기능 모듈 이라면 그 덩치가 커지며, 중복된 내용이 발생할것이고
후자의 경우처럼 첨부파일기능을 넣은 모듈만 제작하여, XE제어판에서 모듈추가기능을 이용한다면 편리하겠죠.
아마도 어림짐작으로는 후자의 경우일것같네요.
그럼 첨부파일기능의 모듈에서 그 어미인 정식게시판모듈을 어떻게 각종 함수나 값을 어떻게 승계받는지 궁금합니다.
자료실에보니 회원가입확장모듈 이라는 게 있는데, 후자의 경우처럼 추가기능만 넣은것도 같네요.
이제 시작하는단계라 아직 모르는게 많아요. ㅠㅠ
만드는 사람의 마음일 것 같습니다.
승계(?)의 경우 개체지향 프로그래밍을 아신다면 도움이 많이되겠지만 상속이라는 개념을 통해 구현할 수 있습니다만,,, 현재 XE의 모듈 개념으로는 상속을 통해 새로운 메소드만 추가하거나 기존 메소드를 재정의하는 방법(오버라이딩) 하는 방법으로 구현하기는 힘듭니다. (disp모듈이름... 이런식으로 메소드를 작성해야 하는 규칙 때문에...)
각 모듈에서 제공되는 트리거(어떤 동작이 일어날 때 트리거를 등록하면 내 모듈의 메소드를 실행시켜 줍니다. 상황에 맞게 인자를 받아 조작하거나 추가 동작을 해 줄 수 있습니다.)를 이용하거나 랩핑(말 그대로 감싸는 것입니다. 내 메소드에서 사용하는 모듈의 메소드를 단지 호출만 해주는 식입니다.)하는 식으로 구현해야 할 겁니다.