NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    기타 바드를 이용해서 매크로 프로그램 만들기. (with Robot Framework)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. Chat GPT를 모르는 분들은 아마도 없을거 같은데요. 이와 유사한 서비스로 구글 바드(Bard)가 있습니다. 제미나이(Gemini)도 동일한 모델로 학습한 인공지능인데요. 제미나이가 좀 더 추론을 강화해서 답변해준다고 하더라고요. 아무튼, 챗 GPT는 이미 많은 사람들이 사용하고 서비스를 만들어서 수익을 내고 있으니 이번에느 바드를 사용해서 뭔가 만들어 보도록 할께요.

     

    구글 바드 사이트로 이동하세요. 서비스를 이용하려면 구글 계정에 로그인되어 있어야 합니다.

    [ 구글 바드 사이트 ]

    3L3iZyu.png

     

     

    프롬프트에 "매크로 프로그램을 만들고 싶다"고 해봤습니다.

    매크로 프로그램 만들고 싶으시군요! 좋은 생각입니다. 매크로 프로그램은 반복적인 작업을 자동화하여 시간을 절약하고 효율성을 높여줄 수 있습니다.
    
    매크로 프로그램 제작 방법은 여러 가지가 있습니다.
    
    1. 쉬운 방법:
    
    키보드/마우스 매크로 프로그램:
    키보드/마우스 입력을 기록하고 재생하는 간단한 프로그램입니다.
    대표적인 프로그램으로는 "마크로 프로그램 V1.41", "iMacros", "AutoHotkey" 등이 있습니다.
    이 프로그램들은 사용하기 쉽지만, 기능이 제한적일 수 있습니다.
    2. 프로그래밍 언어 사용:
    
    Python:
    다양한 라이브러리를 활용하여 강력하고 유연한 매크로 프로그램을 만들 수 있습니다.
    대표적인 라이브러리로는 "pyautogui", "AutoPy", "Robot Framework" 등이 있습니다.
    프로그래밍 경험이 필요하지만, 더 많은 기능을 구현할 수 있습니다.
    3. 전문 프로그램 사용:
    
    Microsoft Power Automate:
    마이크로소프트에서 제공하는 자동화 도구입니다.
    GUI 기반 인터페이스로 코드 없이 매크로 프로그램을 만들 수 있습니다.
    다양한 기능을 제공하지만, 무료 버전은 기능이 제한적입니다.
    매크로 프로그램을 만들기 전에 다음 사항을 고려해야 합니다.
    
    자동화할 작업: 어떤 작업을 자동화하고 싶은지 구체적으로 정의합니다.
    사용할 프로그램: 위에 설명된 방법 중 가장 적합한 프로그램을 선택합니다.
    프로그래밍 경험: 프로그래밍 경험이 있다면 더 많은 기능을 구현할 수 있지만, 없어도 간단한 매크로 프로그램은 만들 수 있습니다.
    기능 및 예산: 필요한 기능과 예산을 고려하여 프로그램을 선택합니다.

     

    만족할만한 답변을 받았습니다. 엔지엠 매크로에 대한 언급도 있었으면 좋겠지만~ 아마도 특정 상용 제품들은 안나오는거 같아요. 그리고, 2022년 이후의 데이타는 없는거 같기도 합니다. 이번에는 파이썬의 Robot Framework를 이용해서 코딩해보도록 할께요.

    Robot Framework를 사용한 마우스 클릭 매크로 코딩
    Robot Framework는 테스트 자동화를 위한 프레임워크이지만, 마우스 클릭 매크로 제작에도 활용할 수 있습니다.
    
    사용 예시:
    
    코드 스니펫
    *** Test Cases ***
    
    마우스 클릭
        Mouse Click    x=100, y=100
    
    마우스 클릭 2번
        Mouse Click    x=100, y=100
        Mouse Click    x=200, y=200
    
    마우스 왼쪽 버튼 클릭
        Mouse Click    x=100, y=100, button=LEFT
    
    마우스 오른쪽 버튼 클릭
        Mouse Click    x=100, y=100, button=RIGHT
    
    마우스 휠 클릭
        Mouse Click    x=100, y=100, button=WHEEL
    
    마우스 드래그
        Mouse Down    x=100, y=100
        Mouse Move    x=200, y=200
        Mouse Up
    
    마우스 드래그 앤 드롭
        Mouse Down    x=100, y=100
        Mouse Move    x=200, y=200
        Mouse Up    button=RIGHT
    코드를 사용할 때는 주의가 필요합니다. 자세히 알아보기
    설명:
    
    Mouse Click: 마우스 클릭 좌표(x, y)를 지정합니다.
    button: 마우스 버튼을 지정합니다. 기본값은 LEFT입니다.
    Mouse Down: 마우스 버튼을 누릅니다.
    Mouse Move: 마우스 커서를 이동합니다.
    Mouse Up: 마우스 버튼을 놓습니다.
    참고:
    
    Robot Framework 설치 및 사용 방법: https://robotframework.org/
    Robot Framework 라이브러리: <유효하지 않은 URL 삭제됨>
    추가적으로, 원하는 기능에 맞게 코드를 수정하거나 추가할 수 있습니다.
    
    예시:
    
    특정 이미지를 클릭하는 기능
    특정 텍스트를 클릭하는 기능
    스크롤 막대를 움직이는 기능

     

    바드가 알려준 코드를 적용하려면 개발 환경이 필요합니다. 이것도 질문을 해봅시다.

    Robot Framework 매크로 개발 환경 셋팅 방법
    Robot Framework 매크로를 개발하기 위한 환경 설정 방법은 크게 두 가지로 나눌 수 있습니다.
    
    1. 기본 텍스트 편집기 사용:
    
    장점: 간편하고 가벼운 설정
    단점: 기능 부족, 디버깅 어려움
    2. IDE (Integrated Development Environment) 사용:
    
    장점: 다양한 기능 제공, 디버깅 용이
    단점: 설정 과정 필요, 사양 요구
    1. 기본 텍스트 편집기 사용
    필요한 것:
    
    텍스트 편집기 (Notepad++, Sublime Text, Visual Studio Code 등)
    Python 인터프리터 (Python 3.7 이상)
    Robot Framework 라이브러리
    설정 방법:
    
    텍스트 편집기를 설치하고 실행합니다.
    새로운 파일을 만들고 .robot 확장자를 추가합니다.
    다음과 같은 기본 템플릿을 작성합니다.
    Robot Framework
    *** Settings ***
    
    Library           SeleniumLibrary
    
    *** Test Cases ***
    
    Example Test
        Open Browser    https://www.google.com/    Chrome
        Input Text    id:search_query    "Robot Framework"
        Click Button    id:search_button
        Wait Until Page Contains    Robot Framework
    
    코드를 사용할 때는 주의가 필요합니다. 자세히 알아보기
    Library 섹션에 사용할 라이브러리를 추가합니다.
    Test Cases 섹션에 테스트 코드를 작성합니다.
    파일을 저장합니다.
    테스트 실행:
    
    명령 프롬프트 또는 터미널을 실행합니다.
    다음 명령을 입력하여 테스트를 실행합니다.
    python -m robot test.robot
    2. IDE 사용
    추천 IDE:
    
    PyCharm
    Visual Studio Code
    Robot Framework RIDE
    설정 방법:
    
    각 IDE마다 설정 방법이 다르므로 공식 문서를 참고하십시오.
    일반적으로 다음과 같은 설정이 필요합니다.
    Python 인터프리터 설정
    Robot Framework 라이브러리 설치
    코드 포멧 설정
    디버깅 설정
    장점:
    
    코드 자동 완성, 구문 검사, 디버깅 등 다양한 기능 제공
    테스트 관리 및 실행 기능 제공
    단점:
    
    설정 과정 필요
    사양 요구

     

    추천 IDE인 Visual Studio Code를 사용 해볼께요. IDE(Integrated Development Environment)는 통합 개발 환경 줄임말입니다. 개발을 쉽게 할 수 있도록 도와주는 모든 환경을 IDE라고 부르고, 이런 환경을 만들어주는 프로그램으로 Visual Studio Code가 있습니다. 구글 검색에서 비주얼 스튜디오 코드를 검색해서 다운로드 받으세요. 그리고, 로컬 컴퓨터에 설치 해줍니다.

     

    비주얼 스튜디오 코드를 실행한 후 파이썬 파일을 하나 만들어주세요. 저는 macro.py를 만들었습니다. 터미널에서 Robot Framework 패키지를 설치해줍니다. 패키지 설치는 처음 질문에 나와 있는데요. 안내해준 사이트로 이동해서 설치 명령을 수행해야 합니다.

    Collecting robotframework
      Obtaining dependency information for robotframework Downloading robotframework-7.0-py3-none-any.whl.metadata (7.4 kB)
    Downloading robotframework-7.0-py3-none-any.whl (726 kB)
       ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 726.3/726.3 kB 6.6 MB/s eta 0:00:00
    Installing collected packages: robotframework
    Successfully installed robotframework-7.0
    PS E:\NGM work programs\01. darknet\CudaYolo> 

     

    정상적으로 설치가 완료 되었군요. 그럼 이제 첫번째 질문에 답변으로 받은 코딩을 추가해봅시다. 아래와 같이 에러가 발생하는군요.

    MfKSS27.png

     

     

    좀 더 구체적으로 질문을 해봐야겠습니다. 질문을 "python Robot Framework 마우스 클릭하는 코딩 알려줘" 같이 변경 했습니다.

    Python Robot Framework 마우스 클릭 코딩
    Python Robot Framework를 사용하여 마우스 클릭을 코딩하는 방법은 다음과 같습니다.
    
    라이브러리 설치:
    
    Python
    pip install robotframework-seleniumlibrary
    코드를 사용할 때는 주의가 필요합니다. 자세히 알아보기
    코딩 예시:
    
    Python
    from robotframework_seleniumlibrary import SeleniumLibrary
    
    browser = SeleniumLibrary()
    
    browser.open_browser("https://www.google.com")
    browser.mouse_click("x=100, y=100")
    코드를 사용할 때는 주의가 필요합니다. 자세히 알아보기
    설명:
    
    SeleniumLibrary: Robot Framework에서 웹 브라우저를 자동화하는 라이브러리입니다.
    open_browser: 웹 브라우저를 엽니다.
    mouse_click: 마우스 클릭 좌표(x, y)를 지정합니다.
    추가 기능:
    
    특정 이미지를 클릭하는 기능
    특정 텍스트를 클릭하는 기능
    스크롤 막대를 움직이는 기능
    다음 라이브러리를 사용하여 추가 기능을 구현할 수 있습니다.
    
    ImageClick: 이미지 클릭 기능을 제공합니다.
    TextClick: 텍스트 클릭 기능을 제공합니다.
    AutoPy: 다양한 마우스 및 키보드 입력 기능을 제공합니다.
    코딩 예시:
    
    Python
    from robotframework_imageclick import ImageClick
    
    image_click = ImageClick()
    
    image_click.click_image("image.png")
    코드를 사용할 때는 주의가 필요합니다. 자세히 알아보기
    참고:
    
    Robot Framework 설치 및 사용 방법: https://robotframework.org/
    Robot Framework 라이브러리: <유효하지 않은 URL 삭제됨>
    Python Robot Framework SeleniumLibrary: https://github.com/robotframework/SeleniumLibrary
    ImageClick: <유효하지 않은 URL 삭제됨>
    TextClick: <유효하지 않은 URL 삭제됨>
    AutoPy: <유효하지 않은 URL 삭제됨>

     

    웹업무 자동화에 사용하는 셀레니움 패키지도 있나보군요. 이것도 설치하고, 알려준 코드를 실행 해볼께요.

    pip install robotframework-seleniumlibrary

     

    음~ 이것도 제대로 동작하지 않습니다. 관련 내용을 좀 찾아보니 너무 오래된 기술을 사용해서 적용하고 있다는군요. 그래서, selenium2library를 사용하라는데... 웹 기반 자동화는 브라우저별로 웹드라이버도 필요하기 때문에 이 테스트는 건너뛰어야 할거 같아요. 역시~ 아직까지는 인공지능을 이용해서 프로그램을 만든다는건 쉽지 않은 일인듯 합니다. 이번엔 다음 코드를 진행 해볼까요?

    from robotframework_imageclick import ImageClick
    
    image_click = ImageClick()
    
    image_click.click_image("image.png")

     

    이것도 포기입니다. 일반적으로 파이썬 매크로를 만들 때 자주 사용하는 pyautogui로 해보는걸로 바꿔야겠네요.

    Pyautogui를 사용한 마우스 키보드 매크로 코딩
    Pyautogui는 Python 라이브러리로, 마우스와 키보드를 제어하여 자동화 작업을 수행할 수 있게 해줍니다.
    
    사용 예시:
    
    Python
    import pyautogui
    
    # 마우스 클릭
    pyautogui.click(x=100, y=100)
    
    # 마우스 왼쪽 버튼 클릭
    pyautogui.click(x=100, y=100, button='left')
    
    # 마우스 오른쪽 버튼 클릭
    pyautogui.click(x=100, y=100, button='right')
    
    # 마우스 드래그
    pyautogui.moveTo(x=100, y=100)
    pyautogui.dragTo(x=200, y=200)
    
    # 키보드 입력
    pyautogui.write('Hello, World!')
    
    # 특수 키 입력
    pyautogui.press('enter')
    pyautogui.press('ctrl', 'c')
    코드를 사용할 때는 주의가 필요합니다. 자세히 알아보기
    설명:
    
    click: 마우스 클릭 좌표(x, y)를 지정합니다.
    button: 마우스 버튼을 지정합니다. 기본값은 LEFT입니다.
    moveTo: 마우스 커서를 이동합니다.
    dragTo: 마우스 버튼을 누른 상태에서 마우스 커서를 이동합니다.
    write: 키보드 입력 문자열을 지정합니다.
    press: 특수 키를 입력합니다.
    참고:
    
    Pyautogui 설치 및 사용 방법: https://pyautogui.readthedocs.io/en/latest/: https://pyautogui.readthedocs.io/en/latest/
    추가 기능:
    
    특정 이미지를 클릭하는 기능
    특정 텍스트를 클릭하는 기능
    스크롤 막대를 움직이는 기능
    다음 라이브러리를 사용하여 추가 기능을 구현할 수 있습니다.
    
    ImageClick: 이미지 클릭 기능을 제공합니다.
    TextClick: 텍스트 클릭 기능을 제공합니다.
    AutoPy: 다양한 마우스 및 키보드 입력 기능을 제공합니다.
    코딩 예시:
    
    Python
    from PIL import ImageGrab
    
    def click_image(image_path):
        image = ImageGrab.grab()
        x, y = image.find(image_path)
        pyautogui.click(x, y)
    
    click_image("image.png")
    코드를 사용할 때는 주의가 필요합니다. 자세히 알아보기
    궁금한 점이 있으면 언제든지 질문해주세요.

     

    음~ 코드는 잘 알려준거 같지만, 뭔가 자꾸 부족한 부분들이 발생합니다. pyautogui 패키지를 설치하는 것부터 설명해줘야 할거 같은데요. 이런 부분들이 없다면 코딩을 모르는 일반인이 위 내용만으로 뭔가 문제를 해결하기는 쉽지 않을듯 합니다. 물론, 처음 접하는 언어라면 개발자도 비슷할겁니다.

    pip install pyautogui

     

    우선, 알려준 코딩을 해봅시다.

    import pyautogui
    
    # 마우스 클릭
    pyautogui.click(x=100, y=100)
    
    # 마우스 왼쪽 버튼 클릭
    pyautogui.click(x=100, y=100, button='left')
    
    # 마우스 오른쪽 버튼 클릭
    pyautogui.click(x=100, y=100, button='right')
    
    # 마우스 드래그
    pyautogui.moveTo(x=100, y=100)
    pyautogui.dragTo(x=200, y=200)
    
    # 키보드 입력
    pyautogui.write('Hello, World!')
    
    # 특수 키 입력
    pyautogui.press('enter')
    pyautogui.press('ctrl', 'c')

     

    이번엔 잘 동작하는군요. 코드 위에 설명과 같이 순차적으로 동작합니다. 메모장을 띄워놓으면 메모장에 텍스트도 입력이 됩니다. 이렇게하면 코딩을 모르더라도 누구나 쉽게 매크로 프로그램을 만들 수 있을거 같긴하지만... 음... 아직까지는 무리일듯 해요. 개발자가 생소한 언어로 뭔가를 만들 때 도움을 받을수는 있겠지만, 프로그램을 하나 뚝딱 만들기는 불가능해 보입니다.

     

    물론, 코딩 전문 AI인 코파일럿을 사용한다면 좀 더 쉽게 만들 수 있을겁니다. 참고로, 코딩을 모르지만 프로그램이 만들고 싶다면 코파일럿을 사용하고 아래와 같은 순서로 질문을 해야 합니다. 첫번째로 어떤 언어로 할지 선택해야 하기 때문에 특정 프로그램의 목적을 자세하게 설명해줘야 합니다. 두번째로 추천해준 언어로 개발할 환경을 갖추려면 어떤 IDE가 필요한지 물어보세요. 세번째로 만들고 싶은 기능들을 하나씩 질문하면서 코드를 조합하세요.

     

    기능들을 하나씩 조합하다보면 하나의 거대한 프로그램을 만들 수 있을겁니다. 물론, 엄청난 시련이 있을거예요. 간단한 프로그램이 아닌 경우에는 개발자를 채용하는게 좋을거 같습니다. 스트레스와 시간, 비용등등... 무시하지 못할 고통을 받을 수 있거든요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

     

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

    댓글목록

    등록된 댓글이 없습니다.