30.Python pyautogui로 마우스와 키보드 자동화하기: VSCode 실전 가이드

 저도 처음에 PATH에서 막혔는데, 매일 반복되는 사내 시스템 클릭 작업을 자동화해보려고 pyautogui를 설치했지만 VSCode에서 실행할 때마다 "No module named 'pyautogui'"라는 오류만 계속 나왔던 기억이 있습니다. 분명 터미널에서는 설치가 잘 됐다고 나왔는데, 알고 보니 VSCode가 바라보고 있던 Python 인터프리터 경로와 제가 패키지를 설치한 경로가 서로 달랐던 것이 원인이었습니다. 인터프리터를 올바르게 맞춰주고 나서야 마우스가 제 손을 대신해 화면을 클릭하고 키보드를 두드리는 신기한 광경을 볼 수 있었습니다. 이번 글에서는 그때의 시행착오를 바탕으로, VSCode 환경에서 Python pyautogui를 활용해 마우스와 키보드를 자동화하는 방법을 정리해보려 합니다.



pyautogui란 무엇인가

마우스와 키보드를 코드로 제어하는 라이브러리

pyautogui는 Python 코드로 마우스 움직임과 클릭, 키보드 입력을 프로그래밍적으로 제어할 수 있게 해주는 GUI 자동화 라이브러리입니다. 웹 브라우저나 애플리케이션 내부 요소를 직접 다루는 Selenium과 달리, pyautogui는 화면 좌표와 픽셀을 기준으로 동작하기 때문에 특정 프로그램에 국한되지 않고 컴퓨터 화면에서 벌어지는 거의 모든 작업을 자동화할 수 있습니다.

비유하자면 pyautogui는 마치 컴퓨터 앞에 보이지 않는 손 하나를 앉혀두는 것과 같습니다. 이 손은 사람이 시키는 대로 정확한 좌표를 클릭하고, 정해진 문장을 타이핑하며, 화면 속 특정 이미지를 찾아내기까지 하는데, 사람과 다른 점은 지치지 않고 똑같은 작업을 몇 번이고 정확하게 반복한다는 것입니다.

pyautogui가 유용한 대표적인 상황

  • 반복적인 클릭 작업이 많은 사내 시스템 업무 자동화
  • 특정 시간마다 실행해야 하는 프로그램 작업 자동화
  • 게임이나 소프트웨어 테스트 시 반복 입력 시뮬레이션
  • 화면 캡처와 이미지 인식을 결합한 자동 작업 흐름 구성
  • 매크로 프로그램을 대신하는 커스텀 자동화 스크립트 작성

VSCode에서 pyautogui 개발 환경 준비하기

pyautogui 설치하기

VSCode에서 터미널을 열고 다음 명령어로 pyautogui를 설치할 수 있습니다.

pip install pyautogui

설치가 끝났다면 정상적으로 import되는지 간단히 확인해보는 것이 좋습니다.

import pyautogui
print("pyautogui 설치 완료!")
print(pyautogui.size())


인터프리터 설정 확인하기

가상환경을 여러 개 사용하고 있다면 VSCode 하단의 인터프리터 선택 메뉴에서 지금 열려 있는 프로젝트에 맞는 인터프리터가 선택되어 있는지 반드시 확인해야 합니다. 인터프리터가 엉뚱하게 설정되어 있으면 분명 설치했는데도 모듈을 찾지 못하는 오류가 발생하는데, 이는 마치 택배를 우리 집 문 앞에 두고 왔는데 옆집 초인종만 계속 누르고 있는 상황과 비슷합니다.


pyautogui 기본 사용법 실습

마우스 좌표 확인과 이동

pyautogui를 사용하기 전에 먼저 현재 화면 해상도와 마우스 좌표 체계를 이해하는 것이 중요합니다. 화면의 좌측 상단이 (0, 0)이고, 오른쪽과 아래로 갈수록 좌표값이 커집니다.

import pyautogui

# 현재 화면 크기 확인
print(pyautogui.size())

# 마우스를 특정 좌표로 이동 (1초 동안 이동)
pyautogui.moveTo(500, 300, duration=1)

