인터넷 예매, 게임, 반복 클릭 작업을 하다 보면 “손으로 클릭하기 귀찮다… 이거 파이썬으로 자동 클릭 안 되나?” 라는 생각을 한 번쯤은 해보게 됨.
그래서 간단한 자동 클릭 매크로로 만들 수 있음. 이번 글에서는 pyautogui 라이브러리를 사용해서 만들어 볼 예정입니다.

  1. 특정 좌표를 빠르게 반복 클릭하는 자동 클릭 스크립트
  2. 실시간으로 마우스 좌표를 보여주는 작은 gui 도구를 만들어 정리해 보겠음.

⚠️ 주의

  • 자동 클릭/매크로는 이용약관 위반이 될 수 있음.
  • 특히 티켓팅 사이트나 게임 등에서는 제재 대상이 될 수 있으니,
    실제 서비스에 적용하기 전에 반드시 해당 서비스의 정책을 확인해야 함.
  • 여기 코드는 개인용 반복 작업 자동화학습용 예제 형태로 이해하면 좋음.

1. 준비물 – 파이썬 & 라이브러리 설치

우선 파이썬이 설치되어 있다는 전제하에 진행함.
필요한 라이브러리는 두 가지:

  • pyautogui : 마우스/키보드 자동 제어
  • tkinter : 기본 제공 GUI 라이브러리 (파이썬에 포함)
pip install pyautogui

tkinter는 일반적인 윈도우용 파이썬 설치에서는 기본 포함이라 별도 설치 필요 없음.

2. 자동 클릭 기본 코드 설명

먼저, 다음과 같은 코드부터 보자.

import time
import pyautogui

# print(pyautogui.position())

for i in range(200):
    pyautogui.click(1823, 697)
    # pyautogui.press("enter")

2-1. 라이브러리 임포트

import time
import pyautogui
  • time : 딜레이(대기 시간)를 줄 때 사용 (time.sleep() 등)
  • pyautogui : 마우스 이동, 클릭, 키보드 입력 등을 제어하는 핵심 라이브러리

2-2. 좌표 확인용 코드 (주석 처리된 부분)

# print(pyautogui.position())

이 줄은 현재 마우스 위치의 좌표를 출력하는 코드임.

  • 스크립트를 실행한 상태에서 마우스를 원하는 위치에 올려 두고,
  • 이 줄의 주석을 풀고 실행하면,
    현재 마우스 좌표 (x, y)를 콘솔에 찍어서 확인할 수 있음.

좌표를 알아낸 후에는 다시 주석 처리해도 되고,
나중에 GUI로 좌표를 보게 만들 거라면 아예 삭제해도 됨.

2-3. 반복 클릭 루프

for i in range(200):
    pyautogui.click(1823, 697)
    # pyautogui.press("enter")
  • for i in range(200):
    → 총 200번 반복하겠다는 의미.
  • pyautogui.click(1823, 697)
    → 화면에서 (1823, 697) 위치를 한 번 클릭.
  • pyautogui.press("enter")
    → 엔터 키를 누르는 코드.
    현재는 주석 처리되어 있어 실행되지 않지만,
    필요하다면 주석을 풀어 클릭 + 엔터 입력을 같이 넣을 수 있음.

여기서 좌표 (1823, 697)사용자 모니터 해상도와 브라우저 위치를 기준으로 한 절대 좌표이기 때문에,

  • 해상도를 바꾸거나
  • 모니터를 추가/제거하거나
  • 창 위치를 옮기면

좌표가 달라질 수 있음 → 그때마다 새로 좌표를 측정해야 함.

2-4. 딜레이 추가 (선택사항)

너무 빠르게 클릭하면 사이트가 막거나, PC가 버벅이거나, 의도치 않은 동작이 발생할 수 있어서
보통은 한 번쯤 딜레이를 넣는 편이 안전함.

예를 들어, 0.05초(50ms) 간격으로 클릭하려면:

for i in range(200):
    pyautogui.click(1823, 697)
    time.sleep(0.05)  # 0.05초(50ms) 대기

time.sleep(0.1) 이라면 0.1초 = 100ms, 즉 1초에 약 10번 클릭하는 속도임.

3. 실시간 마우스 좌표 GUI 만들기

