수강신청 및 티켓팅 클릭 매크로
우리 학교는 수강신청 시간이 오후 2시 정각에 시작하지만 이런 식으로 한 번에 서버에 피어들이 몰려 부하가 일어나 서버가 먹통이 되어버린다.(모든 학교가 비슷하겠지만)
누가 먼저 수강신청 버튼을 클릭하느냐에 따라 우선순위가 달라진다.
하지만 때는 바야흐로 군복학 후 2학년 2학기 수강신청때 너무 긴장한 나머지 1,2초를 늦게 눌러버려 흰색 인터넷 창이 눈앞에 아른거린 후 수강신청을 실패하면서 클릭에 중요성을 알게 되었다.
먼저 위치 선정이 중요하다. 인터넷공학때 배운 내용을 기반으로 내 요청은 라우터를 거쳐 홍익대학교 서버로 들어갈 텐데 동기들 중 몇몇은 본가에 내려가도 수강신청 때는 학교 주변 PC방에서 해야지 성공확률이 높다고 주장하며 굳이 학교로 오는 동기도 있었다.
하지만 우리나라 기관과 회사 대부분은 아마존웹서버인 AWS를 사용할 확률이 크며 확인해보고 싶으면 네이비즘 사이트의 서버시간을 체크해 보면 된다.

그럼 프로그램 목표는 먼저 내 컴퓨터 시간을 AWS(아마존)서버 시간으로 맞춘 후 59초~60초 사이쯤에 해당 좌표에 클릭을 하도록 계획을 세웠다.
정확히 14:00:00 에 클릭을 할 경우 웹브라우저에서 서버에 요청하는 딜레이가 생기고 특히 수강신청과 티켓팅 같은 경우는 평소보다 몇 배는 많은 컴퓨터가 몰리므로 지연시간까지 고려해야 한다.

59초는 위와 같은 경고창이 뜰 경우 다음학기 생활이 백그라운드와 같이 어두컴컴할수도 있기 때문에 59.5~59.9 사이의 시간으로 확정하였다.
준비
먼저 내 컴퓨터의 시간과 AWS시간을 동기화 하여야 한다.
💡 Mac의 경우 Mac에서 Apple 메뉴 > 시스템 설정을 선택하고, 사이드바에서 일반을 클릭한 다음, 오른쪽에 있는 ‘날짜 및 시간’을 클릭한 후 소스에 들어가 서버를 apple에서 aws로 바꿔준다.

💡 윈도우의 경우 관리자 권한으로 CMD를 실행한 후 net start w32 time를 입력하면 Windows Time 서비스가 실행된다.
그 후 w32tm /config /manualpeerlist:169.254.169.123 /syncfromflags:manual /update를 입력하면 아마존서버로 설정된다.
여기서 169.254.169.123은 AWS 서버시간 주소이다.
위 모든 과정을 한 후 재부팅을 하는것을 추천한다.
+ sk브로드밴드를 사용하는 가정에서 시간 동기화가 안되는 문제가 있습니다. wifi연결하시거나 usb테더링으로 인터넷 연결후 동기화
파이썬 코드 짜기
먼저 필요한 Python 모듈 이다.
- pyautogui(클릭을 하기 위한 모듈)
- datetime(현재 작업 중인 시스템의 시간, 날짜를 받아오기 위한 모듈)
- time(잘 작동하고 있는지 x.x초 간격으로 출력해 주기 위한 모듈)
# pip 설치
pip install pyautogui
pip install datetime
# pip3 설치
pip3 install pyautogui
pip3 install datetime
터미널에서 위 명령어를 사용하여 모듈을 설치한다.
#파이썬 자동클릭 매크로
import pyautogui
import datetime as dt
import time
endhope=False
while not endhope:
tim=dt.datetime.now()
#microsecond를 변경하면 59.X시간을 설정할 수 있다.
if tim.second>=59 and tim.microsecond>600000:
#click의 좌표는 클릭하고싶은 위치에 따라 변경하면 된다.
#print(pyautogui.position())를 사용하면 좌표가 나온다.
pyautogui.click(1280,720)
endhope=True
print(tim)
else:
time.sleep(0)
print(tim)

결과를 보면 정확히 59.6초는 아니지만 상당히 높은 정확한 시간에 클릭을 하는 것을 볼 수 있다.
이번 수강신청부터 사용해 보며 추가적인 후기로 돌아오도록 하겠다.
+후기

22학점 신청 후기(1신청/7실패) 하지마세요.
순전히 운빨입니다.
'Project' 카테고리의 다른 글
Capeasy VR 공간이미지 생성 서비스 (1) | 2024.12.07 |
---|---|
뱅가드 수동 실행 프로그램(재부팅X) (2) | 2024.05.18 |
소켓과 MySQL을 사용한 JAVA 채팅 프로그램(HawkTalk Project) (0) | 2023.01.04 |