본문 바로가기
조그만 기술로 세상을 이롭게

Windows에서 매일 또는 특정 기간에 프로그램을 자동 실행하는 방법

by eplus 2026. 6. 20.

작업 스케줄러로 Batch 프로그램 자동 실행하기

프로그램을 개발하다 보면 사용자가 직접 실행하지 않아도 정해진 시간에 자동으로 실행되어야 하는 경우가 있습니다.

예를 들면 다음과 같은 경우입니다.

매일 새벽 1시에 주식시세 Batch 실행
매일 오전 8시에 ERP/MES 데이터 동기화
매주 월요일 보고서 생성
매월 1일 정산 프로그램 실행
특정 기간 동안만 자동 수집 프로그램 실행
 

Windows에서는 이런 자동 실행 작업을 작업 스케줄러(Task Scheduler)를 이용해 처리할 수 있습니다.


1. 작업 스케줄러란?

작업 스케줄러는 Windows에 기본으로 포함된 자동 실행 관리 도구입니다.

사용자가 지정한 조건에 따라 프로그램, 배치파일, 스크립트 등을 자동으로 실행할 수 있습니다.

특정 시간에 실행
매일 반복 실행
매주 반복 실행
매월 반복 실행
PC 부팅 시 실행
사용자 로그인 시 실행
일정 기간 동안만 실행
실패 시 재시도
 

서버나 사무실 PC에서 Batch 프로그램을 자동으로 실행할 때 가장 많이 사용하는 방식입니다.


2. 어떤 경우에 사용하면 좋은가?

작업 스케줄러는 다음과 같은 업무에 적합합니다.

주식시세 자동 수집
공공데이터 API 자동 조회
DB 백업
파일 백업
로그 정리
메일 발송
ERP/MES 자료 동기화
보고서 자동 생성
서버 상태 점검
 

예를 들어 주식시세 저장 프로그램이라면 아래처럼 운영할 수 있습니다.

매일 오후 7시 실행
→ D-1, D-2, D-3 주식시세 조회
→ 시세 데이터가 있으면 DB 저장
→ 로그 파일 생성
→ 완료 후 자동 종료
 

이렇게 하면 사용자가 매일 프로그램을 직접 실행하지 않아도 됩니다.


3. 작업 스케줄러 실행 방법

Windows에서 작업 스케줄러를 여는 방법은 여러 가지가 있습니다.

방법 1. 시작 메뉴에서 실행

시작 메뉴
→ 작업 스케줄러 검색
→ 실행
 

방법 2. 실행 창에서 실행

키보드에서 Windows + R을 누른 뒤 아래 명령어를 입력합니다.

taskschd.msc
 

그러면 작업 스케줄러 화면이 열립니다.


4. 기본 작업 만들기

작업 스케줄러에서 가장 간단한 방법은 기본 작업 만들기입니다.

작업 스케줄러 실행
→ 오른쪽 메뉴에서 기본 작업 만들기 클릭
→ 이름 입력
→ 실행 주기 선택
→ 실행 시간 설정
→ 프로그램 시작 선택
→ 실행할 EXE 선택
→ 완료
 

예를 들어 이름은 다음처럼 지정할 수 있습니다.

주식시세 자동수집 Batch
 

설명은 이렇게 작성하면 됩니다.

매일 지정 시간에 주식시세 수집 프로그램을 실행하여 DB에 저장한다.
 

5. 매일 특정 시간에 실행하기

매일 자동 실행하려면 트리거에서 매일을 선택합니다.

트리거
→ 매일
→ 시작 날짜 선택
→ 실행 시간 선택
→ 반복 간격 1일
 

예를 들어 매일 저녁 7시에 실행하려면 다음처럼 설정합니다.

시작: 2026-06-20
시간: 오후 7:00
반복: 1일마다
 

주식시세 Batch처럼 장 마감 이후 데이터를 저장하는 프로그램은 보통 다음 시간대가 적합합니다.

오후 6시 이후
오후 7시
오후 9시
새벽 1시
 

공공데이터나 외부 API는 데이터 반영 시간이 있을 수 있으므로 너무 이른 시간보다는 데이터가 반영된 뒤 실행하는 것이 안전합니다.


6. 실행할 프로그램 지정하기

동작에서는 프로그램 시작을 선택합니다.

동작
→ 프로그램 시작
→ 찾아보기
→ 실행할 EXE 선택
 

예를 들어 실행 파일이 아래 위치에 있다고 가정합니다.

C:\Batch\StockBatch\Convert.exe
 

그러면 프로그램/스크립트 항목에 아래처럼 들어갑니다.

C:\Batch\StockBatch\Convert.exe
 

중요한 설정이 하나 더 있습니다.

바로 시작 위치입니다.

작업 스케줄러에서 EXE만 지정하고 시작 위치를 비워두면, 프로그램이 설정파일이나 로그폴더를 찾지 못하는 경우가 있습니다.

