들어가기전에

이번에 설명하게될 Trigger(트리거)라는 기능은 XE의 모듈제작 중에서도 상당히 활용도가 높고 다루기 어려운 기능 중 하나 입니다. 본 설명은 이 Trigger를 적극 활용하고 다룰 수 있도록 사용방법을 예를 들어가며 설명할 것이며, Trigger 기능 뿐만 아니라 Trigger를 사용할 수 없는 대상도 사용가능한 방법을 경험을 살리어 최대한 다양하게 소개드리겠습니다.

 

목차

Trigger란 무엇인가

Trigger의 활용

Trigger의 종류

사용가능한 Trigger

1편 마무리

 

Trigger란 무엇인가

Trigger란 무엇인지 그림을 통해 설명합니다.  

그림1)

 

XE에서 사용하는 Trigger는 내가 요청한 함수가 동작하는 동안 또다른 함수를 동작시킬 수 있는 기능을 말합니다. 우리가 글을 등록하고 결과를 받는 과정속에서 그림1)과 같이 Trigger라는 기능으로 자신을(여기서는 insertDocument 함수를 말함) 참조하고 있는 다른 함수를 조회하여 존재할 경우 그 함수를 요청하게 됩니다.

 

Trigger를 사용함으로써 한번의 요청으로도 서로다른 모듈을 동작시킬 수 있으며, 새로운 기능이 필요할 경우 기존 프로그램을 수정하지 않아도 쉽게 새로운 기능을 추가하여 사용할 수 있습니다.

 

Trigger의 활용

그림1)에서처럼 한번의 호출로 여러 다른 함수를 호출하여 연계처리가 가능하지만 호출되는 함수가 서로 직접적으로 연결되어있지 않더라도 Trigger를 사용하게 되면 연쇄적인 수행도 할 수 있습니다.

 

trigger02.jpg

그림2)

 

그림2)는 제가 일전에 제작했던 nmsXE라는 모듈에서 사용한 방식입니다. 이 모듈에서 사용한 방식을 설명드리면 Host라는 하나의 모듈을 삭제하게 되면 그 하위에 있는 자식을 삭제하며 그 자식이 호출되면 또 그 밑에 자식을 연쇄적으로 삭제하도록 Trigger로 연결되어있습니다. Mib라는 부분만 삭제하게 되면 그 밑에 이용되고 있는 Severity라는 정보가 삭제됩니다.

 

이처럼 Trigger를 잘만 활용하면 기존에 사용되는 방식을 고치거나 새로 만들지 않고도 쉽게 추가하여 사용할 수 있고 확장성 높은 모듈을 제작할 수 있습니다.

 

Trigger의 종류

Trigger는 크게 before, after 두가지의 경우로 나뉩니다. before는 함수의 수행과정 중 함수 자체의 수행내용을 진행하기 전에 다른 함수를 호출하여 사용할 수 있도록 해주며, after는 함수의 수행이 모두 끝난 뒤 다른 함수를 호출하여 사용하도록 하는데 사용됩니다.

 

이 둘은 실제로 의미적인 부분으로 나뉠 뿐 모듈을 제작하실때는 제작자가 원하는 위치에서 수행시킬 수 있습니다.

 

before, after를 선언은 여러 방법이 있습니다. 
 

그림3)

 

사용가능한 Trigger

XE에는 다른 모듈과 확장이 가능하도록 여러곳에 Trigger를 선언하고 있습니다. 이러한 선언을 통해 새로운 모듈을 개발하실때 기존의 프로그램을 활용함으로써 많은 양의 프로그래밍을 직접 할 필요가 없어지고 쉽게 새로운 모듈을 제작하실 수 있습니다.

 

XE내부적으로 다양한 Trigger를 선언하고 있습니다. 
 

그림4)

 

1편 마무리

1편에서는 간략하게 Trigger에 대해서 설명해보았습니다. Trigger는 XE의 핵심 기능 중 하나이기 때문에 앞으로 모듈을 제작하실 때 기존에 만들어진 Trigger를 이용하는것만이 아닌 직접 Trigger를 만들어서 잘 활용만 하신다면 자신의 모듈 또한 또다른 누군가가 사용해주는 좋은 모듈이 되지 않을까 하는 마음가져봅니다.


2편에서는 실제로 Trigger의 기능과 활용하는 방법을 소개합니다.

TAG •
  • profile

    옛날에 xeuser.org에 강의자료로 올렸던 건데요. 이곳에 퍼옵니다.

    그쪽에는 사이트가 닫힌건지 제가 더 이상 접속이 안되네요.(해외가 막힌걸수도 있어요.)

     

    다섯편 더 남아있는데 하루에 한편 정도씩 올려볼게요. ^^

     

  • profile

    잘 보고 갑니다.

     

    감사합니다.

  • profile
    오.. 좋아요!!!

    한가지 말씀드리자면 XE 응용게시판은 모듈, 애드온,위젯, 레이아웃 등을 직접 만드는 강좌 게시판입니다. 그래서 이 강좌는 카테고리에 맞게 XE 원리 게시판이 더 어울리지않나 생각해봅니다.
  • profile profile
    이 이후부터는 투표 기능을 이용한 자체모듈을 제작하는 과정이 담긴 강의로 진행됩니다.

    xeuser.org 접속되시면 확인하실 수 있을거에요.
  • profile profile
    네! 그렇군요!

    xeuser.org 접속되긴하지만 모든 이미지가 깨지네요.. 정상이 아닌듯합니다.
  • ?
    좋은거 보고갑니다 ㅎ
  • profile
    오 어렵네요...xe도 한번 깊게 파봐야겠습니다.