기술 가이드

Windows 작업 스케줄러로 Python 스크립트 예약 실행

6 min read 자동화 업데이트됨 19 Sep 2025
Windows 작업 스케줄러로 Python 스크립트 자동 실행
Windows 작업 스케줄러로 Python 스크립트 자동 실행

Schedule Python Scripts

작업을 매번 수동으로 실행하는 대신, 원하는 시간에 자동으로 실행되도록 예약하면 반복 작업을 자동화할 수 있습니다. Windows 작업 스케줄러는 특정 시간이나 간격에 작업을 자동으로 실행하도록 예약하는 기능을 제공합니다. Python 스크립트도 동일하게 예약할 수 있습니다.

중요: 로컬 환경과 서버 환경의 Python 경로가 다를 수 있으니 정확한 경로를 사용하세요. 관리자 권한이 필요한 작업이면 예약 시 권한 옵션을 반드시 활성화하세요.

무엇을 얻을 수 있나

  • 반복 작업을 자동화하여 시간 절약
  • 백그라운드에서 일관된 실행 보장
  • 별도 서드파티 도구 없이 Windows만으로 가능

기본 흐름(한 문장 요약)

  1. 작업 스케줄러 열기 → 2) 새 작업 또는 기본 작업 생성 → 3) 프로그램으로 Python 실행기 또는 .bat 파일 지정 → 4) 권한/조건 설정 → 5) 수동 실행으로 검증

작업 스케줄러에서 Python 스크립트 직접 예약하기

작업 스케줄러로 Python 스크립트를 일간/주간/사용자 지정 일정에 맞춰 실행하도록 예약할 수 있습니다. 실행 방법은 다음과 같습니다.

  1. Win + R을 누르고 taskschd.msc를 입력한 뒤 Enter로 작업 스케줄러를 엽니다.

Open Task Scheduler

  1. 오른쪽 또는 상단 메뉴에서 작업 만들기 또는 기본 작업 만들기… (Create Basic Task…)을 선택하여 새 예약을 시작합니다.

Create Basic Task

  1. 작업에 이름설명을 입력하고 다음으로 진행합니다.

Provide Task Name Description

  1. 작업 시작 빈도를 선택합니다(예: 일간, 주간, 한 번 등).

When You Want Task To Start

  1. 필요한 경우 시작 날짜와 시간을 설정합니다. 다음 화면인 동작(Action) 섹션에서 프로그램 시작(Start a program) 을 선택합니다.

Select Action To Be Performed

  1. 프로그램/스크립트(Program/script) 필드에는 Python 실행기 경로(예: C:\Python39\python.exe)를 입력하고, 인수 추가(Add arguments) 필드에 실행할 스크립트의 전체 경로(예: C:\scripts\my_script.py)를 입력합니다. 필요하면 시작 위치(Start in) 에 작업의 작업 디렉터리를 지정합니다.

Specify Python Executable Path

  1. 다음으로 설정을 검토하고 마침(Finish)으로 작업을 생성합니다.

Review The Settings

이제 지정한 시간에 Python 스크립트가 자동으로 실행됩니다.

대안 방법: 배치 파일(.bat)을 사용해 예약하기

직접 Python을 지정해도 되지만, 배치 파일을 만드는 방법이 더 안정적일 수 있습니다. 배치 파일을 사용하면 경로 문제를 줄이고 실행 로그를 쉽게 남길 수 있습니다.

메모장을 열고 아래 코드를 붙여 넣습니다:

@echo off
"C:\Path\to\python.exe" "C:\Path\to\your_script.py"
pause
  • 첫 번째 경로는 Python 실행기의 위치로 교체하세요.
  • 두 번째 경로는 실행할 스크립트의 경로로 교체하세요.
  • pause는 배치 파일 창이 바로 닫히지 않도록 하고, 실행 결과를 수동으로 확인할 때 유용합니다.

Python 위치가 확실하지 않으면 명령 프롬프트에서 다음 명령으로 확인하세요:

where python

Check Python Path

여러 경로가 나타나면 적절한 버전(예: 프로젝트에 맞는 가상환경의 python.exe)을 선택하세요. 파일을 .bat 확장자로 저장한 뒤, 해당 배치 파일을 작업 스케줄러에서 프로그램/스크립트로 지정하면 됩니다.

작업을 자동으로 실행하도록 허용하기

예약된 작업이 중단 없이 실행되도록 하려면 작업 속성을 확인하세요.

  1. 작업 스케줄러 라이브러리에서 해당 작업을 찾아 우클릭 후 속성(Properties) 을 엽니다.

Open Task Properties

  1. 일반(General) 탭에서 사용자가 로그온했는지 여부와 관계없이 실행(Run whether user is logged on or not) 을 선택합니다. 스크립트가 관리자 권한을 필요로 하면 가장 높은 권한으로 실행(Run with highest privileges) 을 체크하세요.

Update Task Properties

  1. 조건(Conditions) 탭에서는 노트북 등을 사용하는 경우 컴퓨터가 AC 전원에 연결된 경우에만 시작(Start the task only if the computer is on AC power) 옵션의 체크를 해제해 두는 것이 안전합니다.

Update Conditional Task Properties

  1. 변경 후 OK를 누르면 자격 증명(암호) 입력을 요구할 수 있습니다. 작업이 백그라운드에서 실행되기 위해 계정 권한과 암호가 필요합니다.

예약 실행 확인 방법

설정 후 수동으로 실행해 작동을 확인하세요. 작업 스케줄러에서 작업을 우클릭하고 실행(Run) 을 선택합니다.

Run Task To Confirm Working

