NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 1시간 또는 30분마다 액션이 이동하는 방법. (타임아웃 이벤트)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로를 사용하시는 고객분들이 자주 물어보는것중에 하나가 일정 시간이 지난 후 다른 액션으로 이동할 수 있느냐입니다. 예를 들어서 1시간정도 매크로가 실행되다가 1시간 후에는 다른 루틴으로 이동해서 매크로가 실행되도록 하고 싶다는 내용입니다. [ 타임아웃 이벤트 ]를 사용하지 않는다면, 현재 시간을 [ 설정 ]하고 변수에 담아두어야 합니다.

    t7qbMup.png

     

     

    현재 13시를 변수에 저장하고, 스크립트가 동작하는 중간 중간 이 값과 비교해야 합니다. 14시가되면 [ 숫자 체크 ] 액션으로 비교하여 다른 액션으로 이동시켜야 합니다. 여기서 여러가지 문제가 발생하는데요. 시간은 계속해서 1씩 증가하지 않습니다. 23시 다음에는 0이됩니다. 그렇기 때문에 추가적인 로직이 필요하게 됩니다. 현재 시간이 23시라면 0으로 변경해두고 숫자 체크를 해야 하죠. 시뿐만 아니라 분과 초를 비교할때도 마찬가지입니다. 그리고, 주기적으로 숫자 체크를 하지 않으면 1시간은 문제가 없겠지만 분단위나 초단위로 체크하는 경우 비교할 숫자가 넘어가서 문제가 될 수 있습니다. 물론, 숫자 체크의 비교 옵션을 EqualsGreaterThan으로 설정하면 이 문제는 해결이 될겁니다.

     

    이번에는 위에 문제점을 모두 해결하는 방법인데요. 타임아웃 이벤트를 사용하는겁니다. 프로그래밍에서도 시간 관련된 로직을 만드는건 정말 어렵습니다. 윤년, 윤달도 확인해야 하고, 일반적으로 숫자 증감이 아니기 때문에 복잡한면이 있습니다. 날짜는 달마다 30일, 31일 처리도 해줘야 하구요. 아무튼, 이런 여러가지 복잡한 문제들을 해결해주는 클래스를 프로그래밍 언어들은 제공하고 있습니다. 엔지엠 매크로는 매 시간마다 동작하게 해주는 몇가지 방법이 있습니다.

     

    아래 그림과 같이 타임아웃 이벤트에서 10초 후 b 액션으로 이동하라고 했습니다. 그룹 (a)와 액션 이동은 무한으로 순환하는 구조입니다. 이 스크립트를 실행하면 젤 위에 있는 이벤트에서 타이머가 동작하고 10초를 카운팅합니다. 백그라운드에서 실행되기 때문에 바로 그룹 (a)와 액션 이동으로 무한 반복합니다. 여러분들은 이곳에 무언가 처리하는 로직을 만들어 넣어야 합니다. 10초가 되면, 이벤트가 발생하고 그룹 (b)로 루틴이 이동됩니다. 그리고, 스크립트는 완료됩니다.

    8jG9wnm.png

     

     

    좀 더 로직적으로 타임 아웃을 발생시키려면 [ 예약 작업 이벤트 ]를 사용하시면 됩니다. 이 이벤트는 크론탭을 사용합니다. 사용자가 설정한 크론(Cron)으로 잡(Job)을 생성하고, 조건에 맞으면 이벤트가 발생합니다. 도움말을 보시면, 크론탭을 어떻게 사용하는지 예제를 확인할 수 있습니다. 타임 아웃 이벤트보다 로직적이고 복잡한 룰을 따라야 한다면 예약 작업 이벤트를 사용하세요. 좀 더 쉽게 문제를 해결할 수 있을겁니다^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    profile_image

    엔지엠소프트웨어님의 댓글

    엔지엠소프트웨어 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일 Date

    넘어오세요~ 안열리는 스크립트는 제가 봐드릴께요~