# 현재 마우스 위치 확인
print(pyautogui.position())

클릭과 키보드 입력 자동화하기

마우스 클릭과 키보드 입력도 몇 줄의 코드로 손쉽게 처리할 수 있습니다.

import pyautogui
import time

time.sleep(3)  # 다른 창으로 전환할 시간 확보

pyautogui.click(500, 300)  # 지정한 좌표 클릭
pyautogui.write('안녕하세요, pyautogui입니다.', interval=0.05)
pyautogui.press('enter')

여기서 time.sleep()을 넣어준 이유는 스크립트를 실행한 뒤 원하는 창으로 전환할 시간을 벌어주기 위해서입니다. 이 시간을 넉넉히 잡지 않으면 엉뚱한 창에 클릭과 입력이 들어가버릴 수 있으니 주의해야 합니다.

화면 이미지를 인식해서 자동 클릭하기

pyautogui의 가장 강력한 기능 중 하나는 화면에서 특정 이미지를 찾아 그 위치를 자동으로 클릭할 수 있다는 것입니다.

import pyautogui

location = pyautogui.locateCenterOnScreen('button.png', confidence=0.8)

if location:
    pyautogui.click(location)
    print("버튼 클릭 완료!")
else:
    print("이미지를 찾지 못했습니다.")

이 기능을 사용하려면 pip install pyautogui[png] 또는 opencv-python 패키지가 추가로 필요할 수 있으며, confidence 값은 이미지 인식의 정확도 허용 범위를 의미합니다.

실전 활용 팁

안전장치 설정하기

pyautogui에는 기본적으로 안전장치가 내장되어 있는데, 마우스를 화면 좌측 상단 모서리로 빠르게 이동시키면 스크립트가 즉시 중단되는 기능입니다. 이는 마치 자동차의 비상 브레이크와 같아서, 자동화 스크립트가 의도치 않은 동작을 반복할 때 즉시 멈출 수 있는 최후의 수단이 되어줍니다.

import pyautogui

pyautogui.FAILSAFE = True  # 기본값이며 끄지 않는 것을 권장

실행 속도 조절하기

자동화 스크립트가 너무 빠르게 동작하면 프로그램이 입력을 제대로 따라가지 못하는 경우가 있습니다. 이럴 때는 PAUSE 값을 설정해서 각 동작 사이에 일정한 간격을 주는 것이 안정적입니다.

import pyautogui

pyautogui.PAUSE = 0.5  # 각 명령어 실행 후 0.5초 대기

마무리

지금까지 Python pyautogui를 활용해 마우스와 키보드를 자동화하는 방법을 VSCode 환경에서 실습해봤습니다. 처음에는 인터프리터 설정이나 실행 타이밍 때문에 헤맬 수 있지만, 기본 흐름을 익히고 나면 반복적인 클릭 업무를 상당 부분 손에서 놓을 수 있게 됩니다.

핵심 내용을 정리하면 다음과 같습니다.

  • pyautogui는 마우스와 키보드 동작을 코드로 제어하는 GUI 자동화 라이브러리입니다
  • moveTo(), click(), write() 같은 함수로 기본적인 마우스와 키보드 제어가 가능합니다
  • locateCenterOnScreen()을 활용하면 화면 속 이미지를 인식해서 자동으로 클릭할 수 있습니다
  • FAILSAFE 기능은 스크립트 오작동 시 즉시 중단할 수 있는 안전장치 역할을 합니다
  • PAUSE 값을 조절하면 자동화 속도를 안정적으로 제어할 수 있습니다

다음 글에서는 pyautogui를 활용해 반복 작업을 스케줄링하거나, 다른 자동화 라이브러리와 결합해 더 복잡한 워크플로우를 구성하는 방법에 대해 다뤄보도록 하겠습니다.


댓글

이 블로그의 인기 게시물

1.Python 설치부터 실행까지 10분 만에 끝내기 — 초보자도 바로 따라 하는 완벽 가이드

29.Python subprocess로 외부 명령어 실행하기: VSCode 실전 활용법