파이썬 schedule 라이브러리 하나로 매일 하던 반복 작업을 완전 자동화했습니다
Photo by Ferenc Almasi on Unsplash
솔직히 말할게요. 저도 처음엔 매일 아침 수동으로 스크립트 돌리고, 깜빡하면 하루 날리고, 그러다 지쳐서 포기하는 패턴을 반복했어요. 크롤링이든, 리포트 생성이든, 파일 백업이든 — "그냥 자동으로 돌아가면 얼마나 좋을까" 생각만 했죠. 근데 파이썬 schedule 라이브러리 하나 알고 나서 그 고민이 완전히 사라졌습니다. 이 글 읽고 나면 오늘 안에 여러분 컴퓨터에서 자동 실행 세팅을 완료할 수 있어요. 진짜로요.
Photo by Markus Winkler on Unsplash
1. schedule 라이브러리가 뭔지, 딱 1분만 이해하세요
schedule은 파이썬에서 특정 함수를 "언제, 얼마나 자주" 실행할지 정해주는 라이브러리입니다. 복잡한 cron 문법 몰라도 되고, 서버 없어도 되고, 그냥 여러분 노트북에서 돌아가요. 쉽게 말하면 이런 거예요:
- 매일 오전 9시에 뉴스 크롤링 실행
- 1시간마다 특정 폴더 백업
- 매주 월요일 오전에 주간 리포트 자동 생성
이런 걸 코드 10줄 안에 세팅할 수 있어요. 설치도 간단합니다. 터미널 열고 이 한 줄만 입력하세요:
pip install schedule
끝입니다. 설치에 30초도 안 걸려요. 이미 파이썬 환경이 있다면 바로 다음 단계로 넘어가면 됩니다.
Photo by Peaky Frames on Unsplash
2. 기본 구조는 이렇게 생겼습니다 — 복붙해서 바로 쓰세요
처음 볼 때 구조가 낯설어서 막히는 분들이 많아요. 그래서 그냥 전체 틀을 드릴게요. 이걸 복붙하고 원하는 함수만 바꿔 넣으면 됩니다:
import schedule
import time
def 내가_자동화할_작업():
print("지금 실행됐어요!")
# 여기에 실제로 하고 싶은 코드 넣기
# 실행 주기 설정
schedule.every().day.at("09:00").do(내가_자동화할_작업)
# 계속 돌아가게 하는 루프
while True:
schedule.run_pending()
time.sleep(1)
딱 세 부분만 기억하세요:
- 함수 정의: 자동으로 실행할 내용을 함수로 만들기
- 스케줄 설정:
schedule.every()...부분에서 언제 실행할지 지정 - while 루프: 프로그램이 계속 켜져 있으면서 스케줄을 감시하게 하는 코드
이 세 가지가 전부예요. 처음엔 while 루프가 뭔가 불안해 보이는데, 그냥 "프로그램이 꺼지지 않고 대기하면서 때가 되면 실행한다"고 이해하면 됩니다. time.sleep(1)은 CPU가 쓸데없이 100% 돌아가지 않도록 1초마다 쉬게 해주는 거예요. 꼭 넣어주세요.
Photo by Ilija Boshkov on Unsplash
3. 이렇게 하면 시간 설정이 자유자재로 됩니다 — 자주 쓰는 패턴 모음
schedule 라이브러리의 진짜 강점은 시간 설정이 영어 문장처럼 직관적이라는 거예요. 외울 필요도 없고, 보면 바로 이해가 돼요. 가장 자주 쓰는 패턴들을 정리해드릴게요:
- 매 10초마다:
schedule.every(10).seconds.do(함수명) - 매 5분마다:
schedule.every(5).minutes.do(함수명) - 매 1시간마다:
schedule.every().hour.do(함수명) - 매일 특정 시간:
schedule.every().day.at("08:30").do(함수명) - 매주 월요일:
schedule.every().monday.at("09:00").do(함수명) - 매주 금요일 오후:
schedule.every().friday.at("18:00").do(함수명)
실전에서 이걸 어떻게 쓰냐면요 — 예를 들어 네이버 쇼핑 최저가를 매일 오전 7시에 크롤링해서 엑셀에 저장하는 스크립트가 있다고 해봐요. 그러면 이렇게 하면 됩니다:
schedule.every().day.at("07:00").do(크롤링_및_저장)
딱 이 한 줄이에요. 그러면 매일 아침 7시에 알아서 돌아가요. 여러분이 자는 동안에도요. 여러 스케줄을 동시에 등록하는 것도 됩니다. 예를 들어 오전엔 크롤링, 오후엔 리포트 생성, 이런 식으로 schedule.every()...를 여러 줄 쓰면 전부 동작해요.
Photo by Markus Spiske on Unsplash
4. 컴퓨터 꺼져도 돌아가게 하려면 이렇게 하세요 — 진짜 자동화의 마지막 단계
여기서 많은 분들이 막히는 포인트가 있어요. "파이썬 파일 실행해놓으면 터미널 창 닫으면 꺼지잖아요" — 맞아요. 그리고 컴퓨터 재시작하면 또 수동으로 켜줘야 하죠. 이게 해결이 안 되면 진짜 자동화가 아닌 거예요. 두 가지 방법을 알려드릴게요:
방법 1 — 윈도우: 작업 스케줄러 활용
- 윈도우 검색창에 "작업 스케줄러" 입력 후 실행
- "기본 작업 만들기" 클릭
- 트리거: 컴퓨터 시작 시 / 또는 원하는 시간
- 동작: 프로그램 시작 →
pythonw.exe선택 (터미널 창 없이 실행됨) - 인수 추가에 여러분의 파이썬 파일 경로 입력
pythonw.exe를 쓰는 게 포인트예요. python.exe를 쓰면 검은 창이 뜨는데, pythonw는 백그라운드에서 조용히 실행돼요.
방법 2 — 맥/리눅스: crontab으로 부팅 시 자동 실행
터미널에서 crontab -e 입력 후, 아래처럼 추가하면 됩니다:
@reboot /usr/bin/python3 /Users/내이름/scripts/my_schedule.py &
맨 뒤에 & 붙이는 거 잊지 마세요. 백그라운드 실행 명령입니다.
이 두 가지 중 하나만 해두면 컴퓨터 켜질 때마다 스크립트가 자동으로 시작돼요. 이제 진짜 신경 안 써도 돌아가는 구조가 완성되는 거예요.
지금 당장 이것 하나만 해보세요
긴 설명 읽느라 수고하셨어요. 근데 아무리 잘 읽어도 안 해보면 내 것이 안 되잖아요. 그래서 딱 하나만 부탁드릴게요.
지금 터미널 열고 pip install schedule 입력하세요. 그리고 위에서 드린 기본 구조 코드를 복붙해서 print("안녕, 나 자동으로 실행됐어!") 한 줄만 함수 안에 넣고 돌려보세요. 10초마다 출력되게 설정하면 바로 눈으로 확인할 수 있어요.
이게 되는 순간, "아 이거 진짜 되네?"라는 감각이 생기고, 그때부터 아이디어가 쏟아지기 시작해요. 크롤링, 텔레그램 알림, 파일 정리, 이메일 발송 — 전부 이 구조 위에 얹는 거거든요. 첫 실행이 전부입니다. 오늘 꼭 해보세요.
댓글
댓글 쓰기