NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 원격 조종 웹 매크로

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 엔지엠 매크로에는 다수의 컴퓨터를 제어할 수 있는 원격 조종 기능이 포함되어 있습니다. 웹업무를 자동화하는 매크로를 사용하고 있을 때 원격 제어 기능을 사용하면 좀 더 편리하게 자동화 시스템을 관리할 수 있습니다. 대부분 텔레그램을 사용하고 계실겁니다. 엔지엠 매크로는 간단하게 텔레그램으로 원격 제어가 가능하고, TCP를 이용해서 원격으로 모든 컴퓨터를 관리할 수 있습니다.

    [ 웹매크로 만들기 예제 ]

    CulxE7A.png

     

     

    스마트폰, 스마트워치 또는 컴퓨터용 텔레그램을 실행한 후 /help 또는 /h를 입력하면 도움말을 볼 수 있습니다.

    F3irU1p.png

     

     

    현재 컴퓨터에서 실행되고 있는 프로그램들을 확인하려면 /gal을 입력하세요.

    JTs8q4f.png

     

     

    카카오톡이 실행중인데요. 캡쳐해볼까요? /gss:카카오톡을 입력 해보세요. 아래 그림과 같이 현재 카카오톡을 캡쳐해서 보내줍니다.

    334LZDh.png

     

     

    현재 윈도우 화면을 캡쳐하려면 /gss만 입력하면 됩니다.

    6t2z1yM.png

     

     

    이외에도 스크립트를 실행하거나 재실행등등 가능합니다. 아마도 여러분들은 팀뷰어나 애니데스크와 같은 원격 제어 프로그램이 있는데 이걸 굳이 왜 사용해야 할까? 라는 의문을 가질수도 있습니다. 네 맞습니다. 팀뷰어나 애니데스크도 스마트폰으로 컴퓨터를 제어할 수 있으니까요. 하지만, 엔지엠 에디터와 연동되는 원격 제어(텔레그램)만의 장점이 분명히 존재합니다. 예를 들어서 컴퓨터가 50대 있다고 생각해보세요. 애디데스크로 원격을 하나씩 들어가서 일일이 설정하고 실행해야 합니다. 50번 동일한 작업을 수행해야 하는 일들이 분명 발생합니다. 텔레그램은 봇 그룹을 만들 수 있습니다. 50대 컴퓨터를 봇 그룹에 추가하면 한번의 명령으로 50대 모두 제어할 수 있게됩니다. 물론, 봇 그룹은 여러개 만들 수 있으므로 25대 또는 10대씩 그룹에 나눠서 추가하면 개별적으로 제어도 가능합니다.

    텔레그램 그룹 원격 제어 ], [ 텔레그램 스크립트 사용법 ]

     

    PC방이나 대량으로 매크로를 돌리는 경우 주기적으로 컴퓨터를 리부팅하고 자동으로 시작하도록 완전 무인화할 수 있습니다.

    엔지엠을 이용한 100% 무인 자동화 시스템 ]

     

    개인의 경우에는 크게 의미있는 작업은 아닙니다. 대량의 컴퓨터를 제어하거나 매크로를 사용해서 수익을 얻으시는 분들은 좀 더 편리하게 자동화하고, 자유 시간을 누릴 수 있도록 해주는 편의 기능입니다. 또한, 외부에서 간단하게 캡쳐를 받아볼 수 있으며 문제가 발생하는 경우 알람도 오게 할 수 있습니다. 처음 시스템을 구축하는데 약간~ 어려움이 있을수는 있지만 한번 갖춰놓으면 이보다 편한 매크로 생활이 없을거라고 장담합니다^^

     

    이외에도 각각의 컴퓨터가 서로 메세지를 주고 받을 수 있고, 메세지에 따라 로직을 다르게 처리할수도 있습니다. 다양한 방식으로 사용이 가능한 TCP 소켓을 이용해서 통신할 수 있습니다. 엔지엠 매크로에서 사용하는 메세지 버스(Message Bus)는 ActiveMQ(액티브앰큐)와 Kafka(카프카)를 사용합니다. 일반적으로 ActiveMQ를 사용하는데요. 이 예제에서도 ActiveMQ를 이용하도록 하겠습니다. 카프카 관련 예제도 준비되는대로 올려드릴께요^^

     

    우선, ActiveMQ 공식 사이트에서 프로그램을 다운로드 받아서 적절한 위치에 압축을 풀어주세요. 이 예제에서는 "E:\activemq" 위치에 압축을 풀었습니다.

    액티브앰큐 다운로드 ]

     

    첨부되어 있는 스크립트 파일의 압축을 풀고, 에디터에 각각 열어주세요. 서버 역할을 하는 매인 컴퓨터의 스크립트입니다. 만약, 별도의 서버가 필요하다면 아래 프로그램을 사용할수도 있습니다. 아래 프로그램을 매인 컴퓨터에 실행하고, 각각의 컴퓨터에서는 액티브앰큐 서버 액션을 사용하면 안됩니다. 네트워크 공간에 서버는 하나만 실행되어 있어야 하기 때문입니다.

    ActiveMQ Server Manager 다운로드 ]

    B1lX2Gs.png

     

     

    첫번째 변수는 다른 컴퓨터로부터 수신한 메세지를 저장하기 위한 메모리 공간입니다. [ 액티브앰큐 서버 매니저 ]를 사용하지 않는 경우에는 아래와 같이 액티브앰큐 서버 액션을 사용해야 합니다. 네트워크 공간에서 이 액션은 하나만 사용되어야 합니다. 컴퓨터가 10대 있다면 1대의 컴퓨터에서만 저 액션이 실행되어야 합니다. 액티브앰큐 서버 매니저를 사용하면 모든 컴퓨터의 스크립트에 액티브앰큐 서버 액션을 사용하면 안됩니다.

    ※ 네트워크 공간에서 액티브앰큐 서버가 사용할 61616 포트를 사용하면 안됩니다. 만약, 이 포트를 사용하고 있다면 액티브앰큐 서버에는 다른 포트를 할당하세요.

    6IPa7yj.png

     

     

    이벤트를 사용하는 이유는 언제 메세지가 전달될지 모르기 때문입니다. 백그라운드에서 메세지를 캐치하려면 이벤트를 사용해야 합니다. 그래야 실시간으로 메세지를 처리할 수 있습니다. 액티브앰큐 관련 자료를 참고하시면 각각의 속성에 대해 어떤 역할을 하는지 이해할 수 있습니다.

    • 브로커 타입: Queue 또는 Topic. Queue는 메세지를 보낼 때 가장 먼저 메세지를 수신한 컴퓨터만 동작합니다. Topic은 모든 컴퓨터가 메세지를 받습니다.
    • 액션 이동 아이디: 메세지를 수신하면 이동할 액션의 아이디입니다.
    • 액션 이동 파라메터 이름: 메세지를 보낼 때 파라메터를 추가해서 보낼 수 있습니다. 받는 측에서 이 값을 토대로 액션 이동을 로직적으로 처리합니다.
    • 큐 또는 토픽 이름: 메세지를 주고 받을 때 동일한 이름을 사용하는 컴퓨터만 메세지를 받습니다. 그룹으로 관리할 때 유용합니다.
    • 포트: 액티브앰큐 데몬 서버의 포트입니다.
    • 호스트: 액티브앰큐 데몬 서버의 아이피입니다.

    mAbuwQS.png

     

     

    이벤트에서 메세지를 받으면 액션이 b로 이동합니다. 그리고, 다시 반복 루틴으로 보냅니다. 이렇게 하는 이유는 매크로가 완료되지 않도록 하기 위함입니다. 매크로가 완료되거나 중지되면 더이상 메세지를 받을 수 없습니다. 이번에는 메세지를 보내는 컴퓨터를 셋팅 해보겠습니다. 아래와 같이 에디터를 하나 더 실행하고, 액티브앰큐 프로듀서 스크립트를 열어주세요. 첫번째 에디터의 서버 설정과 동일하게 옵션들을 설정하세요.

    8oPQqrw.png

     

     

    테스트 해보면 아래 동영상과 같이 동작합니다. 오른쪽의 서버 컴퓨터는 계속 동작하고 왼쪽의 메세지 프로듀서에서 보낼 내용을 변경하면서 실행 해보세요.

     

     

    이번에는 이벤트의 액션 이동 파라메터 이름에 대해 알아보겠습니다. 이 옵션의 용도는 좀 더 다양한 환경에 대응하기 위한 하나의 분기 로직이라고 이해하시면 됩니다. 메세지를 보내는 컴퓨터가 분기 로직에 따라 A, B, C, D 아이디로 이동하고 싶을 수 있습니다. 위의 예제에서는 무조건 B 액션으로만 이동했는데요. 파라메터를 사용하면 다양한 분기로 이동이 가능합니다. 이벤트를 각각 등록했습니다.

    SnBRqhN.png

     

     

    파라메터를 컴퓨터별로 각각 등록하거나 하나의 스크립트에 여러개를 등록해도 됩니다. 파라메터를 등록하면 액션 이동 아이디는 무시됩니다. 여러대의 컴퓨터 또는 스크립트의 이벤트에 파라메터 이름이 실패인 경우 b 액션으로 이동한다는 의미입니다.

    XViSgOz.png

     

     

    서버 구성 및 처리가 다양한 환경에서 동작해야 하기 때문에 로직이 복잡하고 분기가 많을수록 스크립트에서도 로직이 복잡해집니다. 가능하면 단순한 방식으로 사용하는게 좋고 복잡한 로직은 데이타베이스에서 질의문(Query: 쿼리) 또는 스토어드 프로시저(Stored Procedure)를 사용하세요. 엔지엠 매크로의 데이타베이스 액션들을 사용하면 좀 더 편리하고 관리할 수 있습니다. 하지만, 메세지 방식으로 사용하려면 액티브앰큐가 실시간으로 처리되고 더 좋습니다.

     

    어떤 처리를 모든 컴퓨터가 액티브하게 처리되어 한다면 액티브앰큐가 좋고 매니지 측면이 강한 데이터 또는 관리라면 데이타베이스가 더 효율적입니다. 여기서 효율적이라는 말은 유지보수, 비용, 시간, 관리등등... 전체를 아우르는 말입니다. 복잡하게 구현하면 유지보수와 관리가 어렵고 버그에 대응하기가 쉽지 않습니다. 단순하게 처리하면 관리 측면에서 얻는 이점이 많습니다. 어떤게 더 좋은지에 대한 정답은 없습니다. 어떻게 시스템을 구축하고, 관리하는지에 따라 달라질 수 있는 부분입니다.

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.