NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 매크로 프로그램 반복(For, Foreach)과 액션 이동에 대한 이해.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 오늘은 매크로 프로그램에서 반복(For, Foreach)에서 액션 이동이 어떻게 동작하는지에 대해 알아보도록 하겠습니다. 엔지엠 매크로 프로그램은 일반적인 개발 언어들과 차이가 있는데요. [ 액션 이동 ]으로 루틴을 무조건 건너뛸 수 있다는 점입니다. 프로그래밍 언어는 이렇게 동작하지는 않습니다. 여러가지 이유가 있겠지만, [ Goto ]와 [ Gosub ] 같은 절차적 특성과 함수의 구조화를 무너뜨리는 방식은 좋지 않기 때문입니다. 언어적으로 그렇다는거구요. 매크로 프로그램에서는 쉽고 간편하게 원하는 루틴으로 이동할 수 있는 가장 좋은 방법입니다.

    0mzbyT9.jpg

     

     

    이제 이글의 주제인 반복에서 액션 이동이 어떻게 동작하는지 테스트 해봅시다. 엔지엠 에디터를 실행하고, 새로운 스크립트를 하나 추가 하세요.

    cnOuw3h.gif

     

     

    첨부되어 있는 "반복과 액션 이동.ngs" 파일을 다운로드 받은 후 에디터에서 열어주세요. 아래와 같은 구조로 되어 있습니다.

    t9gzFza.png

     

     

    첫번째 액션 이동은 3으로 이동하고, 두번째 액션 이동은 2로 이동합니다.

    7uJ7aWU.png

     

     

    아래 로그와 같이 순차적으로 액션이 실행되면서 첫번째 액션 이동으로 인해 그룹 3으로 이동합니다. 그리고, 그룹 3안에 액션 이동이 그룹 2로 보냅니다. 그래서, 스크립트가 완료 되었습니다. 여러분들도 아래와 같이 실행 되었을겁니다. [ For ] 또는 [ Foreach ] 또는 액션의 내부에서 실행중이더라도 몇단계 밖이라도 무조건 이동합니다.

    [반복과 액션 이동.ngs] 스크립트가 시작되었습니다.
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.011
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.001
    [For 반복] 액션이 시작되었습니다.
    반복한 횟수: 0
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.003
    [액션 이동] 액션이 시작되었습니다.
    반복한 횟수: 1
    Runtime: 00:00:00.010
    [그룹(3)] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [액션 이동] 액션이 시작되었습니다.
    반복한 횟수: 1
    Runtime: 00:00:00.004
    Runtime: 
    [그룹(2)] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [반복과 액션 이동.ngs] 스크립트가 완료되었습니다.

     

    첫번째 액션 이동을 그룹 1로 변경하고, 다시 실행 해보세요.

    J2RuKQY.png

     

     

    아래 로그와 같이 첫번째 액션 이동에서 그룹 1로 보냈기 때문에 그룹 1과 그룹 2가 실행되고, 스크립트가 완료됩니다.

    [반복과 액션 이동.ngs] 스크립트가 시작되었습니다.
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.003
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [For 반복] 액션이 시작되었습니다.
    반복한 횟수: 0
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [액션 이동] 액션이 시작되었습니다.
    반복한 횟수: 1
    Runtime: 00:00:00.005
    Runtime: 
    [그룹(1)] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [그룹(2)] 액션이 시작되었습니다.
    Runtime: 00:00:00.003
    [반복과 액션 이동.ngs] 스크립트가 완료되었습니다.

     

    첫번째 액션 이동을 3으로 변경하고, 두번째 액션 이동은 사용 안함으로 변경합니다. 그리고, 실행 해보세요.

    l4VVSeo.png

     

     

    이번에는 로그 내용이 좀 길어졌는데요. For 반복이 5회 수행되었기 때문입니다. 로그를 보면 For 반복의 첫번째 그룹 액션만 실행되고, 나머지는 모두 건너뛰게됩니다.

    [반복과 액션 이동.ngs] 스크립트가 시작되었습니다.
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [For 반복] 액션이 시작되었습니다.
    반복한 횟수: 0
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [액션 이동] 액션이 시작되었습니다.
    반복한 횟수: 1
    Runtime: 00:00:00.004
    [그룹(3)] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    반복한 횟수: 1
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [액션 이동] 액션이 시작되었습니다.
    반복한 횟수: 2
    Runtime: 00:00:00.004
    [그룹(3)] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    반복한 횟수: 2
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [액션 이동] 액션이 시작되었습니다.
    반복한 횟수: 3
    Runtime: 00:00:00.004
    [그룹(3)] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    반복한 횟수: 3
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [액션 이동] 액션이 시작되었습니다.
    반복한 횟수: 4
    Runtime: 00:00:00.004
    [그룹(3)] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    반복한 횟수: 4
    [그룹] 액션이 시작되었습니다.
    Runtime: 00:00:00.003
    [액션 이동] 액션이 시작되었습니다.
    반복한 횟수: 5
    Runtime: 00:00:00.004
    [그룹(3)] 액션이 시작되었습니다.
    Runtime: 00:00:00.003
    Runtime: 
    [그룹(1)] 액션이 시작되었습니다.
    Runtime: 00:00:00.003
    [그룹(2)] 액션이 시작되었습니다.
    Runtime: 00:00:00.002
    [반복과 액션 이동.ngs] 스크립트가 완료되었습니다.

     

     

    업무 자동화를 하다보면 반복적인 일들이 많습니다. 그렇기 때문에 반복기를 자주 사용하실텐데요. 반복하는 도중에 뭔가 로직이 변경되거나 반복을 중지하고 싶을 때 액션 이동으로 탈출할 수 있습니다. 일반적으로 언어에서는 break를 사용하고, 함수의 return을 통해 원하는 곳까지 이동해야 합니다. 하지만, 매크로 프로그램은 언어가 아니기 때문에 간편하게 사용할 수 있도록 단순화되어 있습니다. 그렇다고해서 구현상 불가능한건 아니기 때문에 일반인도 2주정도 학습하면 원하는 자동화를 만들 수 있을겁니다^^

     

    이 글이 도움이 되셨다면~ 커피 한잔이라도 후원 부탁드립니다^^

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    첨부파일

    댓글목록

    등록된 댓글이 없습니다.