NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 글로벌 변수와 변수 값 변경 이벤트에 대해서 이해하기.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 오늘은 정말 어려운 내용인데요. 글로벌 변수변수 값 변경 이벤트에 대해 알아볼거예요. 우선, 변수가 무엇인지부터 이해하고 있어야합니다. 아래 글은 변수에 대해서 개념적인 설명입니다. 가볍게 한번 읽어 보시고, 이 글의 예제를 따라해보시면 좋을듯 하네요^^

    변수란? 변수에 대한 이해 ]

     

    [ 변수 값 변경 이벤트 ]는 현재 스크립트 또는 서브 스크립트의 변수 값이 변경될 때 이벤트가 발생하고, 설정한 액션으로 루틴이 이동합니다. 이와 관련한 간단한 [ 예제 ]를 먼저 읽어보시고, 학습하세요. 유사한 예제라서 이 글에서는 자세하게 설정하지 않고, 중요한 요점만 알아볼겁니다. 엔지엠 매크로 에디터를 실행하고, 아래와 같이 스크립트를 구성하세요.

    PuBAXil.png

     

     

    변수 값 변경 이벤트는 아래와 같이 설정되어 있습니다. a 변수에 값이 변경되면 그룹 2로 이동해서 스크립트가 완료되는 예제입니다. 그룹 1과 액션 이동은 변수 a에 값이 들어올 때까지 기다리는 무한 반복하는 루틴입니다.

    TWhnFsN.png

     

     

    변수 a와 변수 값 변경 이벤트의 글로벌 변수 속성이 True인점을 기억하세요. 변수는 모든 스크립트에서 공유하는 변수입니다. 따라서, 서브 스크립트에서 값이 변경될 때 매인 스크립트에서 이벤트가 발생하고, 그룹 2로 이동하여 스크립트가 완료됩니다. 서브 스크립트를 동시에 실행하기 위해 아래와 같이 비동기 속성을 True로 설정하세요.

    chOfIMF.png

     

     

    서브 스크립트에도 매인 스크립트와 동일한 이름의 변수를 하나 추가 해줍니다. 그리고 글로벌 변수로 설정하세요.

    fs5ZJa2.png

     

     

    1초 후 변수의 값을 변경해줍니다. 변수 값 수정 액션도 글로벌 변수로 설정하세요. 그리고, 변경할 값은 123456으로 설정했습니다.

    PmT2wDT.png

     

     

    매크로를 실행하면 매인 스크립트가 실행되고, 서브 스크립트도 같이 실행됩니다. 서브 스크립트에서 1초 후 a 변수의 값을 123456으로 변경하면 매인 스크립트에서 변수 값 변경 이벤트가 발생하고, 여기에 설정한 그룹 2로 루틴이 이동됩니다. 그룹 2 액션은 스크립트의 마지막이라서 매인 스크립트가 완료됩니다. 매인 스크립트가 완료 되기 전 실행중인 서브 스크립트가 있으면 먼저 종료하고 가장 마지막에 매인 스크립트가 종료됩니다.

     

     

    이번에는 서브 스크립트 안에 또다시 서브 스크립트를 넣어볼께요. 서브 스크립트를 아래와 같이 변경하세요.

    2aIEHXf.png

     

     

    테스트 했던 서브 스크립트는 뒤에 1을 붙여서 마지막에 실행되도록 해줍니다. 아래 그림과 같이 매인 스크립트는 서브 스크립트를 실행하고, 서브 스크립트는 서브 스크립트 1을 실행합니다. 모두 비동기로 실행되기 때문에 매인 스크립트를 실행하면 서브와 서브 1 모두 같이 실행됩니다.

    xnv31Wq.png

     

     

    서브 1을 실행한 스크립트는 서브입니다. 하지만, 글로벌 설정이 되면 항상 매인 스크립트의 변수 값에만 값이 갱신됩니다. 이번에도 매크로를 실행하면 결과는 동일할겁니다. 서브 스크립트를 계속 추가하더라도 글로벌 변수로 선언하면 매인에서 동시에 실행중인 스크립트에서 업데이트하는 변수 값에 따라 루틴을 제어할 수 있습니다. 적절한 예인지는 모르겠지만, 서브 스크립트 A와 B가 있다고 가정 해보세요. A가 실행중일 때 글로벌 변수를 0으로 설정하고, B가 실행중일 때는 변수를 1로 설정해보세요. 이렇게하면 매인 스크립트가 A 스크립트가 실행중일 때 어떤 동작을 수행하고, B 스크립트가 실행중일 때는 다른 동작을 수행하도록 할 수 있습니다.

     

    스크립트가 복잡해질수록 유지보수와 수정이 어려워집니다. 그리고, 비용도 증가합니다. 더 큰 문제는 새로운 무언가를 만들기 위해 이 스크립트를 한동안 안본다면 루틴이 어떻게 흘러가는지 기억이 안날수도 있습니다. 그러면 처음부터 다시 기억을 더듬어서 분석해야 하는데요. 이런 시간과 비용 낭비를 막으려면 처음부터 간단하게 스크립트를 제작하는게 좋습니다. 그리고, 각각의 액션에 설명을 충실하게 달아두는것도 좋은 방법입니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.