본문 바로가기
카테고리 없음

파이썬 예약 실행 완전 정복 (스케줄링, time 모듈, 자동 실행)

by 가치정보인 2025. 4. 5.
반응형

특정 시간에 자동으로 작업을 실행해야 할 때, 많은 사람들은 cron, 작업 스케줄러 등을 떠올리지만 파이썬만으로도 충분히 구현할 수 있습니다. 반복되는 업무, 자동 리포트 생성, API 호출 등 다양한 작업을 정해진 시간에 실행하면 생산성을 높이고 실수를 줄일 수 있습니다. 이 글에서는 time, datetime, schedule 등 파이썬 내에서 활용 가능한 예약 실행 방법을 예제와 함께 소개합니다.

time 모듈로 직접 예약 실행 구현하기

파이썬 내장 time과 datetime 모듈만으로도 원하는 시간에 코드를 실행할 수 있습니다. 가장 기본적인 방식은 현재 시간을 체크하면서 실행 조건이 맞을 때 작업을 수행하는 구조입니다.

import time
from datetime import datetime

def my_task():
    print("지정된 시간에 작업 수행!")

while True:
    now = datetime.now()
    if now.hour == 9 and now.minute == 0:
        my_task()
        time.sleep(60)
    time.sleep(1)

단점은 프로그램이 꺼지면 작동이 멈추기 때문에 항상 실행 중인 환경이 필요합니다. 하지만 간단한 자동화 작업에는 매우 유용한 방법입니다.

schedule 모듈로 직관적인 스케줄 설정하기

time을 직접 다루는 방식보다 더 직관적이고 편리한 방법은 schedule 모듈을 사용하는 것입니다. 자연어 형태의 예약 구문을 제공하며, 파이썬 초보자도 쉽게 활용할 수 있습니다.

import schedule
import time

def job():
    print("매일 14:30에 실행됩니다!")

schedule.every().day.at("14:30").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)

또한 다음과 같은 예약이 가능합니다:

  • every(10).seconds → 10초마다
  • every().monday.at("09:00") → 매주 월요일 오전 9시
  • every().hour.do() → 매시간 정각

실전 응용 예제: 스케줄 + 외부 작업 실행

이제 실제 업무에 응용할 수 있는 예제를 하나 살펴보겠습니다. 예를 들어 매일 오후 5시에 특정 엑셀 보고서를 열고, API로 데이터를 수집한 뒤 저장하는 작업을 자동화한다고 가정해봅시다.

import schedule
import time
import os
import requests

def automate_work():
    print("보고서 자동 실행 중...")
    os.system("start excel.exe C:\\Reports\\daily.xlsx")

    res = requests.get("https://api.example.com/data")
    if res.status_code == 200:
        with open("data.json", "w") as f:
            f.write(res.text)
        print("데이터 저장 완료!")

schedule.every().day.at("17:00").do(automate_work)

while True:
    schedule.run_pending()
    time.sleep(1)

추가로 logging, email, selenium 등을 결합하면 보고서 생성, 전송, 캡처 등 다양한 자동화가 가능합니다.

파이썬으로 예약 실행 기능을 구현하는 것은 생각보다 쉽고 유연합니다. 간단한 time 체크부터 schedule 모듈까지 다양한 방식으로 자동화할 수 있으며, 외부 프로그램이나 API 연동까지도 문제없습니다. 지금부터 반복 업무를 파이썬 코드에 맡기고, 더 중요한 일에 집중해보세요!

반응형