반복 클릭을 하기 전에 정확한 좌표를 알아내야 함.
pyautogui.displayMousePosition() 같은 콘솔용 툴도 있지만,
직접 만든 작은 GUI 창으로 좌표를 보는 것도 꽤 편리함.

아래 코드는 바로 그런 용도로 만든 간단한 Tkinter 프로그램임.

import tkinter as tk
import pyautogui

def update_position():
    x, y = pyautogui.position()
    label.config(text=f"X: {x}   Y: {y}")
    root.after(20, update_position)  # 50fps 업데이트

root = tk.Tk()
root.title("Mouse Position Viewer")
root.geometry("200x50")

label = tk.Label(root, text="", font=("Arial", 14))
label.pack()

update_position()
root.mainloop()

3-1. Tkinter 기본 설정

import tkinter as tk
import pyautogui
  • tkintertk라는 별칭으로 사용.
  • pyautogui.position()을 이용해 좌표를 가져올 예정.
root = tk.Tk()
root.title("Mouse Position Viewer")
root.geometry("200x50")
  • root = tk.Tk() : 기본 윈도우(창) 생성
  • title(...) : 창 제목 설정
  • geometry("200x50") : 가로 200px, 세로 50px 크기의 작은 창

3-2. 라벨 위젯 생성

label = tk.Label(root, text="", font=("Arial", 14))
label.pack()
  • Label : 텍스트를 보여주는 위젯
  • text : 처음에는 빈 문자열
  • font : 글자 크기는 14pt 정도 지정
  • pack() : 레이아웃에 추가

3-3. 좌표를 주기적으로 업데이트하는 함수

def update_position():
    x, y = pyautogui.position()
    label.config(text=f"X: {x}   Y: {y}")
    root.after(20, update_position)  # 20ms마다 다시 실행 (약 50fps)
  • pyautogui.position() : 현재 마우스 좌표 (x, y)를 반환
  • label.config(...) : 라벨의 텍스트를 갱신
  • root.after(20, update_position) :
    20ms 뒤에 update_position 함수를 다시 호출
    → 결과적으로 초당 약 50번(50fps) 좌표 갱신

마지막으로:

update_position()
root.mainloop()
  • update_position() : 최초 1번 호출해서 갱신 루프 시작
  • root.mainloop() : Tkinter 이벤트 루프 실행 (창이 닫힐 때까지 유지)

이 프로그램을 실행하면,
작은 창 하나가 뜨고 마우스를 움직이는 대로 좌표가 실시간으로 표시됨.
티켓 버튼이나 특정 영역 위에 마우스를 올리고 좌표를 확인한 뒤,
그 좌표를 자동 클릭 코드에 복사해서 사용하면 됨.

4. 자동 클릭 + 좌표 뷰어를 활용하는 흐름

블로그에서는 아래와 같이 순서를 설명해주면 이해하기 좋음.

  1. 좌표 뷰어 실행
    • Tkinter 좌표 뷰어 코드를 실행.
    • 원하는 버튼/링크/영역 위로 마우스를 가져가서 X, Y 좌표 값 확인.
  2. 좌표 값 기록
    • 예: X: 1823 Y: 697 이라고 표시되면 이 값을 메모해 둠.
  3. 자동 클릭 코드에 좌표 입력
    • 아래처럼 코드 안에 좌표를 넣어 줌:
    import time import pyautogui x, y = 1823, 697 # 좌표 뷰어에서 얻은 값 for i in range(200): pyautogui.click(x, y) time.sleep(0.05)
  4. 스크립트 실행 시점 조절
    • 예매 시간에 맞춰 실행하거나,
    • time 모듈을 이용해 특정 시각까지 기다린 뒤 실행하도록 응용할 수도 있음

마무리

이 글에서는

  • pyautogui특정 좌표 자동 클릭하는 방법
  • tkinter실시간 마우스 좌표 뷰어를 만드는 방법

을 살펴봤음.

이 구조를 기반으로,

  • 클릭 횟수/속도를 GUI에서 입력받게 하거나,
  • 특정 시간에 맞춰 자동 실행되게 만들거나,
  • 클릭 후 키보드 입력까지 같이 넣는 등

여러 방향으로 확장할 수 있음.

Previous article1201회 로또 당첨 번호 및 당첨 지역 (2025년 12월 06일 추첨)
Next article연금복권 720 293회(2025년 12월 11일 추첨) 당첨 번호