따라서 시작 위치에는 EXE가 있는 폴더를 입력하는 것이 좋습니다.

프로그램/스크립트:
C:\Batch\StockBatch\Convert.exe

시작 위치:
C:\Batch\StockBatch
 

특히 다음 파일을 실행파일 기준 경로에서 읽는 프로그램은 시작 위치 설정이 중요합니다.

app.config
DB 설정 파일
log 폴더
임시 파일
엑셀 파일
인증키 파일
 

7. 특정 기간 동안만 실행하기

특정 기간 동안만 자동 실행하려면 기본 작업보다 작업 만들기를 사용하는 것이 좋습니다.

작업 스케줄러
→ 작업 만들기
→ 트리거 탭
→ 새로 만들기
 

트리거 설정에서 시작 날짜와 종료 날짜를 지정할 수 있습니다.

예를 들어 2026년 7월 1일부터 2026년 7월 31일까지만 매일 실행하려면 다음처럼 설정합니다.

시작 날짜: 2026-07-01
반복: 매일
만료 날짜: 2026-07-31
 

이렇게 하면 해당 기간 동안만 자동으로 실행되고, 기간이 지나면 더 이상 실행되지 않습니다.


8. PC 부팅 시 자동 실행하기

매일 특정 시간이 아니라 PC가 켜질 때마다 실행하고 싶다면 트리거를 다음으로 설정합니다.

트리거
→ 컴퓨터 시작 시
 

또는 사용자가 로그인할 때 실행하려면 다음으로 설정합니다.

트리거
→ 로그온할 때
 

이 방식은 다음과 같은 프로그램에 적합합니다.

서버 모니터링 프로그램
소켓 서버 프로그램
백그라운드 수집 프로그램
장비 인터페이스 프로그램
 

다만 주식시세 Batch처럼 하루 한 번만 실행하면 되는 프로그램은 매일 특정 시간 실행이 더 적합합니다.


9. 관리자 권한으로 실행하기

DB 저장, 특정 폴더 접근, 시스템 영역 접근이 필요한 프로그램은 관리자 권한이 필요할 수 있습니다.

작업 만들기 화면의 일반 탭에서 아래 옵션을 체크합니다.

가장 높은 수준의 권한으로 실행
 

또한 서버 PC에서 사람이 로그인하지 않아도 실행하려면 다음 옵션을 선택할 수 있습니다.

사용자가 로그온했는지 여부에 관계없이 실행
 

이 경우 Windows 계정 비밀번호 입력이 필요할 수 있습니다.


10. 실패 시 재시도 설정

외부 API나 DB를 사용하는 프로그램은 네트워크 문제로 실패할 수 있습니다.

작업 스케줄러에서는 실패 시 재시도를 설정할 수 있습니다.

설정 탭
→ 작업이 실패하는 경우 다시 시작
→ 5분마다 다시 시작
→ 최대 3회 시도
 

예시는 다음과 같습니다.

작업 실패 시: 5분마다 재시작
재시도 횟수: 3회
 

다만 프로그램 내부에서도 오류 처리가 되어 있어야 합니다.

좋은 Batch 프로그램은 오류가 발생해도 바로 종료되지 않고 로그를 남긴 뒤 다음 작업을 계속 진행해야 합니다.

DB 오류 발생
→ log\yyyyMMdd.txt 기록
→ 다음 일자 처리 계속

Network 오류 발생
→ log\yyyyMMdd.txt 기록
→ 다음 일자 처리 계속

API 오류 발생
→ log\yyyyMMdd.txt 기록
→ 다음 일자 처리 계속
 

11. 자동 종료되는 프로그램이 좋은 이유

작업 스케줄러로 실행하는 Batch 프로그램은 작업이 끝나면 자동으로 종료되는 것이 좋습니다.

나쁜 구조는 다음과 같습니다.

자동 실행
→ 처리 완료
→ 화면이 계속 열려 있음
→ 다음날 또 실행
→ 프로그램이 여러 개 쌓임
 

좋은 구조는 다음과 같습니다.

자동 실행
→ 처리 완료
→ 로그 저장
→ 자동 종료
 

자동 종료 구조로 만들면 서버나 PC에 프로그램 창이 계속 쌓이지 않고 안정적으로 운영할 수 있습니다.


12. 로그 관리 방법

자동 실행 프로그램은 사람이 직접 화면을 보지 않을 수 있으므로 로그가 매우 중요합니다.

추천하는 로그 구조는 다음과 같습니다.

실행파일 폴더
└─ log
   ├─ 20260620.txt
   ├─ 20260621.txt
   └─ 20260622.txt
 

로그에는 다음 내용을 남기는 것이 좋습니다.

프로그램 시작 시간
처리 대상 일자
API 호출 결과
조회 건수
DB 저장 건수
데이터 없음 여부
오류 내용
프로그램 종료 시간
 