스크립트가 생성하는 로그 파일이나 출력 결과를 검토하여 정상 실행 여부를 확인합니다.

Verify Task Output

실행되지 않는다면 먼저 다음 항목을 점검하세요:

  • Python 실행 파일 경로와 스크립트 경로가 정확한가?
  • 작업의 시작 위치(Start in)가 올바른가? (상대 경로 문제 회피)
  • 작업이 실행될 때 사용할 계정에 필요한 파일 접근 권한이 있는가?
  • 필요 시 관리자 권한(Run with highest privileges)을 체크했는가?

문제 발생 시 점검 체크리스트

  • 작업을 수동으로 실행했을 때 작업 기록(Task History)에 오류가 남아 있는지 확인
  • 작업의 마지막 실패 코드(Error code)를 메모하고 검색
  • 스크립트 내 예외가 로그로 남는지(파일 또는 DB 로그) 확인
  • 가상환경(venv)을 사용하는 경우 venv의 python.exe를 직접 지정
  • 네트워크 드라이브를 사용하는 경우 작업이 네트워크 자원에 접근할 권한이 있는지 확인

언제 이 방법이 실패하는가(예시)

  • 스크립트가 UI 상호작용을 필요로 하는 경우(작업 스케줄러는 기본적으로 세션 0에서 실행됨)
  • 네트워크 폴더 인증이 사용자 세션에 종속적인 경우
  • 시스템이 절전 모드로 진입하거나 전원 정책 때문에 작업이 중단되는 경우

대안 및 확장 옵션

  • Docker 컨테이너에서 Cron 또는 Windows 서비스로 관리: 환경 일관성 필요 시 유용
  • Windows 서비스로 등록: 장기간 백그라운드 실행에 적합
  • 서드파티 스케줄러(예: Jenkins, Airflow): 복잡한 워크플로우와 의존성 관리 필요 시 권장
  • NSSM(Non-Sucking Service Manager)를 사용해 .exe로 서비스화

실행 전/후 담당자별 체크리스트

  • 개발자: 스크립트가 비대화형(non-interactive)인지 확인, 예외 로깅 추가
  • 시스템 엔지니어: 서비스 계정에 필요한 폴더 및 네트워크 권한 할당
  • 데이터 분석가: 실행 결과 검증용 샘플 출력 또는 상태 파일 생성

간단한 검사 기준

  1. 수동 실행 시 Exit code 0 반환
  2. 스크립트가 의도한 출력 파일/DB 레코드를 생성
  3. 작업 기록에서 성공 로그 확인

간단한 운영 절차(SOP)

  1. 변경 예정: 스크립트 수정 시 먼저 로컬에서 테스트
  2. 스케줄러 등록: .bat로 래핑 후 작업 스케줄러에 등록
  3. 검증: 수동 실행 후 로그 확인
  4. 배포: 예약 시간에 자동 실행 확인
  5. 모니터링: 실행 실패 시 알림(예: 이메일, 슬랙)

문제 발생 시 런북(간단한 복구 절차)

  1. 작업 히스토리 확인 → 실패 코드 확인
  2. 수동 실행 → 콘솔 출력 또는 로그 확인
  3. 경로/권한 문제라면 작업 속성에서 계정/시작 위치 수정
  4. 그래도 실패하면 스크립트를 로컬에서 디버깅

채택을 위한 의사결정 기준(간단한 휴리스틱)

  • 단순 반복 작업(파일 백업, 보고서 생성 등): 작업 스케줄러 사용
  • 복잡한 의존관계와 재시도/알림 필요: Airflow/Jenkins 권장
  • 배포 환경 일관성 필요: Docker 기반 스케줄링 권장

수용성 테스트(테스트 케이스)

  • 케이스 1: 수동 실행 시 성공, 로그 파일에 정상 메시지 존재
  • 케이스 2: 예약 실행 후 지정된 출력 파일 생성
  • 케이스 3: 권한 없는 계정으로 실행 시 접근 거부 에러 확인

요약

Windows 작업 스케줄러는 추가 도구 없이도 Python 스크립트를 안정적으로 자동화할 수 있는 간단하고 강력한 방법입니다. 정확한 Python 경로와 작업의 시작 위치를 지정하고, 권한 옵션을 적절히 설정한 뒤 수동 실행으로 검증하면 대부분의 문제를 방지할 수 있습니다.

요약 핵심 항목:

  • 작업 생성 → Python 또는 .bat 지정 → 권한/조건 설정 → 수동 검증
  • venv를 사용하면 venv의 python.exe를 직접 지정
  • UI 상호작용이 필요하거나 복잡한 워크플로우인 경우 대안 고려

간단 알림 문구: 스크립트를 컨테이너화하여 배포 일관성을 높일 수 있습니다. Docker 기반 실행 가이드는 별도 문서를 참고하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

안드로이드 홈 화면별 배경화면 설정 가이드
Android 가이드

안드로이드 홈 화면별 배경화면 설정 가이드

데이터 브로커에서 내 정보 삭제하는 방법
프라이버시

데이터 브로커에서 내 정보 삭제하는 방법

안드로이드 홈 화면별 배경화면 설정 가이드
안드로이드 커스터마이징

안드로이드 홈 화면별 배경화면 설정 가이드

Apache Tomcat 모니터링 및 관리 가이드
인프라 모니터링

Apache Tomcat 모니터링 및 관리 가이드

디즈니 플러스 앱 문제 해결 가이드
스트리밍 가이드

디즈니 플러스 앱 문제 해결 가이드

Windows 작업 스케줄러로 Python 스크립트 자동 실행
자동화

Windows 작업 스케줄러로 Python 스크립트 자동 실행