이 글에서는 Python을 활용하여 웹사이트 알람 시스템을 만드는 방법을 단계별로 살펴봅니다.
문제 정의
웹사이트 URL과 원하는 시간을 입력받아, 시스템 시간이 지정된 시간에 도달하면 브라우저에서 해당 웹사이트를 자동으로 여는 프로그램입니다.
우리는 보통 즐겨찾기(북마크)에 다양한 웹페이지를 저장해 두고 사용합니다. 그런데 어떤 웹페이지는 매일 특정 시간에 열어서 작업을 처리해야 하는 경우가 있습니다. 예를 들어 출근 후 오전 9시에 업무용 사이트를 열거나, 장이 열리는 시간에 맞춰 특정 페이지를 확인해야 하는 상황이 그렇습니다. 이럴 때 이러한 웹사이트 알람을 설정해 두면 편리하게 작업을 수행할 수 있습니다.
이 예제에서는 Python의 표준 라이브러리 모듈인 sys, webbrowser, time을 사용합니다. 별도의 외부 패키지 설치 없이 바로 실행할 수 있다는 점이 큰 장점입니다.
특정 시간에 웹페이지를 여는 단계
- 열고자 하는 웹사이트의 URL을 입력받습니다.
- 웹페이지를 열 시간을 지정합니다.
- 현재 시간이 지정된 시간과 일치하는지 계속 확인합니다.
- 시간이 일치하면 웹페이지를 열고, 일치하지 않으면 1초간 대기합니다.
- 시간이 일치할 때까지 이 과정을 매초 반복합니다.
- 알람이 울리고 웹페이지가 열리면 프로세스를 종료합니다.
예제 코드
import time
import webbrowser
import sys
def web_alarm(url, alarm_time):
current_time = time.strftime('%I:%M:%S')
while current_time != alarm_time: # 현재 시간과 알람 시간을 반복해서 비교
print('Current time is: ' + current_time)
current_time = time.strftime('%I:%M:%S')
time.sleep(1) # 1초 대기
if current_time == alarm_time: # 시간이 일치하면 브라우저로 웹페이지 열기
print('Opening the ' + url + ' now...')
webbrowser.open(url)
web_alarm(sys.argv[1], sys.argv[2]) # URL과 시간을 인자로 받아 알람 설정
코드 설명
time.strftime('%I:%M:%S')는 현재 시각을 '시:분:초' 형식의 문자열로 반환합니다. while 루프 안에서 현재 시간을 1초마다 갱신하며 알람 시간과 비교하고, 두 값이 일치하면 webbrowser.open() 함수를 호출하여 기본 브라우저로 지정된 URL을 엽니다. 명령줄 인자로 URL과 알람 시간을 전달하므로, 실행 시점에 원하는 웹사이트와 시간을 자유롭게 지정할 수 있습니다.
실행 결과
$ python3 397.Website_Alarm.py https://www.tutorialspoint.com/ 02:01:00 Current time is: 02:00:46 Current time is: 02:00:47 Current time is: 02:00:48 Current time is: 02:00:49 Current time is: 02:00:50 Current time is: 02:00:51 Current time is: 02:00:52 Current time is: 02:00:53 Current time is: 02:00:54 Current time is: 02:00:55 Current time is: 02:00:56 Current time is: 02:00:57 Current time is: 02:00:58 Current time is: 02:00:59 Opening the https://www.tutorialspoint.com/ now... $
위 실행 결과를 보면, 스크립트가 알람 시간인 02:01:00까지 현재 시간을 1초 간격으로 출력하다가 시간이 일치하는 순간 지정된 웹사이트를 자동으로 여는 것을 확인할 수 있습니다.
활용 팁
- 여러 개의 알람이 필요하다면 URL과 시간 쌍을 리스트로 관리하고, 각 항목마다 스레드를 생성해 동시에 모니터링할 수 있습니다.
- 매일 반복되는 알람이라면
sched모듈이나 OS의 작업 스케줄러(cron, 작업 스케줄러 등)와 함께 사용하면 더욱 안정적입니다. - 시간 형식은 24시간제(
%H:%M:%S)로 변경할 수도 있으니, 사용 환경에 맞게 조정하세요.