예시는 다음과 같습니다.

[2026-06-20 19:00:01] Batch 시작
[2026-06-20 19:00:02] D-1 2026-06-19 조회 시작
[2026-06-20 19:00:05] D-1 2026-06-19 조회건수: 2,735
[2026-06-20 19:00:10] D-1 2026-06-19 저장건수: 2,735
[2026-06-20 19:00:11] D-2 2026-06-18 조회 시작
[2026-06-20 19:00:15] D-2 2026-06-18 저장 완료
[2026-06-20 19:00:20] Batch 완료
 

오류가 발생하면 다음처럼 남기면 됩니다.

[2026-06-20 19:00:05] ERROR DB 저장 실패
[2026-06-20 19:00:05] MySqlException: Connection timeout
 

13. 실행 결과 확인 방법

작업 스케줄러에서 작업이 정상 실행되었는지 확인하려면 아래 항목을 보면 됩니다.

작업 스케줄러 라이브러리
→ 해당 작업 선택
→ 마지막 실행 시간
→ 마지막 실행 결과
→ 다음 실행 시간
 

실행 결과가 0x0이면 일반적으로 정상 완료를 의미합니다.

하지만 작업 스케줄러의 결과만 믿기보다는 프로그램 자체 로그를 같이 확인하는 것이 좋습니다.

log\20260620.txt
 

로그 파일을 보면 실제로 어느 일자가 처리되었는지, DB 저장이 되었는지, 오류가 있었는지 확인할 수 있습니다.


14. 명령어로 작업 등록하기

GUI가 아니라 명령어로도 작업을 등록할 수 있습니다.

예를 들어 매일 오후 7시에 실행하려면 관리자 권한 명령 프롬프트에서 다음처럼 입력할 수 있습니다.

 
schtasks /Create /TN "StockBatch" /TR "C:\Batch\StockBatch\Convert.exe" /SC DAILY /ST 19:00
 

기존 작업을 삭제하려면 다음 명령어를 사용합니다.

 
schtasks /Delete /TN "StockBatch"
 

수동으로 한 번 실행하려면 다음 명령어를 사용할 수 있습니다.

 
schtasks /Run /TN "StockBatch"
 

등록된 작업을 조회하려면 다음처럼 입력합니다.

 
schtasks /Query /TN "StockBatch"
 

명령어 방식은 여러 PC에 같은 작업을 반복 등록할 때 유용합니다.


15. Batch 프로그램 운영 체크리스트

작업 스케줄러로 자동 실행하기 전에 아래 내용을 확인하는 것이 좋습니다.

EXE 단독 실행이 정상인지 확인
app.config 설정값 확인
DB 접속 정보 확인
API 인증키 확인
실행파일 폴더 권한 확인
log 폴더 생성 가능 여부 확인
완료 후 자동 종료 여부 확인
오류 발생 시 프로그램이 죽지 않는지 확인
작업 스케줄러 시작 위치 설정 확인
관리자 권한 필요 여부 확인
 

특히 시작 위치를 지정하지 않으면 설정 파일이나 로그 파일 경로 문제가 생길 수 있으므로 반드시 확인하는 것이 좋습니다.


16. 주식시세 Batch 예시 운영 방식

주식시세 저장 Batch 프로그램이라면 다음 방식으로 운영할 수 있습니다.

실행 시간: 매일 오후 7시
처리 대상: D-1, D-2, D-3
처리 방식:
  - 각 일자별 주식시세 조회
  - 데이터가 있으면 DB 저장
  - 데이터가 없으면 건너뜀
  - 오류는 log\yyyyMMdd.txt에 기록
  - 전체 완료 후 자동 종료
 

이렇게 D-1만 조회하지 않고 D-2, D-3까지 같이 조회하는 이유는 데이터 반영 지연이나 공휴일, API 지연에 대응하기 위해서입니다.

예를 들어 D-1 데이터가 아직 반영되지 않았더라도 다음날 D-2로 다시 조회할 수 있습니다.


17. 마무리

Windows에서 특정 프로그램을 매일 또는 특정 기간에 자동 실행하려면 작업 스케줄러를 사용하면 됩니다.

작업 스케줄러는 별도 프로그램 설치 없이 Windows에서 기본 제공되며, Batch 프로그램, DB 저장 프로그램, API 수집 프로그램을 운영하기에 적합합니다.

운영 시 핵심은 다음입니다.

정해진 시간에 자동 실행
실행파일 시작 위치 정확히 지정
오류 발생 시 로그 기록
처리 완료 후 자동 종료
작업 스케줄러 실행 결과 확인
 

특히 공공데이터 API, DB 저장, MES/ERP 연동 프로그램처럼 매일 반복되는 작업은 작업 스케줄러와 함께 구성하면 안정적으로 자동화할 수 있습니다.

반응형